Я экспериментирую с iptables в виртуальной сети. Моя топология сети выглядит следующим образом:
(1.2.3.0/24) ------ (eth1) R (eth0) ------ (10.2.0.0/24)
IP-адрес, связанный с eth1 R: 1.2.3.1.
Я настроил маршрутизатор R для перенаправления входящего трафика c на eth1 на 10.2.0.1:80 по следующему правилу:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 10.2.0.1:80
Таблица FORWARD для R пуста с политикой ACCEPT.
На хосте внешней сети (1.2.3.0/24) я попытался выполнить сканирование Nmap NULL на порту 80 1.2.2.1 с:
nmap -sN -p80 1.2.3.1
Я ожидал, что R перенаправит Пакеты TCP этого сканирования в 10.2.0.1, но tcpdump показывает, что пакеты не DNATed, то есть они отброшены на R.
Я предполагаю, что такие пакеты связаны с состоянием INVALID, и поэтому предварительная маршрутизация DNAT не делает примените в этой ситуации.
Правильно ли я сделал это предположение?