[Sysadmins] Помогите с iptables

Alexei V. Mezin =?iso-8859-1?q?alexei=5Fvm_=CE=C1_micmedia=2Eru?=
Сб Июл 7 23:00:03 MSD 2007


На домашней машине два внешних интерфейса:
mm -- домовая сеть (большая локалка), статический адрес
akado -- к кабельному модему, Ethernet, получает параметры по DHCP

и один "внутренний":
lan -- сетевая карта, к которой подключен второй комп (машина для 
тестирования Desktop 4).

Заданы статические маршруты так, что в локалку основная машины ходит 
через mm, а по умолчанию (т.е. в инет) через akado, на второй компьютер 
через lan.

Хочется инет+локалка на втором компе. Запускаю вот такой скрипт:

WAN1_IFACE="akado"
WAN2_IFACE="mm"
LAN_IFACE="lan"
LAN_IP="172.1.1.0/24"

IPTABLES="/sbin/iptables"

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -A POSTROUTING -s $LAN_IP -o $WAN1_IFACE -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $LAN_IP -o $WAN2_IFACE -j MASQUERADE

После этого появляется нормальный доступ в локалку, т.е. на WAN2_IFACE 
маскарадинг срабатывает. А вот на WAN1_IFACE нет. Причем как-то хитро не 
срабатывает. Например, если набрать в бравзере www.ru, то видно, что 
бравзер перенаправляется на http://www.ru/eng/index.html, но далее 
ничего не загружается. При этом пинги ходят вполне успешно.

Если пытаться запустить rc.firewall из набора iptables-tutorial, то 
поведение аналогично, и при этом в логи высыпается такое:

Jul  7 22:17:14 threebears kernel: New not syn:IN= OUT=akado 
SRC=10.2.13.157 DST=64.12.25.32 LEN=70 TOS=0x00 PREC=0x00 TTL=64 
ID=50520 DF PROTO=TCP SPT=57221 DPT=5190 WINDOW=64542 RES=0x00 ACK PSH 
URGP=0
Jul  7 22:18:44 threebears kernel: New not syn:IN= OUT=akado 
SRC=10.2.13.157 DST=64.12.25.32 LEN=70 TOS=0x00 PREC=0x00 TTL=64 
ID=50521 DF PROTO=TCP SPT=57221 DPT=5190 WINDOW=64542 RES=0x00 ACK PSH 
URGP=0


Получается, что два внешних интерфейса чем-то отличаются. Чем?



Подробная информация о списке рассылки Sysadmins