Решил от особого любопытства провести такой вот эксперимент:
Есть машина ессессно на Linux на которой были подняты два интерфейса Eth0 и соответственно Eth1 оба они были воткнуты в один свич в моем случае HP 5304xl теперь о настройках:
eth0 inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Имелся шлюз с адресом 192.168.0.1/24
Вот таблица маршрутизации: Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Это к сведенью: cat /proc/sys/net/ipv4/ip_forward 0
Подключаюсь на любой интерфейс все работает. Ставлю IPTABLES, я скриптик где дропаю кривые пакеты (например из сети класа E) и т.д. в конце ставлю логирование. После применения этих правил вижу что Eth1 отваливается и перестает отвечать в логах виж вот такое:
Sep 19 19:07:33 host kernel: IN=eth0 OUT= SRC=192.168.1.1 DST=192.168.0.3 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=43524 DF PROTO=TCP SPT=56339 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 (192.168.1.1 моя машина с которой ломлюсь по ssh на Eth1 из другой сети)
У меня естественно принимаются пакеты предназначенные только для Eth0 с его IP а остальное отбрасывалось... После внесения таких правил все заработало:
$IPTABLES -A INPUT -p tcp -d 192.168.0.3 --dport 22 -i eth0 -j ACCEPT; $IPTABLES -A OUTPUT -p tcp -s 192.168.0.3 -o eth0 -j ACCEPT;
ВНИМАНИЕ вопрос: Фактический трафик пошел через Eth0? Кто хорошо знает механизм работы сетевых интерфейсов просьба "пофилософствовать" на эту тему С улыбкой