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

Как я могу запустить named в режиме IPv4 с помощью systemd?

Как я могу настроить Ubuntu 15.04 bind9, чтобы перестать разрешать запросы с IPv6?

TL; DR

Я использую bind9 на своей машине с Ubuntu 15.04. Похоже, что мой именованный сервер пытается разрешить множество запросов с использованием IPv6.

29-Jul-2015 01:03:28.926 lame-servers: error (network unreachable) resolving 'vassg.omniroot.com.edgesuite.net/A/IN': 2600:1401:2::2#53
29-Jul-2015 01:03:30.073 lame-servers: error (network unreachable) resolving 'askubuntu.com/A/IN': 2001:503:231d::2:30#53
29-Jul-2015 01:03:30.516 lame-servers: error (network unreachable) resolving 'stackapps.com/A/IN': 2001:503:a83e::2:30#53
29-Jul-2015 01:03:30.533 lame-servers: error (network unreachable) resolving 'stackapps.com/AAAA/IN': 2400:cb00:2049:1::adf5:3b69#53

При поиске в Google я пришел к решению запустить названную службу в режиме IPv4, только добавив переключатель -4. Я попытался изменить свой / etc / default / bind9 на это:

/ и т.д. / по умолчанию / bind9

# run resolvconf?
RESOLVCONF=yes

# startup options for the server
OPTIONS="-4 -u bind"

Но у меня все еще было много неудачных разрешений с использованием IPv6.

Итак, я проверил переключатели, используемые для запуска с именем systemd

mippy@heimdal:~/src/servermon$ sudo service bind9 status
● bind9.service - BIND Domain Name Server
   Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
   Active: active (running) since ons 2015-07-29 01:11:44 CEST; 25min ago
     Docs: man:named(8)
  Process: 6879 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
 Main PID: 6884 (named)
   CGroup: /system.slice/bind9.service
           └─6884 /usr/sbin/named -f -u bind

Похоже, что named запускается с / usr / sbin / named -f -u bind. Не то, что я ожидал от своего файла / etc / default / bind9.

Как я могу настроить named с помощью переключателя -4?

Это процедура обновления названных опций после переключения Ubuntus на systemd:

cp /lib/systemd/system/bind9.service /etc/systemd/system/bind9.service

редактировать

/etc/systemd/system/bind9.service

изменение

ExecStart=/usr/sbin/named -f -u bind

в

ExecStart=/usr/sbin/named -4 -f -u bind

затем

systemctl daemon-reload
service bind9 restart

дважды проверьте, что изменение вступило в силу:

mippy@heimdal:~/src/servermon$ sudo service bind9 status
● bind9.service - BIND Domain Name Server
   Loaded: loaded (/etc/systemd/system/bind9.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
   Active: active (running) since ons 2015-07-29 11:09:26 CEST; 5min ago
     Docs: man:named(8)
  Process: 20737 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
 Main PID: 20742 (named)
   CGroup: /system.slice/bind9.service
           └─20742 /usr/sbin/named -4 -f -u bind

Для получения дополнительной информации посетите эту страницу suse doc. Это должно быть применимо и к нам, пользователям Ubuntu. https://www.suse.com/documentation/sled-12/book_sle_admin/data/sec_boot_systemd_custom.html

Хотя ответ @Civing, скорее всего, сработает, это может быть не самый чистый способ переопределить bind9конфигурации, потому что все определение службы systemd, а не только ExecStart директива, которую нужно переопределить - копируется.

Появляется более компактный подход для достижения того же (для Xenial и более поздних версий). Вот.

Неудачные поиски ipv6 указывают не на неправильную конфигурацию на сервере, а на неправильную конфигурацию на клиенте. Ваш сервер, работающий только с адресом ipv4, по-прежнему будет получать DNS-запросы (AAAA) для разрешений ipv6. Это началось, когда несколько лет назад различные ОС начали включать ipv6 по умолчанию.