Я занимаюсь устранением неполадок в нашей сети и 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 показывает:
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 работает.
Как я уже сказал, вам нужно сбрасывать пакеты на как исходящий, так и входящий интерфейс.