#google-cloud-platform #dns #nslookup #google-cloud-dns
# #google-облачная платформа #dns #nslookup #google-cloud-dns
Вопрос:
2 года назад Google внедрил частный DNS, что очень важно для внутренней связи доменов.
Я настраиваю частный DNS, чтобы узнать о DNS, используя приведенное ниже руководство по документации https://cloud.google.com/sdk/gcloud/reference/dns/managed-zones/create
https://www.jhanley.com/google-cloud-private-dns-zones /
Ниже приведены шаги, необходимые для создания примерной зоны
Создана частная зона «private-zone»
gcloud dns managed-zones create --dns-name="example.com" --description="Private Zone" --visibility=private --networks=default "private-zone"
Затем создал виртуальную машину в облаке Google и запустил nslookup
для доменного имени.
Но это не разрешило
testdns:~$ nslookup example.com
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
*** Can't find example.com: No answer
Я использую ОС Debian на созданном экземпляре виртуальной машины
Linux testdns 4.19.0-12-cloud-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
Это две записи A, отличные от записей NS и SOA в
test.example.com. A 300 192.0.0.9
www.example.com. A 300 192.0.0.91
example.com. A 3600 192.0.1.1
Был протестирован приведенный ниже пример
nslookup, когда «example.com » Запись не была добавлена
mymach@testdns:~$ nslookup example.com ns-gcp-private.googledomains.com
Server: ns-gcp-private.googledomains.com
Address: 169.254.169.254#53
Non-authoritative answer:
*** Can't find example.com: No answer
#копать example.com используя сервер имен, была добавлена запись ‘A’
testdns:~$ dig example.com @ns-gcp-private.googledomains.com
; <<>> DiG 9.11.5-P4-5.1 deb10u2-Debian <<>> example.com @ns-gcp-private.googledomains.com
;; global options: cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41534
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 192.0.1.1
;; Query time: 12 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Tue Dec 08 23:03:58 UTC 2020
;; MSG SIZE rcvd: 56
nslookup снова после добавления example.com
testdns:~$ nslookup example.com ns-gcp-private.googledomains.com
Server: ns-gcp-private.googledomains.com
Address: 169.254.169.254#53
Non-authoritative answer:
Name: example.com
Address: 192.0.1.1
копать
testdns:~$ dig example.com
; <<>> DiG 9.11.5-P4-5.1 deb10u2-Debian <<>> example.com
;; global options: cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24673
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 192.0.1.1
;; Query time: 11 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Tue Dec 08 23:06:30 UTC 2020
;; MSG SIZE rcvd: 56
копайте с помощью локального хоста
dig example.com @127.0.0.1
; <<>> DiG 9.11.5-P4-5.1 deb10u2-Debian <<>> example.com @127.0.0.1
;; global options: cmd
;; connection timed out; no servers could be reached
Я пропустил какой-то шаг?
Комментарии:
1. Вы изменяли
/etc/resolv.conf
или вносили какие-либо другие изменения в DNS или DHCP в экземпляре, на котором выполняется эта команда? Что вы ожидаетеexample.com
решить? Если вы не создали записи ресурсов DNS, example.com не имеет ничего, что можно было бы вернуть.2. @JohnHanley; Спасибо за ответ, я не изменял файл resolv.conf, я ожидаю, что это даст мне IP-адрес, который я получил в рамках настройки частного домена в записи
3. Отредактируйте свой вопрос, указав подробные сведения о записях A. Также вы на самом деле используете example.com или это просто заполнитель? Какая ОС и версия? Опубликуйте результат этой команды
nslookup example.com 127.0.0.1
4. Перейдите в облачную консоль Google -> Сетевые службы -> Сведения о зоне. Найдите значение для записи ресурса NS. Замените NS_VALUE на это значение в этой команде:
nslookup example.com NS_VALUE
. Опубликуйте этот вывод в своем вопросе.5. Теперь так все работает с DNS или с веб-браузерами. Когда вы вводите
example.com
текст в веб-браузере, а затем браузер отображаетwww.example.com
это из-за перенаправления HTTP веб-сервером, балансировщиком нагрузки и т. Д. Если вы разрешитеexample.com
, это только разрешитсяexample.com
. Я игнорирую подстановочные знаки.
Ответ №1:
После создания зоны с помощью:
gcloud dns managed-zones create --dns-name="example.com" --description="Private Zone" --visibility=private --networks=default "private-zone"
Для этого необходимо создать DNS-реестры, например:
gcloud dns record-sets transaction start --zone="private-zone"
gcloud dns record-sets transaction add 10.2.3.4 --name="example.com" --ttl="3600" --type="A" --zone="private-zone"
gcloud dns record-sets transaction execute --zone="private-zone"
Дайте GCP 1 минуту, чтобы наверстать упущенное, а затем повторите попытку с файлом по умолчанию «/etc/resolv.conf».
Комментарии:
1. Спасибо @Frank, да.. Я добавил запись A в пользовательский интерфейс, но просто интересно, как она будет разрешаться для различных запросов, таких как «www.example.com » или » example.com » или любой другой подобный запрос, который не совсем «example.com »
2. Вам нужно будет добавить эти записи вручную, основываясь на моем опыте работы с поддоменами «www», они добавляются как «CNAME» вместо типа «A», указывающего на корневую запись «example.com «, таким образом, когда происходит изменение в «example.com «, тот самый «www.example.com » запись была бы следуйте автоматически, вы также можете вручную поддерживать как «www», так и корневые домены отдельно.