Как я могу использовать собственный DNS-сервер в службах приложений Azure с Linux? - PullRequest
0 голосов
/ 16 января 2019

У меня есть приложение .NET Core API, работающее в службах приложений Azure с использованием Windows, но теперь я хочу протестировать его с использованием Linux. Приложение использует настраиваемую зону DNS только для сопоставления настраиваемого имени хоста с определенным IP-адресом.

Для реализации этого в моей службе приложений Windows я использовал следующие параметры приложения, как указано в на этой странице : WEBSITE_DNS_SERVER и WEBSITE_ALT_DNS_SERVER. Хотя это выглядит как обходной путь, оно довольно хорошо работает со службами приложений Windows. Но в Linux это, кажется, не имеет никакого эффекта, и мое приложение не разрешает имя хоста по мере необходимости.

Как использовать пользовательский DNS-сервер в службе приложений Azure с Linux или добавить собственное имя хоста, например, для редактирования файла hosts?

1 Ответ

0 голосов
/ 17 января 2019

В отличие от нашей Windows службы приложений, nameresolver.exe недоступен, а настройки приложения для «WEBSITES_ALT_DNS» и «WEBSITES_DNS» не заполняют файлы конфигурации в контейнере. Ниже приведены шаги по устранению проблем с изображениями на основе Alpine, поскольку вы не упоминаете, используете ли вы контейнер Linux или ОС Linux по умолчанию.

Установить Bind-tools-

  1. apk update
  2. apk add bind-tools

Запустить Nslookup-

После установки bind-tools вы увидите используемый сервер. Если bind-tools не установлен, DNS-сервер не будет показан. Пример приведен ниже.

9031977be93a:~# nslookup google.com
Server:         127.0.0.11
Address:        127.0.0.11#53
 
Non-authoritative answer:
Name:   google.com
Address: 216.58.194.174
Name:   google.com
Address: 2607:f8b0:4005:801::200e

Обновить файл конфигурации-

Чтобы использовать другой DNS-сервер для тестирования, обновите файл /etc/resolv.conf и обновите «сервер имен», чтобы использовать другой DNS-сервер. В этом примере мы используем Googles DNS.

  1. vi /etc/resolv.conf
  2. По умолчанию в файле resolv.conf будет указано следующее.

search reddog.microsoft.com nameserver 127.0.0.11 время ожидания опций: 1 попытка: 5 ндот: 0cd / etc

  1. Если вы не знакомы с «vi», нажмите «i» на клавиатуре, чтобы начать редактирование файла.
  2. Как только вы закончите, нажмите "esc" и ": wq!" затем введите.

search reddog.microsoft.com nameserver 8.8.8.8 время ожидания: 1 попытка: 5: 0

  1. Запустив Nslookup снова, вы увидите, что используется новый сервер имен.

9031977be93a:~# nslookup google.com
Server:         8.8.8.8
Address:        8.8.8.8#53
 
Non-authoritative answer:
Name:   google.com
Address: 216.58.194.174
Name:   google.com
Address: 2607:f8b0:4005:804::200e

Hardcoding Hostname-

Вы также можете жестко указать IP-адрес для рассматриваемого имени хоста для тестирования. Для этого вам нужно обновить следующий файл.

  1. vi / etc / hosts
  2. Добавьте IP-адрес, на который вы хотите, чтобы DNS указывал. В этом примере я меняю IP для своего пользовательского домена.

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.20.0.2      9031977be93a
10.10.10.10 www.polytechniks.com
 
  1. Сохраните изменения и используйте «ping» или «traceroute», чтобы увидеть используемый IP. ПРИМЕЧАНИЕ. Nslookup НЕ использует файл / etc / hosts, поэтому вы все равно увидите IP-адрес, связанный с DNS.

9031977be93a:~# ping www.polytechniks.com
PING www.polytechniks.com (10.10.10.10): 56 data bytes
--- www.polytechniks.com ping statistics ---
8 packets transmitted, 0 packets received, 100% packet loss
 
9031977be93a:~# traceroute www.polytechniks.com
traceroute to www.polytechniks.com (10.10.10.10), 30 hops max, 46 byte packets
 1  172.20.0.1 (172.20.0.1)  0.005 ms  0.004 ms  0.004 ms
...