1. Wprowadzenie
W tym laboratorium programistycznym dowiesz się, jak skonfigurować strefy przekierowywania wychodzącego Cloud DNS, używając pełnej i jednoznacznej nazwy domeny (FQDN) jako miejsca docelowego przekierowania. Ta funkcja umożliwia kierowanie ruchu DNS do adresów IP znalezionych na podstawie nazwy DNS zamiast twardego kodowania adresów IP w konfiguracji strefy przekierowywania. Jest to szczególnie przydatne, gdy zmieniają się adresy IP zaplecza serwera rozwiązywania nazw DNS, ponieważ możesz zaktualizować rekord DNS dla pełnej nazwy domeny, a Cloud DNS automatycznie wprowadzi zmiany.
Po zakończeniu tego ćwiczenia będziesz mieć możliwość konfigurowania stref przekierowywania Cloud DNS, które korzystają z:
- Docelowy adres FQDN pasujący do prywatnej strefy z rekordami A/AAAA.
- Docelowy adres FQDN obsługiwany przez zasady routingu Cloud DNS (lokalizacja geograficzna lub ważonego algorytmu karuzelowego) w celu dopasowania regionalnego lub dystrybucji ruchu.
Omówienie przekazywania nazw FQDN
Przekierowanie Cloud DNS umożliwia rozstrzyganie nazw DNS prywatnych hostowanych poza Google Cloud Platform (np. lokalnie lub w innych chmurach) z zasobów Google Cloud Platform. Tradycyjnie ta funkcja obsługiwała przekierowywanie na listę docelowych adresów IP. Przekierowywanie nazw domenowych FQDN rozszerza tę funkcję, umożliwiając określenie nazwy domenowej FQDN jako celu przekierowania w strefie przekierowania.
Gdy podasz pełną i jednoznaczną nazwę domeny, Cloud DNS przekształci ją w adresy IP za pomocą wewnętrznego wyszukiwania, które korzysta z logiki rozwiązywania adresów sieci źródłowej. Oznacza to, że docel FQDN może pasować do strefy prywatnej, reguły routingu DNS (lokalizacji geograficznej lub zrównoważonego routingu okrężnego) lub nawet do nazwy domeny publicznej w internecie. Cloud DNS przekazuje następnie zapytanie do zwróconego adresu IP docelowego.
Co utworzysz
Przekierowywanie regionalnych nazw domen FQDN za pomocą nowej strefy prywatnej
Utworzysz konfigurację, która zapewnia regionalne podobieństwo ruchu DNS. Polega to na utworzeniu prywatnej strefy DNS i skonfigurowaniu w niej zasad routingu na podstawie geolokalizacji, a następnie połączeniu strefy przekierowywania z tą docelową nazwą FQDN. Dzięki temu ruch z konkretnego regionu (np. us-east1) jest przekierowywany do odpowiedniego regionalnego serwera DNS.
Przekazywanie nazw domenowych w przypadku istniejącej strefy prywatnej
Dowiedz się, jak utworzyć strefę przekierowania, która kieruje na FQDN obsługiwany przez rekord A/AAAA w istniejącej prywatnej strefie DNS. Przykład przekierowywania zapytań do statycznie zdefiniowanych adresów IP rozpoznawanych przy użyciu docelowego przekierowania FQDN.
Czego się nauczysz
Koncepcja przekierowywania nazw FQDN
Przekierowanie FQDN rozszerza przekierowanie DNS, ponieważ umożliwia określenie docelowego przekierowania FQDN zamiast tylko adresów IP jako celów przekierowania zapytań wychodzących.
Zalety przekierowania na podstawie pełnej i jednoznacznej nazwy domeny
Dowiedz się, że ta funkcja eliminuje potrzebę ręcznego aktualizowania adresów IP zaplecza serwera DNS, ponieważ Cloud DNS automatycznie odbiera zmiany z rekordu DNS FQDN. Umożliwia też bardziej elastyczne skalowanie infrastruktury DNS, ponieważ serwery DNS mogą być umieszczone za nazwą współdzieloną lub skalowane dynamicznie.
Integracja z zasadami routingu Cloud DNS
Dowiedz się, jak przekierowanie FQDN można łączyć z zasadami routingu DNS Cloud DNS (lokalizacja geograficzna lub ważony system losowy), aby uzyskać podobieństwo regionalne, zoptymalizować wydajność dla zróżnicowanych geograficznie wdrożeń i rozprowadzić ruch na podstawie skonfigurowanych wag.
Składnia poleceń Google Cloud CLI
Poznasz polecenie gcloud dns managed-zones create
i jego odpowiednie flagi (--forwarding-targets
, --private-forwarding-targets
) do konfigurowania stref przekierowywania FQDN.
Wymagania wstępne
Aby ukończyć to ćwiczenie, musisz mieć:
- Konto Google
- projekt Google Cloud z włączonymi płatnościami;
- zainstalowane i skonfigurowane narzędzia wiersza poleceń gcloud,
- podstawowa znajomość Cloud DNS i pojęć związanych z DNS;
2. Przygotowania
Omówienie scenariuszy przekierowywania nazw FQDN
Przekierowywanie FQDN w Cloud DNS obsługuje kilka scenariuszy użycia:
- Strefa prywatna z rekordem A/AAAA: jeśli nazwa FQDN pasuje do rekordu A/AAAA w strefie prywatnej, zmapowane adresy IP są dodawane do listy przekierowań, a zachowanie jest identyczne z przekierowaniem bezpośrednio do docelowych adresów IP.
- Strefa prywatna z zasadami geolokalizacji: zasady geolokalizacji umożliwiają określenie geolokalizacji źródła i podanie odpowiednich odpowiedzi, co pozwala zweryfikować rozkład ruchu na podstawie położenia geograficznego. Jest to kluczowe dla regionalnego przekierowywania i powiązania z DNS.
- Strefa prywatna z zasadą ważonego algorytmu karuzelowego (WRR): zasady WRR umożliwiają określenie różnych wag dla adresów IP w przypadku nazwy DNS, co pozwala sprawdzić, czy ruch jest dystrybuowany zgodnie z skonfigurowanymi wagami.
- Strefa publiczna z rekordem A/AAAA: jeśli nazwa FQDN nie pasuje do żadnej nazwy prywatnej widocznej w tej samej sieci, Cloud DNS próbuje ją rozpoznać, korzystając z publicznego internetu.
Informacje o poleceniu interfejsu Google Cloud CLI dotyczącym przekierowywania FQDN
Aby utworzyć strefę przekierowywania z FQDN jako celem przekierowania za pomocą poleceń gcloud CLI, użyj polecenia gcloud dns managed-zones create
. Kluczowe flagi do określania docelowego adresu FQDN to --forwarding-targets
lub --private-forwarding-targets
. Szczegółowe informacje o standardowych i prywatnych metodach routingu znajdziesz w tym dokumencie.
--forwarding-targets
: lista adresów IPv4/IPv6 lub nazwa domeny serwera nazw docelowego, do którego strefa będzie przekierowywać zapytania. Ignorowane w przypadku widoczności publicznej. Adresy inne niż RFC1918 będą przekazywane do docelowego adresu przez Internet. Adresy RFC1918 będą przekierowywane przez sieć VPC.--private-forwarding-targets
: lista adresów IPv4/IPv6 lub nazwa domeny serwera nazw docelowego, do którego strefa będzie przekierowywać zapytania. Ignorowane w przypadku widoczności publicznej. Wszystkie adresy określone w tym parametrze będą dostępne przez VPC.
Przykładowa składnia:
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--networks=VPC_NETWORK_LIST \
--forwarding-targets=DEFAULT_FQDN_TARGET \
--visibility=private
Pamiętaj, że zamiast --private-forwarding-targets
możesz użyć --private-forwarding-targets
.--forwarding-targets
Konfigurowanie projektu Google Cloud Platform
Zaloguj się w interfejsie wiersza poleceń gcloud.
gcloud auth login
Utwórz projekt.
gcloud projects create my-codelab-project
Włącz interfejs Cloud DNS API. Zanim zmiany zaczną obowiązywać, może minąć kilka minut.
gcloud services enable dns.googleapis.com
To ćwiczenie korzysta z domyślnej sieci VPC utworzonej w ramach nowego projektu. Możesz też utworzyć nową sieć.
3. Konfigurowanie przekierowania FQDN regionalnego (z nową strefą prywatną)
Ten scenariusz pokazuje, jak uzyskać regionalne przekierowanie DNS, aby ruch z określonego regionu był przekierowywany do serwera DNS w tym samym regionie.
Tworzenie prywatnej strefy DNS
Najpierw utwórz prywatną strefę DNS (np.foo.com), która będzie hostować pełną i jednoznaczną nazwę domeny i powiązaną z nią zasadę kierowania na podstawie geolokalizacji. Ta strefa musi być widoczna dla sieci domyślnej.
gcloud dns managed-zones create my-zone \
--description="Private Zone for FQDN outbound DNS forwarding." \
--dns-name=foo.com. \
--networks=default \
--visibility=private
Tworzenie zbioru rekordów zasad routingu na podstawie geolokalizacji w strefie prywatnej
Następnie utwórz zestaw rekordów (np.geo.foo.com) w domenie my-zone i zastosuj zasadę kierowania na podstawie geolokalizacji. W tym przykładzie konfigurujemy adresy IP dla regionów asia-east1 i asia-west1.
gcloud dns record-sets create geo.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--routing-policy-type="GEO" \
--routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"
Uwaga: jeśli geofence jest wyłączony (domyślnie i zalecane), zapytania będą kierowane do najbliższego sprawnego regionu, jeśli docelowe urządzenie w pierwotnym regionie nie działa prawidłowo.
Tworzenie strefy przekierowywania z docelową pełną i jednoznaczną nazwą domeny
Utwórz strefę przekierowania (geo.test.com) widoczną w tej samej sieci domyślnej i ustaw jako jej docelowe miejsce przekierowania adres geo.foo.com (FQDN z zasadami routingu na podstawie lokalizacji).
gcloud dns managed-zones create my-geo-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
--dns-name=geo.test.com. \
--networks=default \
--private-forwarding-targets=geo.foo.com. \
--visibility=private
Każde zapytanie DNS pasujące do geo.test.com jest teraz przekierowywane do zwróconego adresu IP (np.192.168.0.1 lub 192.168.0.2) domeny geo.foo.com na podstawie regionu źródłowego zapytania.
4. Konfigurowanie przekierowania FQDN (z istniejącą strefą prywatną)
Istnieje już prywatna strefa DNS
Załóżmy, że masz już prywatną strefę DNS o nazwie mojadomena (foo.com), która jest widoczna w sieci domyślnej.
Utwórz rekord zasobu DNS w tej prywatnej strefie
Utwórz rekord typu A dla domeny a.foo.com w istniejącej strefie mojadomena.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
Tworzenie strefy przekierowywania i określanie docelowej nazwy FQDN
Podobnie jak w przypadku regionalnego FQDN, utwórz strefę przekierowywania i jako docelowe miejsce przekierowania wskaż adres a.foo.com.
gcloud dns managed-zones create my-a-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
--dns-name=a.test.com. \
--networks=default \
--private-forwarding-targets=a.foo.com. \
--visibility=private
Każde zapytanie DNS pasujące do a.test.com zostanie przekazane do rozwiązanych adresów IP 1.2.3.4 w domenie a.foo.com.
5. Czyszczenie danych
Zanim uda się usunąć strefę prywatną, należy najpierw usunąć wszystkie ResourceRecordSety w tej strefie (z wyjątkiem rekordów NS i SOA, które są generowane automatycznie i zawsze muszą występować w strefie prywatnej).
Usuń zasadę routingu na podstawie geolokalizacji w strefie prywatnej.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
Usuń rekord A w strefie prywatnej.
gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"
Usuń strefę prywatną.
gcloud dns managed-zones delete "my-zone"
Usuń strefę przekierowania dla zasady routingu na podstawie geolokalizacji.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Usuń strefę przekierowania dla rekordu A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. Gratulacje
Gratulacje! Poznałeś/poznałaś już sposób używania przekierowywania DNS wychodzącego FQDN.