URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 58897
[ Назад ]

Исходное сообщение
"Проблемы с роутингом в FreeBSD 5.4"

Отправлено Neon777 , 04-Авг-05 22:53 
Люди, помогите! Совсем в тупик зашел.
Ситуация такая:
сервер 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 идт. Для бзды ничего такого не нашел. Как быть?


Содержание

Сообщения в этом обсуждении
"Проблемы с роутингом в FreeBSD 5.4"
Отправлено Elbrus , 04-Авг-05 23:02 
ни че не понял)))
если дефолтгетевей один
значит все должно работать
а в чем проблема???
ты хочешь что бы айпишник сервака был именно ...73??
ну это просто разруливается правилами ipfw


"Проблемы с роутингом в FreeBSD 5.4"
Отправлено Neon777 , 04-Авг-05 23:27 
>ни че не понял)))
>если дефолтгетевей один
>значит все должно работать
>а в чем проблема???
>ты хочешь что бы айпишник сервака был именно ...73??
>ну это просто разруливается правилами ipfw

Проблема в том, что провайдер, "#¤%&#¤, ввел квоту по ип-адресам. И надо чтобы у трафика из локалки был source ip 80.233.112.43, a у трафика с самого сервера - 80.233.112.73.
пример:
bsd# route add default 80.233.112.1
bsd# netstat -r

Internet:
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 работает...


"Проблемы с роутингом в FreeBSD 5.4"
Отправлено AMDmi3 , 05-Авг-05 02:42 
А зачем 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.


"Проблемы с роутингом в FreeBSD 5.4"
Отправлено Neon777 , 05-Авг-05 11:02 
>А зачем 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-адреса нужно = два интерфейса :(


"Проблемы с роутингом в FreeBSD 5.4"
Отправлено Neon777 , 05-Авг-05 13:31 

>С 2 интерфейсами не знаю что будет, мне кажется что пакеты все
>равно будут уходить с одного интерфейса.
Точно, так и получилось :(

Вот если бы можно было сделать для каждого интерфейса свою routing table... можно как-нибудь?


"Проблемы с роутингом в FreeBSD 5.4"
Отправлено Neon777 , 05-Авг-05 00:49 
Все, разобрался. Линукс меня попутал. 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