Всем здравствуйте! Данный топик является логическим продолжением вот этого Проблема с DNS в docker-контейнере (комментарий), но так как проблему удалось локализовать и конкретизировать, решил оформить её отдельно. В общем, имеется CentOS 7 в докер-контейнере. После того, как добавляю firewalld в автозагрузку:
[root@docker /]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
...после ребута прекращает работать преобразование доменных имён в IP (DNS):
[root@docker /]# ping ya.ru
ping: ya.ru: Name or service not known
Стоит отключить автозагрузку и снова ребутнуться, как DNS начинают работать вновь:
[root@docker /]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@docker /]# reboot
[root@docker /]# ping ya.ru
PING ya.ru (87.250.250.242) 56(84) bytes of data.
64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=58 time=15.8 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=2 ttl=58 time=15.8 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=3 ttl=58 time=16.0 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=4 ttl=58 time=16.2 ms
Сам по себе факт запуска firewalld работе DNS не мешает. То есть если в запущенной системе выполнить «systemctl start fiewalld», то firewalld корректно запускается, DNS работает. Проблема где-то в самой автозагрузке, как будто возникает какой-то конфликт и что-то, что связано с DNS, не запускается. Вот содержимое файла службы, на который делаются симв. ссылки при автозагрузке:
[root@docker /]# cat /usr/lib/systemd/system/firewalld.service
[Unit]
Description=firewalld - dynamic firewall daemon
Before=network-pre.target
Wants=network-pre.target
After=dbus.service
After=polkit.service
Conflicts=iptables.service ip6tables.service ebtables.service ipset.service
Documentation=man:firewalld(1)
[Service]
EnvironmentFile=-/etc/sysconfig/firewalld
ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
# supress to log debug and error output also to /var/log/messages
StandardOutput=null
StandardError=null
Type=dbus
BusName=org.fedoraproject.FirewallD1
KillMode=mixed
[Install]
WantedBy=multi-user.target
Alias=dbus-org.fedoraproject.FirewallD1.service
Может, достаточно порядок загрузки firewalld изменить, в конец его как-нибудь переместить? После чего тогда лучше поставить? Уже не знаю, что думать.