[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