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.
ЗЫ: Повязать двух провов в бжп не предлагать :)
Заранее благодарен.