Люди, помогите! Совсем в тупик зашел.
Ситуация такая:
сервер freebsd, три интерфейса, две сетки
ep0 - 192.168.10.1 (lan)
ep1 - 80.233.112.43
ep2 - 80.233.112.73
gateway один - 80.233.112.1 (isp)Задача состоит в том, чтобы все компы из локалки выходили в нет через ep1, а с сам сервер подключался через ep2. Здесь нужно использовать policy routing, но... поскольку гейтвей как у ep1 так и у ep2 один и тот же, одной routing table не обойтись. В Линуксе для этого есть iproute2, там просто создаешь сколько надо таблиц и посылаешь в них пакеты основываясь на source ip, uid, pid идт. Для бзды ничего такого не нашел. Как быть?
ни че не понял)))
если дефолтгетевей один
значит все должно работать
а в чем проблема???
ты хочешь что бы айпишник сервака был именно ...73??
ну это просто разруливается правилами ipfw
>ни че не понял)))
>если дефолтгетевей один
>значит все должно работать
>а в чем проблема???
>ты хочешь что бы айпишник сервака был именно ...73??
>ну это просто разруливается правилами ipfwПроблема в том, что провайдер, "#¤%¤, ввел квоту по ип-адресам. И надо чтобы у трафика из локалки был source ip 80.233.112.43, a у трафика с самого сервера - 80.233.112.73.
пример:
bsd# route add default 80.233.112.1
bsd# netstat -rInternet:
Destination Gateway Flags Refs Use Netif Expire
default default-gw.net80.233. UGS 0 12653 ep1
localhost localhost UH 0 95 lo0
.................теперь трафик с сервака идет идет через ep1 и имеет source ip ...73.
Но как теперь пустить трафик из локалки через ep2, ip ...43?
ведь шлюз уже прописан на ep1?Я, наверное, не до конца понял, как ipfw работает...
А зачем 2 интерфейса? По-моему, все должно работать, если сделать так:
ifconfig ep1 inet 80.233.112.73 netmask 255.255.255.0
ifconfig ep1 alias 80.233.112.43 netmask 255.255.255.255И natd повесить на 80.233.112.43, соотв divert правила в ipfw.
Ну и все пакеты с сервера будут уходить с .73, а пакеты из локалки будут натиться и уходить от .43. И приходить будут на .43, соотв. натиться обратно.С 2 интерфейсами не знаю что будет, мне кажется что пакеты все равно будут уходить с одного интерфейса. Можешь еще пошаманить с ipfw fwd.
>А зачем 2 интерфейса? По-моему, все должно работать, если сделать так:
>ifconfig ep1 inet 80.233.112.73 netmask 255.255.255.0
>ifconfig ep1 alias 80.233.112.43 netmask 255.255.255.255
>
>И natd повесить на 80.233.112.43, соотв divert правила в ipfw.
>Ну и все пакеты с сервера будут уходить с .73, а пакеты
>из локалки будут натиться и уходить от .43. И приходить будут
>на .43, соотв. натиться обратно.
>
>С 2 интерфейсами не знаю что будет, мне кажется что пакеты все
>равно будут уходить с одного интерфейса. Можешь еще пошаманить с ipfw
>fwd.Так и сделал бы, но провайдер раздает ip по dhcp, и если dhcp не пользоваться, то мой ip через какое-то время освободится и его могут отдать кому-нибудь другому. А для dhcp два mac-адреса нужно = два интерфейса :(
>С 2 интерфейсами не знаю что будет, мне кажется что пакеты все
>равно будут уходить с одного интерфейса.
Точно, так и получилось :(Вот если бы можно было сделать для каждого интерфейса свою routing table... можно как-нибудь?
Все, разобрался. Линукс меня попутал. routing table даже трогать не надо было.дефолт гейтвей на 80.233.112.73
[root@asd:~]# natd -a 80.233.112.43 -p 8672
[root@asd:~]# ipfw add 20 divert 8672 ip from 192.168.10.0/24 to any
[root@asd:~]# ipfw add 50 fwd 80.233.112.1 ip from 80.233.112.43 to any
[root@asd:~]# ipfw add 60 divert 8672 ip from any to 80.233.112.43