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

Исходное сообщение
"Подскажите решение (route + ipfw fwd)"

Отправлено lv10 , 20-Дек-09 16:14 
FreeBSD 7.2-RELEASE

есть роутер с четырмя сетевушками:

em0: 192.168.1.1/24 (локальная сеть)
em1: 192.168.2.2/24 (локальная сеть)
em2: 1.1.1.1/24 (интернет)
em3: 10.10.10.10/24 (локальный пиринг)

/etc/rc.conf
defaultrouter="1.1.1.254" (т.е. для всех клиентов на интерфейсах em0 и em1 весь траф идет через em2)

по bgp с интерфейса em3 принимаются несколько префиксов (отличных от локальных) локального пиринга. Все хорошо, все работает.

Появился еще один канал в интернет, виден через интерфейс em2 с адресом шлюза 1.1.1.253. И стоит задача пустить клиентов из 192.168.2.0/24 на другой шлюз.

делаю так:
ipfw add 100 fwd 1.1.1.253 all from 192.168.2.0/24 to any

тут тоже все хорошо, часть клиентов уходит по основному (системному гейтвею), а вторая часть клиентов через альтернативный шлюз 1.1.1.253. Но при такой расстановке сил трассировка с клиентов (192.168.2.0/24, для тех кого fwd) к адресам локального пиринга (те, что сваливаются по bgp) выглядит примерно так:

1. 192.168.2.2
2. 1.1.1.253
3. узлы локального пиринга.

Жить не мешает, но не люблю когда неправильно :)
Для клиентов же из 192.168.1.0/24 трассировка верная.

Как заставить пакеты сначала использовать локальную таблицу маршрутизации, а уже потом форвардить с помощью ipfw.

ЗЫ: Повязать двух провов в бжп не предлагать :)

Заранее благодарен.


Содержание

Сообщения в этом обсуждении
"Подскажите решение (route + ipfw fwd)"
Отправлено Vladin_ , 20-Дек-09 17:03 
Или в правило с форвардом добавить
out xmit em2

или перед ним вставить такое
add allow 192.168.2.0/24 to any out xmit em3


"Подскажите решение (route + ipfw fwd)"
Отправлено lv10 , 20-Дек-09 19:18 
>Или в правило с форвардом добавить
>out xmit em2
>
>или перед ним вставить такое
>add allow 192.168.2.0/24 to any out xmit em3

спасибо заработало по первому варианту.

но задача усложнилась тем, что прокинули еще один канал в интернет, со стороны интерфейса em3 (локальный пиринг) Т.е. и шлюз интернета и пиринг находятся в пределах одного интерфейса em3

и конструкция
ipfw add 100 fwd 10.10.10.5 all from 192.168.2.0/24 to any out xmit em3

не срабатывает


"Подскажите решение (route + ipfw fwd)"
Отправлено Vladin , 20-Дек-09 20:19 
Это должно срабатывать когда пакет уходит в пиринговую сеть, т.к. указано ем3.
Внутри ядра пакет сначала будет роутиться, т.е. для него определяется
исходящий интерфейс, а потом пакет прогоняется по правилам фильтра.

Чтобы перенаправить в мир через ем3 правило будет такое же,
кроме некстхопа

ipfw add 100 fwd 10.10.10.5 all from 192.168.2.0/24 to any out xmit em2

подозреваю что вопрос в другом, как разрулить две сети на три канала
можно бОльшую сеть разбить на две подсети с масками /25


"Подскажите решение (route + ipfw fwd)"
Отправлено mr_gfd , 21-Дек-09 10:52 
>FreeBSD 7.2-RELEASE

setfib