DNS-сервер не прослушивает IPv6 после перезагрузки

У меня есть два недавно созданных экземпляра 20.04 на AWS (Amazon Web Services). Один относится к типу t2, а другой - к типу t3.

В этих экземплярах настроены как IPv4, так и IPv6. Как вы, наверное, знаете, эти адреса не статичны с точки зрения ОС, а получаются через DHCP AWS. Однако такой экземпляр всегда получает одинаковые адреса IPv4 и IPv6.

У обоих экземпляров одна и та же проблема.

Я установил и настроил DNS-сервер (привязка 9.16.1). DNS-сервер запускается автоматически после перезагрузки, но, похоже, не привязан к IPv6-адресу (он использует только «локальный адрес ссылки»).

Например, netstat после перезагрузки дает:

# netstat -natpu | grep /named
tcp        0      0 172.31.xx.xxx:53        0.0.0.0:*               LISTEN      581/named           
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      581/named           
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      581/named           
tcp6       0      0 fe80::xxx:xxxx:xxxx::53 :::*                    LISTEN      581/named           
tcp6       0      0 ::1:53                  :::*                    LISTEN      581/named           
tcp6       0      0 ::1:953                 :::*                    LISTEN      581/named           
udp        0      0 172.31.xx.xxx:53        0.0.0.0:*                           581/named           
udp        0      0 127.0.0.1:53            0.0.0.0:*                           581/named           
udp6       0      0 ::1:53                  :::*                                581/named           
udp6       0      0 fe80::xxx:xxxx:xxxx::53 :::*                                581/named   

Итак, мне нужно перезапустить сервер:

# systemctl restart named

# netstat -natpu |  grep /named
tcp        0      0 172.31.xx.xxx:53        0.0.0.0:*               LISTEN      31425/named         
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      31425/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      31425/named         
tcp6       0      0 fe80::xxx:xxxx:xxxx::53 :::*                    LISTEN      31425/named         
tcp6       0      0 2600:xxxx:xxx:xxxx:x:53 :::*                    LISTEN      31425/named         
tcp6       0      0 ::1:53                  :::*                    LISTEN      31425/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      31425/named         
udp        0      0 172.31.xx.xxx:53        0.0.0.0:*                           31425/named         
udp        0      0 127.0.0.1:53            0.0.0.0:*                           31425/named         
udp6       0      0 ::1:53                  :::*                                31425/named         
udp6       0      0 2600:xxxx:xxx:xxxx:x:53 :::*                                31425/named         
udp6       0      0 fe80::xxx:xxxx:xxxx::53 :::*                                31425/named        

Эта проблема не связана с сетевым интерфейсом, поскольку экземпляры t2 и t3 использовать совсем другие типы сетевых интерфейсов, и предыдущая версия Ubuntu (18.04) не имела такой проблемы.

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

Примечание : Эта проблема также возникает, когда установлены некоторые пакеты (я еще не определил, какие из них), и в результате обрабатываются некоторые триггеры.

Как я могу отложить запуск службы DNS после получения правильного адреса IPv6 от DHCP? Или вы можете предложить другое решение?

0
задан 24 July 2020 в 12:37

1 ответ

У меня возникла та же проблема, и я безуспешно пытался изменить названные скрипты «bind» в 20.04 LTS. Потом передумал, а потом нашел решение отложить запуск именованного сервиса через систему и нашел статью через ASK.

Не знаю, почему инициализация подсистем ipv6 и сетевых интерфейсов занимает так много времени.

Решение, которое я использую, заключается в том, что я добавил строку в файл /lib/systemd/system/named.service. в служебной строфе вот так. «Вставил строку прямо под заголовком строфы».

[Service]

ExecStartPre=-/bin/sleep 10

Похоже, это лучший способ решить эту проблему, поэтому вам не нужно возиться со сценариями запуска, поскольку они будут меняться вместе с пакетами. обновляться со временем.

Я использую несколько ноутбуков Acer с новейшими процессорами I5 9-го поколения поверх SSD-накопителя, и он загружается так быстро, что у меня также есть другие условия гонки с периферийными аппаратными интерфейсами и сценариями запуска брандмауэра, которые можно решить таким же образом. .

Надеюсь, это поможет!

2
ответ дан 17 October 2020 в 22:43

Другие вопросы по тегам:

Похожие вопросы: