Ubuntu Server 9.04. Две сети: eth0 - локалка, eth1 - инет. В локалке есть еще один шлюз со своим каналом, и с него запросы на 80 порт мапятся на никсы. Но никсы, увидев пришедший на eth0 запрос с IP из внешки, радостно отвечают в инет, то бишь в eth1. Проблема была решена с помощью таблиц маршрутизации - при загрузке запускается следующий скрипт:
#!/bin/sh
IP1=10.140.x.x //IP от провайдера инета
IP2=192.168.0.250 // внутренний ip сервака
P1=10.140.8.1 // шлюз инета
P2=192.168.0.200 //шлюз в локалке, с которого мапится 80 порт
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
В результате все работает, но возникает одна загвоздка. Получается, что сервак (192.168.0.250) из локалки eth0 (192.168.0.0/24) никого, кроме 192.168.0.200, к себе не пускает, и чтобы до него достучаться, нужно идти на него через второй шлюз (192.168.0.200).
Подскажите, как настроить маршрутизацию в этом случае?