Два канала и как заюзать multi routing table?

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-03 18:41:19

Нарисовал схемку сети, что б было все ясно и понятно.
Как уже знаем(поднималась похожая тема но как-то безрезультатно) в FreeBSD в седьмой версии есть поддержка множественных таблиц маршрутизации.

Как зароутить клиента A на инет через ADSL1, а клиента B через ADSL2?
Тут расписано как это делается через Policy-Based Routing (PBR), я же хочу через таблицы эти.

Чего делал я.
Запустил два NAT'а

Код: Выделить всё

natd -f /etc/natd_ng0.conf    # порт 8668
natd -f /etc/natd_ng1.conf    # порт 8778
Ядро пересобрал, указал роуты

Код: Выделить всё

setfib -0 route add default xxx.xxx.xxx.xxx
setfib -1 route add default yyy.yyy.yyy.yyy


правила фаервола

Код: Выделить всё

ipfw add 10 setfib 0 all from 192.168.0.1 to any 
ipfw add 20 setfib 0 all from any to 192.168.0.1
ipfw add 30 setfib 1 all from 192.168.0.2 to any 
ipfw add 40 setfib 1 all from any to 192.168.0.2

# ng0
ipfw add 100 divert 8668 all from any to XXX.XXX.XXX.XXX in via ng0
ipfw add 200 divert 8668 all from 192.168.0.0/24 to any out via ng0

# ng1
ipfw add 300 divert 8778 all from any to YYY.YYY.YYY.YYY in via ng1
ipfw add 400 divert 8778 all from 192.168.0.0/24 to any out via ng1
нулевая таблица пашет. а клиент 192.168.0.2 не ходит через вторую таблицу. чего не так?
Вложения
Drawing1.jpg
Помни о смерти, все суета сует....

Хостинговая компания 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: Два канала и как заюзать multi routing table?

Непрочитанное сообщение paradox » 2008-12-03 18:46:37

natd прописано какой интерфейс слушает?

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-03 18:57:40

natd_ng0.conf

Код: Выделить всё

interface ng0
same_ports
port 8668
dynamic
natd_ng1.conf

Код: Выделить всё

interface ng1
same_ports
port 8778
dynamic
Помни о смерти, все суета сует....

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-03 18:58:51

Код: Выделить всё

ipfw add 10 setfib 0 all from 192.168.0.1 to any 
ipfw add 20 setfib 0 all from any to 192.168.0.1
ipfw add 30 setfib 1 all from 192.168.0.2 to any 
ipfw add 40 setfib 1 all from any to 192.168.0.2
я правилтно понимаю что этими правилами "запихиваю" в нужную талицу маршрутизации?
Помни о смерти, все суета сует....

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

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение paradox » 2008-12-03 19:02:32

log no
deny_incoming no
use_sockets yes
same_ports yes
verbose no
unregistered_only yes
лучше укажи явно кто йес а кто ноу

ну и насчет динамик в natd я не очень уверено
поэтому лучше запускай natd уже после того как поднимаються ng*

в остальном вроде все так.......

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-03 19:35:06

ок. попробую, отпишусь. И еще.
я хоть и стал сторонником FreeBSD(ранее юзал Linux), но почему созданные новые таблицы такие "грязные".
То есть, некоторые маршруты дублируются во всех таблицах. В Linux'е в этом плане, если мне не изменяет память, все гораздо лучше. Создал таблицу (она пустая) и добавляй себе маршруты...
Помни о смерти, все суета сует....

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение Alex Keda » 2008-12-03 23:27:39

это первый релиз с несколькими таблицами, помоему...
не всё же сразу =)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-04 16:17:27

Значит чего получилось.
ниже прикрепил картинку реальной ситуации

Имеем два кана:
ng0 - xxx.xxx.39.12 --> 192.168.0.1
ng1 - 192.168.15.27 --> 192.168.15.27

natd_ng0.conf

Код: Выделить всё

interface ng0
log no
deny_incoming no
use_sockets yes
same_ports yes
verbose no
unregistered_only yes
port 8778
natd_ng1.conf

Код: Выделить всё

interface ng0
log no
deny_incoming no
use_sockets yes
same_ports yes
verbose no
unregistered_only yes
port 8668
фаервол firewall.comf

Код: Выделить всё

#!/bin/sh

fwcmd="/sbin/ipfw -q "

${fwcmd} -f flush

${fwcmd} add 10 setfib 0 all from 192.168.99.32 to any
${fwcmd} add 20 setfib 0 all from any to 192.168.99.32

${fwcmd} add 100 divert 8778 log all from any to xxx.xxx.39.12 in via ng0
${fwcmd} add 200 divert 8778 log all from 192.168.99.0/24 to any out via ng0

${fwcmd} add 300 divert 8668 log all from any to 192.168.15.27 in via ng1
${fwcmd} add 400 divert 8668 log all from 192.168.99.0/24 to any out via ng1

Вложения
Drawing2.jpg
Последний раз редактировалось savio 2008-12-04 16:28:31, всего редактировалось 1 раз.
Помни о смерти, все суета сует....

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-04 16:23:27

как видно в 10 и 20 сточке запихиаю в нулевую таблицу (можно и без этого, по умолчанию выбирается она), все работает

Код: Выделить всё

00010  63  5796 setfib 0 ip from 192.168.99.32 to any
00020  33  1956 setfib 0 ip from any to 192.168.99.32
00100  33  1940 divert 8778 log ip from any to xxx.xxx.39.12 in via ng0
00200  30  2760 divert 8778 log ip from 192.168.99.0/24 to any out via ng0
00300   0     0 divert 8668 log ip from any to 192.168.15.27 in via ng1
00400   0     0 divert 8668 log ip from 192.168.99.0/24 to any out via ng1
65535 903 72864 allow ip from any to any 
далее меняю в 10 и 20 правилах номер таблицы и не работает!

Код: Выделить всё

00010  8  480 setfib 1 ip from 192.168.99.32 to any
00020  0    0 setfib 1 ip from any to 192.168.99.32
00100  6  502 divert 8778 log ip from any to xxx.xxx.39.12 in via ng0
00200  0    0 divert 8778 log ip from 192.168.99.0/24 to any out via ng0
00300  0    0 divert 8668 log ip from any to 192.168.15.27 in via ng1
00400  4  240 divert 8668 log ip from 192.168.99.0/24 to any out via ng1
65535 49 4634 allow ip from any to any 
вот маршруты таблицы

Код: Выделить всё

# setfib -1 netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.15.1       UGS         0       34    ng1
127.0.0.1          127.0.0.1          UH          0        0    lo0
192.168.15.1       192.168.15.27      UH          1        5    ng1
192.168.99.0/24    link#1             UC          0        0    re0
192.168.99.32      00:1c:f0:ab:ca:b7  UHLW        1       22    re0   1076
почему трафик идет на 100-ое правило а не на 300-ое не понимаю
Последний раз редактировалось savio 2008-12-04 16:51:25, всего редактировалось 1 раз.
Помни о смерти, все суета сует....

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-04 16:28:00

попробовал так

Код: Выделить всё

ipfw add 30 skipto 250 ip from 192.168.99.32 to any 
не работает

Код: Выделить всё

00010   70   5692 setfib 1 ip from 192.168.99.32 to any
00020    6    336 setfib 1 ip from any to 192.168.99.32
00030    8    480 skipto 250 ip from 192.168.99.32 to any
00100   46   4091 divert 8778 log ip from any to xxx.xxx.39.12 in via ng0
00200    0      0 divert 8778 log ip from 192.168.99.0/24 to any out via ng0
00300    0      0 divert 8668 log ip from any to 192.168.15.27 in via ng1
00400   30   2376 divert 8668 log ip from 192.168.99.0/24 to any out via ng1
65535 6346 824241 allow ip from any to any 
в конце-концов убил правила: 100 и 200

Код: Выделить всё

00010  16    960 setfib 1 ip from 192.168.99.32 to any
00020   0      0 setfib 1 ip from any to 192.168.99.32
00300   0      0 divert 8668 log ip from any to 192.168.15.27 in via ng1
00400   8    480 divert 8668 log ip from 192.168.99.0/24 to any out via ng1
65535 724 115904 allow ip from any to any 
но безрезультатно. почему же оно не работает? чего делаю не так???
Помни о смерти, все суета сует....

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-05 10:22:06

вопрос по прежнему актуален.....
Помни о смерти, все суета сует....

KES
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-25 21:48:43

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение KES » 2008-12-08 21:12:01

для входящего трафика не имеет смысла писать setfib

KES
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-25 21:48:43

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение KES » 2008-12-08 21:13:38

для того чтобы проверить таблицы маршрутизации:

Код: Выделить всё

#setfib 0 route add default <GW I S P 1>
#setfib 1 route add default <GW I S P 2>
ipfw add 1 setfib 0 all from 192.168.0.1 to any
ipfw add 2 setfib 1 all from 192.168.0.2 to any
ipfw add allow all from any to any

#setfib 0 traceroute ya.ru
#setfib 1 traceroute ya.ru

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение neyro » 2008-12-08 23:07:55

Используйте PF, и не изобретайте велосипед.
Вот офф мануал на эту тему http://www.openbsd.org/faq/pf/pools.html (основа- route-to, в Вашем случае без round-robin как там в статье(т.е. 2 pass in на внутренних интерфейсах на разные внешние, 2 таблицы - в одной клиент А, в другой клиент В, если не разберетесь-напишите ЛС-помогу)

п.с. возможно там можно "тупо" сделать 2 ната...к примеру:

Код: Выделить всё

nat on $ext_if1 from $client_A to any -> ($ext_if1)
nat on $ext_if2 from $client_B to any -> ($ext_if2)
но не уверен..нужно почитать мануал и потестить.

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение savio » 2008-12-09 11:00:37

KES писал(а):для того чтобы проверить таблицы маршрутизации:

Код: Выделить всё

#setfib 0 route add default <GW I S P 1>
#setfib 1 route add default <GW I S P 2>
ipfw add 1 setfib 0 all from 192.168.0.1 to any
ipfw add 2 setfib 1 all from 192.168.0.2 to any
ipfw add allow all from any to any

#setfib 0 traceroute ya.ru
#setfib 1 traceroute ya.ru
Вы мои посты читали? ясное дело что я так пробовал. и всеработает!
тоесть

Код: Выделить всё

#setfib 0 traceroute ya.ru
#setfib 1 traceroute ya.ru
работает, трасировка ходит по указаным гетвеям для каждой таблицы.
как теберь организовать NAT трафика для первой и второй таблицы?
Помни о смерти, все суета сует....

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

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение paradox » 2008-12-09 11:04:26

приложение запускаешь через фиб

вот токо интересно если форвард запихнуть через фиб
покатит...или нет

KES
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-25 21:48:43

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение KES » 2008-12-09 20:13:46

>как теберь организовать NAT трафика для первой и второй таблицы?
Элементарно, Ватсон:

Код: Выделить всё

ipfw add 100 skipto 1000 via rl0
ipfw add 100 skipto 2000 via rl1
ipfw add 100 skipto 3000 via rl2
ipfw add 100 deny log proto all
ipfw add 1000 nat 1 all from any to any
ipfw add 1000 allow all from any to any
ipfw add 2000 nat 2 all from any to any
ipfw add 2000 allow all from any to any
ipfw add 3000 setfib 0 all from 192.168.0.1 to any
ipfw add 3000 setfib 1 all from 192.168.0.2 to any
ipfw add 3000 allow all from any to any

ipfw nat 1 config if rl0 unreg_only reset
ipfw nat 2 config if rl1 unreg_only reset


Способ 2
ipfw add 1 setfib 0 tag 1 all from 192.168.0.1 to any
ipfw add 2 setfib 1 tag 2 all from 192.168.0.2 to any
ipfw add 4 nat 1 all from any to any tagged 1
ipfw add 4 nat 2 all from any to any tagged 2
ipfw add allow all from any to any

ipfw nat 1 config if rl0 unreg_only reset
ipfw nat 2 config if rl1 unreg_only reset
А вобще почитайте:
http://kes.net.ua/softdev/advanced_firewall.html
Последний раз редактировалось zingel 2008-12-09 20:26:30, всего редактировалось 1 раз.
Причина: а ещё нормально оформляй сообщение [code][/code]

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение dekloper » 2008-12-27 10:07:49

savio писал(а):Ядро пересобрал, указал роуты
плз, поделись с какими опциями собирал (касательно мультироутов)
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!


Аватара пользователя
mayor
сержант
Сообщения: 215
Зарегистрирован: 2008-09-06 10:11:49
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение mayor » 2009-11-26 21:28:32

а если на 192.168.0.1 поставить сквид?, схема будет работать? или она работает только для роутинга?
Вложения
Drawing1.jpg

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение neyro » 2009-11-26 22:21:42

Роутить пакеты от сквида все-равно нужно фаерволом.
п.с. данной темке уже почти год (:

Аватара пользователя
mayor
сержант
Сообщения: 215
Зарегистрирован: 2008-09-06 10:11:49
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение mayor » 2009-11-26 22:32:59

neyro писал(а):Роутить пакеты от сквида все-равно нужно фаерволом.
п.с. данной темке уже почти год (:
т. е. такое можна реализовать?, допустим 1 група адресов на 1 сквид, 2 група на сквид в jaile а дальше по своим каналам?
p.s. смысл чтобы второй шлюз не ставить (канала 2 шт)

Аватара пользователя
mayor
сержант
Сообщения: 215
Зарегистрирован: 2008-09-06 10:11:49
Контактная информация:

Re: Два канала и как заюзать multi routing table?

Непрочитанное сообщение mayor » 2010-01-25 18:31:51

еще актуально - железяку ставить или всетаки можно на 8.0 чтобы в jail был свой default gateway?