Шаманство с тремя сетками и NAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Booran
проходил мимо

Шаманство с тремя сетками и NAT

Непрочитанное сообщение Booran » 2009-10-05 9:48:56

Мужики, тут какое то колдунство происходит, не могу понять, то ли в 7-й ветке что то с firewall поменялось, толи natd как то по другому работает, в общем история такая

Есть 2 провайдера в которые смотрят 2 карты и третья карта смотрит в локалку. Все вроде бы просто, если пакет идет в инет то направляется через одного из провайдеров по умолчанию, а если адрес назначения в диапазоне другого прова - то посылается через него. Соответственно на каждом интерфейсе работает НАТ и дивертит пакеты из локалки и обратно.

В итоге, нихрена не работает на 7.2, если задаешь тупо в rc.conf natd_interface="xl0" и скрипт NAT в rc.firewall отрабатывает - то через одну карту пропускает без проблем, но когда делаешь на 2 и прописываешь в rc.local - все по нулям...

На 4.11 и на 6.2 версиях было сделано по следующему мануалу и работало:
Стоит задача - выпустить свою сеть в инет через два разных интерфейса rl1 и rl2.
Так как адреса в локали серые, то надо поднимать NAT . С учетом того, что динамической маршрутизации
не предвидится, будем поднимать NAT на 2 интерфейса. Для этого нужно:

Скомпилировать ядро с параметрами:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=20
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
options TCP_DROP_SYNFIN
это необходимый минимум. На все случаи жизни )))))

Далее, в rc.local пишем такие строки:
natd -p 8668 -n rl1
natd -p 8669 -n rl2
#natd -p 8671 -n rl3
#natd -p 8672 -n rl4
#natd -p 8673 -n rl5
Последние три строки - если кому надо поднимать NAT на большее количество интерфейсов.

Следующее - правила ipfw:

ipfw -f add divert 8668 all from #твоясеть# to any out via rl1
ipfw -f add divert 8668 all from any to #адрес_rl1# in via rl1

ipfw -f add divert 8669 all from #твоясеть# to any out via rl2
ipfw -f add divert 8669 all from any to #адрес_rl2# in via rl2

Теперь все, что будет выходить через внешние интерфейсы, будет правильно NATиться через них же.
Остается проверить маршрутизацию. Если маска на rl2 /24. В этом случае все просто.
Стандартный шлюз (default gateway) прописан через rl1, а все, что идет на сеть 999.888.0.0/24 будет
автоматически бежать через rl2. Если же на rl2 выделена подсетка из нескольких адресов, то тогда надо
писать жесткий марщрут на всю сеть 999.888.0.0/24 через rl2 на тот шлюз, который тебе дал провайдер N2.
Его тоже можно прописать в rc.local отдельной строкой типа:
route add 999.888.0.0/24 999.888.0.25

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Шаманство с тремя сетками и NAT

Непрочитанное сообщение paradox » 2009-10-05 16:04:02

а вы почитайте все таки что нового и как изменилась 7 по сравнению с 6 и 4