Linux
如何實時查看 NAT?
我正在對我們的網路和 VPN 進行一些故障排除,我想監控流量,我想看看 SNAT 和 DNAT 是否工作正常。我想要像 tcpdump 這樣的東西,我可以看到類似的東西:
192.168.25.40 <—-> 172.16.30.245 icmp echo-request 194.30.25.10 194.30.25.10 icmp echo-reply 172.26.30.245 <—-> 192.168.25.40
是否可以使用 tcpdump 或 iptraf 或 iftop 來做到這一點?或者有沒有其他工具可以用來實時查看 NAT?
謝謝
我不知道你做錯了什麼,但這裡有一個例子。設置:兩個網路命名空間
ns0
和ns1
兩veth
對,主命名空間轉發:ns0 <------- main -------> ns1 veth0b --- veth0a veth1a --- veth1b 10.0.0.1 10.0.0.254 10.0.1.254 10.0.1.1
做簡單
tcpdump
的veth0a
和veth1a
。ns0
從ns1
沒有 NAT的ping顯示:IP 10.0.1.1 > 10.0.0.1: ICMP echo request, id 20765, seq 1, length 64 IP 10.0.0.1 > 10.0.1.1: ICMP echo reply, id 20765, seq 1, length 64
上
veth0a
, 上veth1a
:IP 10.0.1.1 > 10.0.0.1: ICMP echo request, id 20765, seq 1, length 64 IP 10.0.0.1 > 10.0.1.1: ICMP echo reply, id 20765, seq 1, length 64
啟用 SNAT
veth0a
後iptables -t nat -A POSTROUTING -o veth0a -s 10.0.1.1/32 -j SNAT --to 10.0.1.90
現在
veth0a
有IP 10.0.1.90 > 10.0.0.1: ICMP echo request, id 20795, seq 1, length 64 IP 10.0.0.1 > 10.0.1.90: ICMP echo reply, id 20795, seq 1, length 64
開啟時
veth1a
IP 10.0.1.1 > 10.0.0.1: ICMP echo request, id 20795, seq 1, length 64 IP 10.0.0.1 > 10.0.1.1: ICMP echo reply, id 20795, seq 1, length 64
因此可以清楚地看到 SNAT 正在工作。
正如我所說,您需要在傳出和傳入介面上轉儲數據包。