У меня есть машина с двойным подключением (1 LAN, 1 DMZ), использующая статические IP-адреса на обоих, с маршрутами, настроенными так, чтобы пакеты, входящие в IP-адрес LAN, использовали шлюз LAN, а пакеты DMZ использовали шлюз DMZ. Я использую tcpdump для отладки на локальном компьютере.
При установке TCP-соединения с исходным IP-адресом в подсети DMZ квитирование проходит нормально. При установке TCP-соединения с исходным IP-адресом за пределами подсети DMZ с nic DMZ сервер никогда не возвращает ACK.
Я подтвердил, что ACK не отправляются через другой ник. Я подтвердил, что правила не настроены в iptables
(главный подозреваемый на данный момент). Маршруты выглядят уместно. Пакеты SYN выглядят нормально. Я подтвердил, что сопоставление IP-адресов корректно (и согласованно для разных загрузок).
Эта конфигурация работала нормально. Я переместил оборудование и изменил IP-адреса LAN и DMZ, и теперь у меня возникли проблемы. Я обновил новые IP-адреса в обоих /etc/network/interfaces
и в файле hosts (только DMZ).
Где еще мне посмотреть, где блокируется трафик?
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.10.0.0 10.10.0.1 255.255.255.0 UG 0 0 0 eth1
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth2
(eth0 не настроен, 10.10.0.0/24 = DMZ, 10.0.0.0/24 = LAN)
Я нашел проблему. Мне нужно было добавить явный маршрут для eth1, чтобы правильно направлять трафик в WAN из DMZ.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
<WAN subnet> 10.10.0.1 255.255.255.0 UG 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.10.0.0 10.10.0.1 255.255.255.0 UG 0 0 0 eth1
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth2