Jump to content
Калькуляторы

FreeBSD и динамическая маршрутизация. маршрутизация в зависимости от src address

у меня есть вопрос по динамической маршрутизации. есть например 1,2...n серверов авторизации (mpd5\radius\pppoe). есть некоторое количество севрверов занимающиееся шейпингом (1,2...m). m<n.

реализовано что на серверах аворизации как default gateway указан определенный шейпер. сейчас каждый из серверов авторизации имеет свою подсеть которая роутитися с шейперов статически. и получается что не выйти с определеным адресом с другого сервера.

пока пришла в голову мысль както по ospf с сервера авторизации анонсить /32 подсеть подключившегося адреса так чтобы шейперы знали куда слать ответы.

но как реализовать чтобы например адрес какойнить /24 подсети независимо от того к кому серверу авторизации подключается чтобы ходил через один и тот же шейпер

Гугление наводит на то что FreeBSD умеет использовать несколько таблиц маршрутизации. Можно ли ее заставить в зависимости от того какой ip адрес у подключившегося клиента пакеты слать на определеный гейт.

Ну и соответственно этому же гейту анонсировать что клиент подключился с этого сервера и все ответы надо слать на него.

 

или слишком бредовая идея?

Share this post


Link to post
Share on other sites

setfib + ipfw вполне с этим справятся. У меня работает setfib нормально, правда не совсем для этого.

 

setfib 1 route add default <шейпер № 1>

setfib 2 route add default <шейпер № 2>

 

ipfw add 10 setfib 1 ip from 192.168.1.0/24 to any

ipfw add 20 setfib 2 ip from 192.168.2.0/24 to any

 

В ядро еще надо добавить опцию

 

options ROUTETABLES=n (по кол-ву шейперов), максимум 16 вроде.

Edited by networks

Share this post


Link to post
Share on other sites

Ответ только на:

Гугление наводит на то что FreeBSD умеет использовать несколько таблиц маршрутизации. Можно ли ее заставить в зависимости от того какой ip адрес у подключившегося клиента пакеты слать на определеный гейт.

setfib 1 route add default a.a.a.a

setfib 2 route add default b.b.b.b

setfib 3 route add default c.c.c.c

 

ipfw add 10 setfib 1 any from x.x.x.x/24 to any

ipfw add 20 setfib 2 any from y.y.y.y/24 to any

ipfw add 30 setfib 3 any from z.z.z.z/24 to any

 

А про остальное - непонятна цель :)

 

Share this post


Link to post
Share on other sites

Балансировать нагрузку по железкам.

К тому же если я например с одного сервера авторизации пришлю роут на одну /32 подсеть а с другого другую /32 подсеть а при этом они входят в одну и туже /24 подсеть которую обслуживает шейпер то шейперу надо знать куда слать ответные пакеты из внесети.

Хотя в принципе можно так сильно не усложнять все. Но это гарантирует большую маштабируемость и более простые переключения при падении какого либо из звеньев.

 

В общем на днях поиграюсь вплотную, самое сложно я думаю будет освоить OSFP\RIP\iBGP для внутренего обмена и динамического построения таблиц маршрутизации.

 

Edited by goletsa

Share this post


Link to post
Share on other sites
Ответ только на:
Гугление наводит на то что FreeBSD умеет использовать несколько таблиц маршрутизации. Можно ли ее заставить в зависимости от того какой ip адрес у подключившегося клиента пакеты слать на определеный гейт.

setfib 1 route add default a.a.a.a

setfib 2 route add default b.b.b.b

setfib 3 route add default c.c.c.c

 

ipfw add 10 setfib 1 any from x.x.x.x/24 to any

ipfw add 20 setfib 2 any from y.y.y.y/24 to any

ipfw add 30 setfib 3 any from z.z.z.z/24 to any

 

А про остальное - непонятна цель :)

Возникла проблема. Если два клиента находятся в разных таблицах то между ними не получается наладить прямую связь. Т.е. трейс сразу идет наружу вместо того чтобы обработаться внутри сервера.

Можно ли както починить такую логику?

 

Share this post


Link to post
Share on other sites

 

Включить мозг ?

Share this post


Link to post
Share on other sites

$ traceroute -n 10.5.244.219
traceroute to 10.5.244.219 (10.5.244.219), 30 hops max, 40 byte packets
1  192.168.2.1  0.693 ms  0.903 ms  0.982 ms
2  10.5.240.2  3.225 ms  4.213 ms  4.206 ms
3  * * *
4  * * *

И куда дальше?

10.5.240.2 это тот сервер куда сходятся несколько подсетей в виде pppoe тунелей.

 

Edited by goletsa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this