URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 5189
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Пример настройки policy routing для двух сетей в FreeBSD 5.3"

Отправлено auto_tips , 22-Фев-05 14:36 
Стоит задача - выпустить свою сеть в инет через два разных интерфейса 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

У Sergey2005 заработала комбинация:
    ${fwcmd} add 40 divert 8668 all from #моя сеть# to not #подсеть провайдера "S"# out via rl1
    ${fwcmd} add 45 divert 8668 all from not #подсеть провайдера "S"# to any in via rl1

    ${fwcmd} add 50 divert 8669 all from #моя сеть# to #подсеть провайдера "S"# out via rl2
    ${fwcmd} add 55 divert 8669 all from #подсеть провайдера "S"# to any in via rl2

    natd -p 8668 -m -u -n rl1
    natd -p 8669 -m -u -n rl2


URL: http://www.opennet.me/openforum/vsluhforumID1/53437.html#3
Обсуждается: http://www.opennet.me/tips/info/788.shtml


Содержание

Сообщения в этом обсуждении
"Пример настройки policy routing для двух сетей в FreeBSD 5.3"
Отправлено Аноним , 22-Фев-05 14:36 
> Его тоже можно прописать в rc.local отдельной строкой типа:
> route add 999.888.0.0/24 999.888.0.25
Вообще это прописывается в rc.conf:
static_routes="s1"
route_s1="999.888.0.0/24 999.888.0.25"

"Пример настройки policy routing для двух сетей в FreeBSD 5.3"
Отправлено Аноним , 23-Фев-05 03:12 
а ежели такая петрушка с натд:


                         Natd (-reverse -unregistered_only)
194.1.2.2 -----------+--rl0(194.1.2.3)----+
netmask              |  |                 |
255.255.255.255      |  |   FreeBSD 5.3   |
                     |  |    stable       | external
                     |  |                 rl1(194.1.2.4)-----Internet
                     |  +-----------------+
                     |
                     |
                     |
            192.168.1.2/24


т.е. есть на одном интерфейсе и реальные и приватные адреса.как тогда быть? =\


"Пример настройки policy routing для двух сетей в FreeBSD 5.3"
Отправлено Аноним , 24-Фев-05 11:39 
Ваши два "реальных" адреса (3 и 4) как не крути попадают под одну маску, давайте более реальные схемы.

"Пример настройки policy routing для двух сетей в FreeBSD 5.3"
Отправлено Stingo , 24-Фев-05 16:19 
И где тут policy routing? Вижу пример технологии NAT не более того. А как предложил товарисч, статики прописываются в rc.conf
static_routes="myroute"
route_myroute="-net 10.10.10.0 -netmask 255.255.255.0 -gateway 10.0.0.1"

"natd vglobalports "
Отправлено Ilyaz , 02-Мрт-05 05:02 
Кто-нибудь может поделиться опытом использовния новой опции globalports в natd (о её появлении сказано в 5.3-RELEASE Release Notes)? Заранее благодарен ;-)

"Пример настройки NAT для двух сетей в FreeBSD 5.3"
Отправлено guest , 02-Мрт-05 14:27 
а почему не ipf ?

"Пример настройки NAT для двух сетей в FreeBSD 5.3"
Отправлено DEC , 04-Мрт-05 11:26 
ipf под большой нагрузкой плохо себя ведёт

"Пример настройки NAT для двух сетей в FreeBSD 5.3"
Отправлено citrin , 07-Мрт-05 02:18 
Как раз таки при большой нагрузке лучше использовать ipnat, а не natd. А если у вас много трансляций, то имеет смысл заменить #undef LARGE_NAT на #define LARGE_NAT в файле /sys/contrib/ipfilter/netinet/ip_nat.h

"Пример настройки NAT для двух сетей в FreeBSD 5.3"
Отправлено teledata , 10-Окт-05 15:15 
Кто-нибудь с таким сталкивался?
На внешнем интерфейсе 195.1.1.1 есть два альяса
10.0.0.1 и 192.0.0.1. Как ходить в сети 10.0.0.1/24 и 192.0.0.1/24 через альясы. Смотрел tcpdump'ом на внешнем интерфейсе все пакеты идут именно с 195.1.1.1.

"Пример настройки NAT для двух сетей в FreeBSD 5.3"
Отправлено napTu , 16-Мрт-06 21:45 
не могу воткнуть, помогите:
есть два внешних интерфейса ppp0 с серым адресом и tun0 с реальным. машина натит адреса в адрес ppp0. через ppp0 указан роут по дефолту. не могу ходить через tun0. Например указываю traceroute -s <внешн.адрес> mail.ru. Выдает sendto:denied. Запрещает фаервол, т.к. от этого адреса осуществляется попытка выхода через ppp0. Че делать, как ходить?

"Пример настройки NAT для двух сетей в FreeBSD 5.3"
Отправлено кино , 07-Дек-07 12:22 
>не могу воткнуть, помогите:
>есть два внешних интерфейса ppp0 с серым адресом и tun0 с реальным. машина натит адреса в адрес ppp0. через ppp0 указан роут по дефолту. не могу ходить через tun0. Например указываю traceroute -s <внешн.адрес> mail.ru. Выдает sendto:denied. Запрещает фаервол, т.к. от этого адреса осуществляется попытка выхода через ppp0. Че делать, как ходить?

поступило предложение юзать везде нетграф - вот и нат тоже под модулем ng_nat# Create NAT

# Divert traffic into NAT node
ipfw add 300 netgraph 61 all from any to any in via fxp0
ipfw add 400 netgraph 60 all from any to any out via fxp0