Назад | Перейти на главную страницу

Переход на статический DNS-сервер в Amazon Linux AMI 2017.03

Я схожу с ума, потому что это должно быть легко, особенно если следовать документации Amazon. Я использовал это ссылка с Amazon.

Просто пытаюсь изменить DNS-серверы, которые экземпляр AWS EC2 использует для разрешения доменных имен. Отредактировал / etc / sysconfig / network-scripts / ifcfg-eth0, установил PEERDNS = no, добавил DNS1 = 10.0.0.11, сохранен, перезагружен, без кубиков: все еще смотрите сервер имен 10.0.0.2 в /etc/resolve.conf, тестирование эхо-запрос на полное доменное имя внутреннего сервера (server.mycorp.company.com) завершается ошибкой, поскольку для разрешения имени требуется наш внутренний DNS-сервер. Если я вручную отредактирую resolv.conf и изменю строку сервера имен, чтобы отразить наш DNS-сервер 10.0.0.11, эхо-запросы работают.

На сервере установлен последний AMI Amazon Linux, насколько я могу судить, 2017.03. Завершите / etc / sysconfig / network-scripts / ifcfg-eth0:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=no
DHCPV6C=yes
DHCPV6C_OPTIONS=-nw
PERSISTENT_DHCLIENT=yes
RES_OPTIONS="timeout:2 attempts:5"
DHCP_ARP_CHECK=no
DNS1=10.0.0.11

* IP-адреса изменены для защиты невиновных

Я считаю, что документ AWS неверен. Настройка в / etc / sysconfig / network-scripts / ifcfg-eth0 PEERDNS=no предотвратит любой обновление должно быть отражено в файле resolv.conf. Таким образом, у вас есть 2 варианта:

  1. Покинуть PEERDNS=yes и добавить DNS1=, DNS2=...
  2. Устанавливать PEERDNS=no и изменить nameserver прямо в resolv.conf

Протестировано с Linux AMI 2017.03

Для будущих читателей этого вопроса обратите внимание, что статья AWS в вопросе была заменены другими инструкциями.

Вместо редактирования конкретной конфигурации сетевого интерфейса предлагается изменить конфигурацию DHCP-клиента, чтобы игнорировать DNS-сервер, предоставляемый DHCP.

  1. редактировать /etc/dhcp/dhclient.conf
  2. Добавьте строку формы supersede domain-name-servers a.b.c.d, e.f.g.h; (где a.b.c.d и e.f.g.h являются IP-адресами одного или нескольких DNS-серверов).

Обычно это вступает в силу при следующей загрузке системы, но вы можете принудительно прочитать его немедленно, перезапустив сетевой интерфейс:

# RedHat based systems (e.g. RHEL, Fedora, CentOS, Amazon Linux)
/etc/init.d/network restart
# Debian based systems (e.g. Debian, Ubuntu)
/etc/init.d/networking restart

Я думаю, проблема здесь в том, что вы пытаетесь заставить EC2 использовать DNS-сервер вне VPC. Я не думаю, что это возможно. Вы используете VPN или просто полагаетесь на подключение к Интернету?

AWS опубликовал способ добиться этого с помощью Несвязанный Преобразователь DNS Вот. Он слишком велик для копирования здесь, но в основном действует как пересылка.