我的路由器的內部 IP 位址發生了變化,從此 TrueNAS 就出現了異常行為。所有監獄都無法再解析主機名稱。在解決此問題時,我發現客戶端無法 ping 任何外部 IP 位址,除非主機回應。
欲了解資訊:
- 在此範例中,客戶端監獄的 IP 為 10.153.2.250
- 主機(FreeNAS)的IP是10.153.2.9
- 新網關是 10.0.55.1(舊網關是 10.55.0.1),主機的網路配置和監獄的網路配置都已更新。
- 當網關 IP 變更時,FreeNAS 在下次啟動時進入啟動循環......顯然是 DNS 解析失敗。我記得(當時是凌晨 3 點,我的腦袋一片模糊),更新了網域伺服器和路由終於解決了這個問題。
- 主機上的 SMB 共享同時停止工作(並且仍未恢復)
無法 ping 通域名:
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
如果我手動告訴監獄客戶端查找網域,我會得到一個 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.
然而,對於我從監獄用戶端內 ping 的任何 IP 位址,回應都來自監獄主機 (FreeNAS) 的 IP。從主機 ping 相同的 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
但是,如果我 ping 另一個內部 IP(路由器的 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位址是正確的。
那麼......為什麼監獄會在 ping 回應中取得主機的 IP?