>Два и более подключения к инету по нормальному будут работать только под
>Linux. Сам с этим сталкивался :)
>
>Под FreeBSD будет работать только статическая маршрутизация. Причем при обрашении с не
>дефолтного интерфейса, ответные пакеты пойдут всеравно по дефолтному и поэтому клиент
>ничего не получит. Ну а изменять дефольтный маршрут под FreeBSD можно Гражданин, не болтайте ерундой.
Во фре можно правилами фаервола на нужных пакетах задавать route-to. А зебра, это вообще демон протоколов маршрутизации.
Вот пример для pf, откорректируйте на свой вкус:
eif0="rl0"
eif1="ed0"
int_net1="192.168.1.0/24"
int_if1="rl1"
ext_nat_addr1="a.a.a.a"
ext_nat_route1="a.a.a.b"
ext_if1="ed0"
int_net3="192.168.3.0/24"
int_if3="rl1"
ext_nat_addr3="b.b.b.b"
ext_nat_route3="b.b.b.c"
ext_if3="ed0"
int_net4="192.168.4.0/24"
int_if4="rl1"
ext_nat_addr4="c.c.c.c"
ext_nat_route4="c.c.c.d"
ext_if4="rl0"
int_if="rl1"
int_net="rl1:network"
scrub in all
nat on $ext_if1 from $int_net1 to any -> ($ext_if1)
nat on $ext_if3 from $int_net3 to any -> ($ext_if3)
nat on $ext_if4 from $int_net4 to any -> ($ext_if4)
pass in all label "$nr"
pass out all label "$nr"
block in on $eif0 all label "$nr"
block in on $eif1 all label "$nr"
pass out on $int_if from $int_if to $int_net
pass in quick on $int_if from $int_net to $int_if
pass on $int_if from $int_net to $int_net
pass in on $eif0 proto tcp from any to $eif0 port 22 flags S/SA keep state label "$nr"
pass in on $eif0 proto icmp from any to $eif0 keep state label "$nr"
pass in on $eif1 proto tcp from any to $eif1 port 22 flags S/SA keep state label "$nr"
pass in on $eif1 proto icmp from any to $eif1 keep state label "$nr"
pass out on $eif0 proto { tcp } all flags S/SA keep state label "$nr"
pass out on $eif0 proto { udp, icmp } all keep state label "$nr"
pass out on $eif1 proto { tcp } all flags S/SA keep state label "$nr"
pass out on $eif1 proto { udp, icmp } all keep state label "$nr"
pass in on $int_if1 route-to ($ext_if1 $ext_nat_route1) from $int_net1 to any keep state label "$nr"
pass in on $int_if3 route-to ($ext_if3 $ext_nat_route3) from $int_net3 to any keep state label "$nr"
pass in on $int_if4 route-to ($ext_if4 $ext_nat_route4) from $int_net4 to any keep state label "$nr"
pass out on $ext_if1 route-to ($ext_if1 $ext_nat_route1) from $ext_if1 to any keep state label "$nr"
pass out on $ext_if3 route-to ($ext_if3 $ext_nat_route3) from $ext_if3 to any keep state label "$nr"
pass out on $ext_if4 route-to ($ext_if4 $ext_nat_route4) from $ext_if4 to any keep state label "$nr"
для ipfw и ipfilter есть подобные вещи