Странная проблема произошла сегодня. После установки обновлений и перезагрузки моей системы archlinux я заметил, что postfix не перезапустился. Он сообщал об ошибке:
postfix: fatal: parameter inet_interfaces: no local interface found for 192.168.178.61
После некоторого расследования выясняется, что причиной ошибки является то, что мой DNS-сервер (AVM Fritz!box router), кажется, возвращает два адреса для localhost:
[root@rubicon postfix]# nslookup
> server 192.168.178.1
Default server: 192.168.178.1
Address: 192.168.178.1#53
> fritz.box.
Server: 192.168.178.1
Address: 192.168.178.1#53
Name: fritz.box
Address: 192.168.178.1
>
> 192.168.178.1
1.178.168.192.in-addr.arpa name = fritz.box.
>
> localhost.
Server: 192.168.178.1
Address: 192.168.178.1#53
Name: localhost
Address: 192.168.178.61
Name: localhost
Address: 127.0.0.1
Я вижу такие же результаты от nslookup на клиенте Windows.
У кого-нибудь есть идеи, что может вызвать это, или как дальше отладить проблему? Я полагаю, Фриц!box не создает этот второй адрес сам по себе, но, возможно, некоторые динамические действия DNS / регистрация из другой системы в сети вызывают его ... Но кто и почему?
Предложения? Является ли моя теория правдоподобной?
Похоже, это не основная система archlinux, journalctl показывает мне следующие записи в журнале от dhcpd:
...
Dec 14 18:38:15 rubicon dhcpcd[466]: enp2s0: IAID 18:30:bc:a4
Dec 14 18:38:15 rubicon dhcpcd[466]: enp2s0: adding address fe80::661c:3ea0:2501:46ad
Dec 14 18:38:16 rubicon dhcpcd[466]: enp2s0: soliciting an IPv6 router
Dec 14 18:38:16 rubicon dhcpcd[466]: enp2s0: rebinding lease of 192.168.178.54
Dec 14 18:38:16 rubicon dhcpcd[466]: enp2s0: probing address 192.168.178.54/24
Dec 14 18:38:21 rubicon dhcpcd[466]: enp2s0: leased 192.168.178.54 for 864000 seconds
Dec 14 18:38:21 rubicon dhcpcd[466]: enp2s0: adding route to 192.168.178.0/24
Dec 14 18:38:21 rubicon dhcpcd[466]: enp2s0: adding default route via 192.168.178.1
Dec 14 18:38:21 rubicon dhcpcd[466]: forked to background, child pid 557
Dec 14 18:38:30 rubicon dhcpcd[557]: enp2s0: no IPv6 Routers available
...
Что все выглядит нормально (для меня) - там нет упоминания адреса .61.
Роутер это фриц!коробка 7390 под управлением версии 6.83. Система Linux была только что обновлена до 4.14.5-1-ARCH. В сети работает множество других систем, например, Windows, BSD и Android.
Кажется, не существует (в настоящее время) хост, использующий адрес .61, например, проверка связи не удалась. Кэш Linux linux выглядит так:
$ ip neighbour show
192.168.178.1 dev enp2s0 lladdr 08:96:d7:78:53:6a REACHABLE
192.168.178.61 dev enp2s0 FAILED
192.168.178.250 dev enp2s0 lladdr fc:f5:28:ed:05:e5 STALE
(К сведению: причина, по которой Postfix был расстроен, была в том, что я установил опцию конфигурации "inet_interfaces" на "localhost". Postfix искал это имя и возвращал IP-адрес, но не тот, который был настроен в локальной системе.)
Изменить: некоторая дополнительная информация. из системы archlinux:
[root@rubicon etc]# ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:26:18:30:bc:a4 brd ff:ff:ff:ff:ff:ff
inet 192.168.178.54/24 brd 192.168.178.255 scope global enp2s0
valid_lft forever preferred_lft forever
inet6 fe80::661c:3ea0:2501:46ad/64 scope link
valid_lft forever preferred_lft forever
[root@rubicon etc]# ls -ltr /etc/hosts* /etc/resolv.conf* /etc/nsswitch.conf*
-rw-r--r-- 1 root root 234 Feb 15 2015 /etc/nsswitch.conf_dist
-rw-r--r-- 1 root root 766 Apr 11 2017 /etc/nsswitch.conf
-rw-r--r-- 1 root root 65 Oct 17 09:32 /etc/resolv.conf.pacnew
-rw-r--r-- 1 root root 334 Oct 17 09:32 /etc/nsswitch.conf.pacnew
-rw-r--r-- 1 root root 65 Oct 17 09:32 /etc/hosts
-rw-r--r-- 1 root root 68 Dec 14 10:20 /etc/resolv.conf
По какой-то причине файл hosts пуст (содержит только комментарии), я не думаю, что мне когда-либо приходилось его редактировать:
[root@rubicon etc]# cat hosts
# Static table lookup for hostnames.
# See hosts(5) for details.
resolv.conf содержит:
# Generated by resolvconf
domain fritz.box
nameserver 192.168.178.1
Как вы можете видеть, есть новый nsswitch.conf.pacnew, очевидно, после обновления пакета в октябре. Он немного отличается от существующего nsswitch.conf, но я заменил оригинал. Ранее у меня было:
hosts: files dns myhostname
Теперь у меня есть:
hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname