Страница 1 из 1

работа postfix через двух провайдеров

Добавлено: 2015-01-23 6:33:32
bblackk123
Добрый день!
Задача следующая:
Организовать работу postfix через двух не зависимых провайдеров с разными шлюзами.
Данные ОС FreeBsd 10
ip eth0 192.168.50.4 gateway 192.168.50.1
ip eth1 192.168.1.5 gateway 192.168.1.1
Что сделал для работы postfix:
Создал несколько экземпляров postfix используя postmulti, в main.cf каждого экземпляра прописал свой mydomain, inet_interfaces postfix = 192.168.50.4, inet_interfaces postfix-2 = 192.168.1.5
defaultrouter в rc.conf = 192.168.50.1
Письма через интерфейс eth0 уходят и приходят без проблем
Письма через интерфейс eth1 не уходят и не приходят, так iface eth1 просто не знает как их маршрутизировать. Если defaultrouter изменить на 192.168.1.1 все происходит с точностью наоборот.
Что сделал:
использовал setfib
setfib 1 route add default 192.168.1.1
setfib 0 netstat -r
Destination Gateway Flags Refs Use Netif Expire
default 192.168.50.1 UGS 0 1238 eth0
setfib 1 netstat -r
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGS 0 109 eth1
Проверяю icmp с eth0 и eth1
setfib -F 0 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=59 time=29.884 ms

setfib -F 1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=59 time=30.250 ms

Настраиваю ipfw
FwCMD="/sbin/ipfw"
$FwCMD -f flush
$FwCMD add check-state

$FwCMD add allow ip from any to any via lo0

$FwCMD add setfib 0 ip from any to any via eth0
$FwCMD add setfib 0 ip from 192.168.50.4 to any
$FwCMD add setfib 0 ip from any to 192.168.50.4
$FwCMD add setfib 1 ip from any to any via eth1
$FwCMD add setfib 1 ip from 192.168.1.5 to any
$FwCMD add setfib 1 ip from any to 192.168.1.5

$FwCMD add allow ip from any to any

в итоге icmp на eth1 приходит и уходит. А вот соединения на ip 192.168.1.5 порт 25 нет. Понимаю, что нужно написать правило для ipfw чтобы исходящие пакеты с на порт 25 уходили через eth1 c ip 192.168.1.5 через 192.168.1.1, но не достаток опыта и знаний дает о себе знать в итоге правило написать не получается.
Пробую делать так :

$FwCMD add fwd 192.168.1.1 src-ip 192.168.1.5 out via xn1

Но это не срабатывает

tcpdump -i eth1 port 25
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
08:27:59.551840 IP smtp1.adminkit.net.60328 > mail.domain.ru..smtp: Flags [S], seq 1958294590, win 8192, options [mss 1380,nop,wscale 8,nop,nop,sackOK], length 0
08:28:02.554594 IP smtp1.adminkit.net.60328 > mail.domain.ru..smtp: Flags [S], seq 1958294590, win 8192, options [mss 1380,nop,wscale 8,nop,nop,sackOK], length 0

работа postfix через двух провайдеров

Добавлено: 2015-01-23 8:12:19
Alex Keda
Давно ли во фре появился модуль ядра if_eth?
Стругающий девайсы eth0/eth1/.....

работа postfix через двух провайдеров

Добавлено: 2015-01-23 8:42:55
Neus
алиасы юзает

работа postfix через двух провайдеров

Добавлено: 2015-01-23 10:13:51
bblackk123
Alex Keda писал(а):Давно ли во фре появился модуль ядра if_eth?
Стругающий девайсы eth0/eth1/.....
eth для примера, на самом деле интерфейс xn0 xn1
ifconfig_xn1="inet 192.168.1.4 netmask 255.255.255.240"
ifconfig_xn1_alias0="inet 192.168.1.5 netmask 255.255.255.255"
#ifconfig_xn1_alias1="inet 192.168.1.6 netmask 255.255.255.255"
ifconfig_xn0="inet 192.168.50.4 netmask 255.255.255.240"

работа postfix через двух провайдеров

Добавлено: 2015-01-23 12:27:10
skeletor
Вам нужен PBR на IPFW. Здесь подробно расписано что и как http://nuclight.livejournal.com/124348.html

работа postfix через двух провайдеров

Добавлено: 2015-01-27 9:42:53
bblackk123
Решил вопрос, всему виной номер релиза FreeBsd 10 -> Спасибо добрым людям на хабре за эту статью http://habrahabr.ru/post/212813/