Внутренний IP-адрес моего маршрутизатора изменился, и с тех пор TrueNAS ведет себя некорректно. Ни одна из тюрем больше не может разрешить имя хоста. При устранении этой неполадки я обнаружил, что клиент не может пинговать любой внешний IP-адрес без ответа от хоста.
Для информации:
- В этом примере IP-адрес клиентской тюрьмы — 10.153.2.250.
- IP-адрес хоста (FreeNAS) — 10.153.2.9
- Новый шлюз — 10.0.55.1 (старый был 10.55.0.1), и он был обновлен как в сетевой конфигурации хоста, так и в тюрьмах.
- Когда изменился IP шлюза, FreeNAS попал в цикл загрузки при следующем запуске... по-видимому, из-за сбоя разрешения DNS. Насколько я помню (было 3 часа ночи, и мой разум был затуманен), обновление сервера имен и маршрута наконец исправило это.
- В то же время перестал работать общий ресурс SMB на хосте (и до сих пор не восстановился)
Невозможно пинговать доменные имена:
round-trip min/avg/max/stddev = 15.553/15.790/16.027/0.237 ms
root@jail:~ # ping google.com
ping: cannot resolve google.com: Host name lookup failure
Если я вручную скажу клиенту jail поискать домен, я получу обратно IP-адрес:
root@jail:~ # host google.com
google.com has address 172.217.15.110
google.com has IPv6 address 2607:f8b0:4009:801::200e
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 8 smtp.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
ОДНАКО, для любого IP-адреса, который я пингую из клиента тюрьмы, ответ приходит с IP-адреса хоста тюрьмы (FreeNAS). Пинг тех же IP-адресов с хоста дает нормальный ответ.
root@jail:~ # ping 172.217.15.110
PING 172.217.15.110 (172.217.15.110): 56 data bytes
64 bytes from 10.153.2.9: icmp_seq=0 ttl=116 time=30.454 ms
64 bytes from 10.153.2.9: icmp_seq=1 ttl=116 time=30.235 ms
64 bytes from 10.153.2.9: icmp_seq=2 ttl=116 time=30.534 ms
^C
--- 172.217.15.110 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 30.235/30.408/30.534/0.126 ms
Другой пример (обратите внимание на IP-адрес хоста 10.153.2.9 в ответе):
root@jail:~ # ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 10.153.2.9: icmp_seq=0 ttl=57 time=16.027 ms
64 bytes from 10.153.2.9: icmp_seq=1 ttl=57 time=15.553 ms
^C
--- 1.1.1.1 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
Но если я пингую другой внутренний IP (не маршрутизатора), я получаю ожидаемый ответ:
root@jail:~ # ping 10.153.2.205
PING 10.153.2.205 (10.153.2.205): 56 data bytes
64 bytes from 10.153.2.205: icmp_seq=0 ttl=64 time=0.295 ms
64 bytes from 10.153.2.205: icmp_seq=1 ttl=64 time=0.237 ms
64 bytes from 10.153.2.205: icmp_seq=2 ttl=64 time=0.193 ms
^C
--- 10.153.2.205 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.193/0.242/0.295/0.042 ms
root@jail:~
Вот результат netstat -rn
изнутри хоста. Я не слишком хорошо знаком с этим выводом, но мне ничего не бросается в глаза (и он очень похож на версию хоста):
root@jail:~ # netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 10.0.55.1 UGS epair0b
10.0.0.0/8 link#3 U epair0b
10.153.2.250 link#3 UHS lo0
127.0.0.1 link#1 UH lo0
Internet6:
Destination Gateway Flags NetifExpire
::/96 ::1 UGRS lo0
::1 link#1 UH lo0
::ffff:0.0.0.0/96 ::1 UGRS lo0
fe80::/10 ::1 UGRS lo0
fe80::%lo0/64 link#1 U lo0
fe80::1%lo0 link#1 UHS lo0
ff02::/16 ::1 UGRS lo0
Вот содержимое клиента resolv.conf
(идентично хостовому resolv.conf
и, как и ожидалось, соответствует настройкам в сетевой конфигурации FreeNAS):
root@jail:~ # cat /etc/resolv.conf
# Generated by resolvconf
search local
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 10.0.55.1
root@jail:~
Я проверил кэш ARP, MAC-адреса верны.
Итак... почему тюрьма получает IP-адрес хоста в ответе на пинг?