Похожая задача: FreeBSD 4.10, ipfw+ipnat, squid (tranparent), 2 канала.
Необходимо одним squid'ом часть людей из локалки пускать по одному каналу, а часть по другому.В squid сделал следующее:
acl unlim src 10.20.2.9
tcp_outgoing_address IP_второго_канала unlim
в ipfw прописал форвард на второй канал:
ipfw add fwd шлюз_второго_канала from IP_второго_канала to not подсеть out
в ipnat так же добавил оба интерфейса на маскарадинг.
А проблема в следующем - пакеты уходят с ip второго канала, как надо, на второй же канал и возвращаются, но уходят они через default gateway!!!
Под правила ipnat'а они не попадают, динамическое правило, разрещающее исходящие пакеты со второго интерфейса не отрабатывается, если уронить канал на который указан default gateway - то трафик вообще не идет.
Как заставить пакеты уходить со второго канала?
Туплю по страшному.. не могу понять почему они иду через default gateway? И что тогда форвардится, раз счетчики на правиле срабатывают?