Linux
為什麼某些容器可以ping不在同一區域網路內的主機介面?
我有一個帶有 eth0 和 IP 172.17.0.2/16 的 lxc 容器。主機有一個網橋 br0 與 172.17.0.1/16。兩者都可以互相ping通。此外,主機具有 VPN wg0 和 IP 172.16.0.1/16。如果我從容器內部 ping 到 VPN,我會得到:
# ping 172.16.0.1 PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data. 64 bytes from 172.16.0.1: icmp_seq=1 ttl=64 time=0.051 ms
為什麼是這樣?我預計兩個介面之間沒有連接,因為未啟用轉發和 NAT。
除非我弄錯了,否則所有本地地址(屬於主機的那些)都會對來自任何介面的 ping 做出反應。這不是轉發的問題,而是將目標地址辨識為本地地址之一的問題。
您可以使用 進行測試
tcpdump
,我希望不會出現任何數據包wg0
。您也可以通過 ping 其他主機進行測試172.16.0.0/16
,您應該不會得到任何答案。另一個測試是使用ip addr add ...
添加一些其他地址到wg0
(或任何其他介面),並查看添加後是否可以 ping 它們。