Страница 1 из 1

2 канала и статическая маршрутизация в FreeBSD 8.0

Добавлено: 2010-02-25 1:50:38
DemonDm
Имею 2 канала в мир: скоростной и не очень.
Хотелось бы с помошью статической маршрутизации заставить работать оба канала (не распределение нагрузки).
Например прописать 2 default gateway и что чтоб в зависимости от исходящего интерефейса пакет уходил в нужный гейт (для каждого интерфейса свой gateway).
как вариант это нужно для Squid, чтоб определенного пользователя выпускать через соответствующий его привилегированности канал.
Кусок squid.conf:

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

...
tcp_outgoing_address 111.111.111.1 vipnet
udp_outgoing_address 111.111.111.1 vipnet

tcp_outgoing_address 222.222.222.2 localnet
udp_outgoing_address 222.222.222.2 localnet
...
Возможна ли реализация такой задачи на FreeBsd 8.0?

P.S. Сейчас это реализовано с помощью pf и route-to, но т.к. есть очень большой список маршрутов и в каждой из сетей несколько шлюзов, не хотелось бы это делать с помощью фаервола.
как по мне для чего-то ж придумали route add?

Re: 2 канала и статическая маршрутизация в FreeBSD 8.0

Добавлено: 2010-02-25 1:59:40
DemonDm
если в ядре есть такое

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

options     RADIX_MPATH
удачно можно добавить 2 default gateway, но если бы можно было отключить балансировку нагрузки, а то он сам решает какой канал использовать.

может можно как-то использовать таблицы маршрутизации для моей задачи(options ROUTETABLES=2 в ядре), но я пока что не представляю как.

Буду рад любому совету или идее.
Заранее Спасибо.

Re: 2 канала и статическая маршрутизация в FreeBSD 8.0

Добавлено: 2010-02-25 10:18:22
terminus

Re: 2 канала и статическая маршрутизация в FreeBSD 8.0

Добавлено: 2010-02-25 11:31:30
DemonDm
спасибо огромное много чего интересного подчерпнул из статьи, думаю паре примеров найду применение
*даже не знаю как я на нее раньше не наталкнулся ...

но хотелось бы только на статической маршрутизации решить это решить
реально ли для RADIX_MPATH отключить балансировку?

Re: 2 канала и статическая маршрутизация в FreeBSD 8.0

Добавлено: 2010-02-25 11:36:46
terminus
не работал с RADIX_MPATH - не могу утверждать.
По-идее нет, так как он как раз и придуман для обеспечения балансировки.

Re: 2 канала и статическая маршрутизация в FreeBSD 8.0

Добавлено: 2010-02-26 5:32:17
DemonDm
Если кому интересно, было найдено промежуточное решение для работы сразу двух каналов с сервера (без множественных таблиц маршрутизации)
Имеем двух провайдеров. интерфейсы vr0 и vr1, адреса 1.1.1.1 и 2.2.2.2, шлюзы 1.1.1.254 и 2.2.2.254.
rc.conf

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

defaultrouter="1.1.1.254"
добавляем в pf.conf 2 строчки route-to

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

...
pass out route-to (1.1.1.1 1.1.1.254) inet from vr0 to any keep state
pass out route-to (2.2.2.2 2.2.2.254) inet from vr1 to any keep state
...
При такой конфигурации на сервере запущено 2 торрент клиента, каждый привязан к одному из IP (1.1.1.1 или 2.2.2.2). Получается каждый идет только через свой канал.
Конечно можно было бы это сделать с помощью setfib и 2х таблиц маршрутов, но вот со сквидом бы не работали сразу на оба канала.

при таком squid.conf тоже все прекрасно работает

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

...
tcp_outgoing_address 1.1.1.1 vipnet
udp_outgoing_address 1.1.1.1 vipnet

tcp_outgoing_address 2.2.2.2 localnet
udp_outgoing_address 2.2.2.2 localnet
...
Если есть предложения по улудшению моей реализации или другой способ, готов выслушать