Linux

如何實時查看 NAT?

  • June 29, 2017

我正在對我們的網路和 VPN 進行一些故障排除,我想監控流量,我想看看 SNAT 和 DNAT 是否工作正常。我想要像 tcpdump 這樣的東西,我可以看到類似的東西:

192.168.25.40 <—-> 172.16.30.245 icmp echo-r​​equest 194.30.25.10 194.30.25.10 icmp echo-r​​eply 172.26.30.245 <—-> 192.168.25.40

是否可以使用 tcpdump 或 iptraf 或 iftop 來做到這一點?或者有沒有其他工具可以用來實時查看 NAT?

謝謝

我不知道你做錯了什麼,但這裡有一個例子。設置:兩個網路命名空間ns0ns1veth對,主命名空間轉發:

ns0          &lt;------- main -------&gt;     ns1
veth0b   --- veth0a          veth1a --- veth1b
10.0.0.1     10.0.0.254  10.0.1.254     10.0.1.1

做簡單tcpdumpveth0aveth1ans0ns1沒有 NAT的ping顯示:

IP 10.0.1.1 &gt; 10.0.0.1: ICMP echo request, id 20765, seq 1, length 64
IP 10.0.0.1 &gt; 10.0.1.1: ICMP echo reply, id 20765, seq 1, length 64

veth0a, 上veth1a:

IP 10.0.1.1 &gt; 10.0.0.1: ICMP echo request, id 20765, seq 1, length 64
IP 10.0.0.1 &gt; 10.0.1.1: ICMP echo reply, id 20765, seq 1, length 64

啟用 SNATveth0a

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 &gt; 10.0.0.1: ICMP echo request, id 20795, seq 1, length 64
IP 10.0.0.1 &gt; 10.0.1.90: ICMP echo reply, id 20795, seq 1, length 64

開啟時veth1a

IP 10.0.1.1 &gt; 10.0.0.1: ICMP echo request, id 20795, seq 1, length 64
IP 10.0.0.1 &gt; 10.0.1.1: ICMP echo reply, id 20795, seq 1, length 64

因此可以清楚地看到 SNAT 正在工作。

正如我所說,您需要在傳出和傳入介面上轉儲數據

引用自:https://unix.stackexchange.com/questions/374221