[Sysadmins] Файрвол+роутинг

Marat Khayrullin =?iso-8859-1?q?xmm_=CE=C1_rambler=2Eru?=
Ср Апр 11 16:15:27 MSD 2007


Alexander Volkov пишет:
> On 2007-04-11 13:07:36 +0300, Eugene Ostapets wrote:
> EO> 11.04.07, Alexander Volkov<alt vladregion.ru> написал(а):
> EO> > On 2007-04-11 10:30:03 +0300, Eugene Ostapets wrote:
> EO> > EO> Всем доброго дня!
> EO> >
> EO> > EO> Что-то читал, но за ненадобностью забыл...
> EO> > EO> Как у нас правильно организовать ответ сервиса по тому же интерфейсу,
> EO> > EO> с которого пришел запрос?
> EO> > У нас - имеется в виду сейчас и на etcnet?
> EO> Не обязательно, с etcnet я уже как-нибудь сам разберусь:)
> EO> > Про последний не скажу, а на 2.4 у меня до сих пор скрипт работает для 3
> EO> > провайдеров.
> EO> Можно на него взглянуть?
> зАпросто. Это rc.local. ip кое-как поменял
> 
> P1="8.13.8.118"
> P2="8.49.89.97"
> P3="8.5.199.1"
> P0_NET="192.168.2.0/25"
> P03_NET="192.168.3.0/27"
> P1_NET="8.13.8.116/30"
> P2_NET="8.49.89.96/27"
> P3_NET="8.5.199.0/24"
> IF0="eth0"
> IF1="eth1"
> IF2="eth2"
> IF3="eth3"
> IP1="89.113.8.117"
> IP2="85.249.89.102"
> IP3="84.53.199.236"
> 
> ip route add $P1_NET dev $IF1 src $IP1 table link1
> ip route add default via $P1 table link1
> ip route add $P2_NET dev $IF2 src $IP2 table link2
> ip route add default via $P2 table link2
> ip route add $P3_NET dev $IF3 src $IP3 table link3
> ip route add default via $P3 table link3
> ip route add 127.0.0.0/8 dev lo   table link1
> ip route add $P0_NET     dev $IF0 table link1
> ip route add $P03_NET     dev $IF0 table link1
> ip route add $P2_NET     dev $IF2 table link1
> ip route add $P3_NET     dev $IF3 table link1
> ip route add 127.0.0.0/8 dev lo   table link2
> ip route add $P0_NET     dev $IF0 table link2
> ip route add $P03_NET     dev $IF0 table link2
> ip route add $P1_NET     dev $IF1 table link2
> ip route add $P3_NET     dev $IF3 table link2
> ip route add 127.0.0.0/8 dev lo   table link3
> ip route add $P0_NET     dev $IF0 table link3
> ip route add $P03_NET     dev $IF0 table link3
> ip route add $P2_NET     dev $IF2 table link3
> ip route add $P1_NET     dev $IF1 table link3
> ip route add default via $P1
> ip rule add from $IP1 table link1
> ip rule add from $IP2 table link2
> ip rule add from $IP3 table link3
> 

Интересно, это сработает даже в случае, когда запрос пришел от клиента 
из инета (не из $Pn_NET), а сервис слушает 0.0.0.0, а не каждый 
интерфейс (как bind). accept наверняка привяжет сокет к нужному 
интерфесу, а там сработает своя таблица.

Хотя у себя на шлюзах я не запускаю сервисы, кроме bind - эта штука 
может когда-нибудь пригодиться. Всегда есть чему поучиться. :)

--
С уважением,
Хайруллин Марат.
http://xmm.moikrug.ru/



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