我正在对我们的网络和 VPN 进行一些故障排除,我想要监控流量,并且想要查看 SNAT 和 DNAT 是否工作正常。我想要像 tcpdump 这样的实时内容,我可以看到类似的内容:
192.168.25.40 <----> 172.16.30.245 icmp 回显请求 194.30.25.10 194.30.25.10 icmp 回显应答 172.26.30.245 <----> 192.168.25.40
是否可以使用 tcpdump、iptraf 或 iftop 来完成此操作?或者还有其他工具可以用来实时查看 NAT 吗?
谢谢
答案1
我不知道你做错了什么,但这是一个例子。设置:两个网络命名空间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
在没有 NAT 的情况下进行 Pingns1
显示:
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
启用 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 > 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 正在工作。
正如我所说,你需要将数据包转储到两个都输出和输入接口。