Никогда не писал, но посещаю сей ресурс постоянно, замечательный кстати!
Так вот, проблем с FreeBSD никогда не испытывал, но тут просто голову поломал, уже неделю тра.. тренируюсь.
Описание системы:
Роутер на FreeBSD 6.2 р12 - 4 сетевухи
За двумя - две локалки 192.168.15.0/24 и 192.168.16.0/24
Две карты смотрят в двух провайдеров, один как основной один как резервный - переходим на него когда первый не работает (или деньги кончились) - пока можно о нем не говорить (на нем реальный ИП и алиас в городскую сетку провайдера),
На одной из внешних карт (та где основной) есть vlan; На карте и на влане прописаны реальные АйПи выданные провайдером (собственно подсети 62.64.X.X/32), у каждой свой шлюз дефолтный. Стоит SQUID в прозрачном режиме, то есть все обращения на 80й порт заворачиваются на 3128 на 127.0.0.1 на машине где стоит Прокси (та же где роутер), с одним каналом все работает, и если ручками дефолт переписываешь тоже, но только по дефолтному пути.
Изчитал гору сайтов, гайдов итп, понимаю что все должно работать на PF с помощью route-to/reply-to но не работает, все летит по дефолтному пути.
Не мог бы кто нить набросать конфижок примерный - я пойму в чем грабли. И еще вопрос натить правильно как каждую подсеть?
Так: (Когда так - все летит через дефолт)
Код: Выделить всё
nat on $ext_if_eht inet from !(self) -> ($ext_if_eth:0)
nat on $ext_if_vlan inet from !(self) -> ($ext_if_vlan:0)
Код: Выделить всё
nat on $ext_if_eht inet from $local_net_1 -> ($ext_if_eth:0)
nat on $ext_if_vlan inet from $local_net_2 -> ($ext_if_vlan:0)
Далее кусок и фаера:
Код: Выделить всё
pass out route-to ( $ext_if_eth $gw_eth ) inet from $ext_if_eth:0 keep state
pass out route-to ( $ext_if_vlan $gw_vlan ) inet from $ext_if_vlan:0 keep state
pass out inet from { $ext_if_eth $ext_if_vlan } to (self:network) keep state
Код: Выделить всё
pass in on $ext_if_eth reply-to ($ext_if_eth $gw_eth) inet proto icmp to ($ext_if_eth)
pass in on $ext_if_eth proto icmp from ($ext_if_eth:network) to ($ext_if_eth)
pass in on $ext_if_vlan reply-to ($ext_if_vlan $gw_vlan) inet proto icmp to ($ext_if_vlan)
pass in on $ext_if_vlan proto icmp from ($ext_if_vlan:network) to ($ext_if_vlan)