Дано:
1. mail# uname -v
FreeBSD 7.1-RELEASE #0: Thu Jan 1 14:37:25 UTC 20092. mail# ifconfig
ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:02:44:18:89:49
inet 192.168.5.144 netmask 0xffffff00 broadcast 192.168.5.255
media: Ethernet autoselect (10baseT/UTP)
ed1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:80:48:c9:86:63
inet 192.168.6.144 netmask 0xffffff00 broadcast 192.168.6.255
media: Ethernet autoselect (10baseT/UTP)
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9<RXCSUM,VLAN_MTU>
ether 00:e0:81:21:69:ac
inet 192.168.0.144 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active3. mail# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.5.1 UGS 0 93406 ed04. В Инет 2 канала через ADSL роутеры. На обоих ADSL роутерах пробрасывается порт 25 по схеме:
ADSL1 192.168.5.1:25 -> 192.168.5.144:25 -- он же default gateway
ADSL2 192.168.6.1:25 -> 192.168.6.144:25
xl0 - 192.168.0.144 -> внутренняя сеть
NAT - только ADSL роутерах.
MX записи:
1. Приоритет 5 указывает на внешний IP ADSL1.
2. Приоритет 10 указывает на внешний IP ADSL2.Почту принимает sendmail. Т. к. default gateway - ADSL1 192.168.5.1 - то почта идет только через этот канал. Задача - принимать почту на обоих каналах.
natd и ipfw пока не задействованы.Решение вижу в использовании констукции "ipfw add fwd" и возможно natd. Но не знаю главного - как различать пакеты, пришедшие на 25 порт с разных интерфейсов.
Просмотрел много материала, но везде описывается обратная задача - балансировка между каналами ИСХОДЯЩИМИ из локальной сети пакетами.
>[оверквотинг удален]
>2. Приоритет 10 указывает на внешний IP ADSL2.
>
>Почту принимает sendmail. Т. к. default gateway - ADSL1 192.168.5.1 - то
>почта идет только через этот канал. Задача - принимать почту
>на обоих каналах.
>natd и ipfw пока не задействованы.
>
>Решение вижу в использовании констукции "ipfw add fwd" и возможно natd.
>Но не знаю главного - как различать пакеты, пришедшие на 25
>порт с разных интерфейсов.Они отличаются айпишником интерфейса, на который устанавливалось соединение, соответственно с этого же IP-адреса и пойдут ответные пакеты.
>
>Просмотрел много материала, но везде описывается обратная задача - балансировка между каналами
>ИСХОДЯЩИМИ из локальной сети пакетами.
а sendmail'у вы велели слушать 25 порт на обоих интерфейсах ?
>Решение вижу в использовании констукции "ipfw add fwd" и возможно natd.
>Но не знаю главного - как различать пакеты, пришедшие на 25
>порт с разных интерфейсов.
>
>Просмотрел много материала, но везде описывается обратная задача - балансировка между каналами
>ИСХОДЯЩИМИ из локальной сети пакетами.если у тебя не включен роутинг то все должно нормально приниматься и так нормально - главное чтобы почтаврь слушал оба интерфейса
если включен - ipfw fwd осуществляй форвардинг исходящих пакетов по соурс айпи -
те пакет уходящий с соурс айпи НЕ ДЕФОУЛ интерфейса форварди на шлюз этого интерфейса
>если у тебя не включен роутинг то все должно нормально приниматься и
>так нормально - главное чтобы почтаврь слушал оба интерфейса
>
>если включен - ipfw fwd осуществляй форвардинг исходящих пакетов по соурс айпи
>-
>те пакет уходящий с соурс айпи НЕ ДЕФОУЛ интерфейса форварди на шлюз
>этого интерфейсаТеперь я понял, где тормознул. Решение об отправке пакета через шлюз по умолчанию принимается на основании ip получателя. И в любом случае там есть ip отправителя , который и является в моем случае 192.168.6.144,и не МЕНЯЕТСЯ, даже если пакет уйдет через другой итерфейс.
Роутинг у меня включен, но в данный момент хост является почтовым сервером и я его могу отрубить. Сегодня попробую.
>[оверквотинг удален]
>>
>>если включен - ipfw fwd осуществляй форвардинг исходящих пакетов по соурс айпи
>>-
>>те пакет уходящий с соурс айпи НЕ ДЕФОУЛ интерфейса форварди на шлюз
>>этого интерфейса
>
>Теперь я понял, где тормознул. Решение об отправке пакета через шлюз по
>умолчанию принимается на основании ip получателя. И в любом случае там
>есть ip отправителя , который и является в моем случае 192.168.6.144,и
>не МЕНЯЕТСЯ, даже если пакет уйдет через другой итерфейс.как правило (и это парвильно) провайдер фильтреут исходящие пакеты клиента по соурс адресам этого клиента - пакет то у тебя через дефоул уйдет, но будет дропнут на шлюзе провайдера, так айпи не его
поэтому либо роутинг отрубать либо форвадинг настраивать (аля PBR)>Роутинг у меня включен, но в данный момент хост является почтовым сервером
>и я его могу отрубить. Сегодня попробую.
>как правило (и это парвильно) провайдер фильтреут исходящие пакеты клиента по соурс
>адресам этого клиента - пакет то у тебя через дефоул уйдет,
>но будет дропнут на шлюзе провайдера, так айпи не его
>поэтому либо роутинг отрубать либо форвадинг настраивать (аля PBR)
>Далее на ADSL роутере включен НАТ, так что пакет пройдет, но к отправителю он вернеться с другого ip (через другой канал) и TCP соединение остается в состоянии SYN_SENT.
Отключение роутинга не помогло. Ниже подтветждение моих слов. Я запустил telnet canal1.com 25 и telnet canal2.com 25 одновременно c адреса 92.113.146.56. Вот результат:$ netstat -an
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 192.168.6.144.25 92.113.146.56.4045 SYN_RCVD
tcp4 0 0 127.0.0.1.8025 89.45.50.182.2832 SYN_RCVD
tcp4 0 0 192.168.5.144.25 92.113.146.56.4048 ESTABLISHED
tcp4 0 0 192.168.0.144.110 192.168.0.131.4689 TIME_WAIT
tcp4 0 0 192.168.0.144.22 192.168.0.131.4686 ESTABLISHED
tcp4 0 15 127.0.0.1.8025 58.214.141.21.2826 ESTABLISHED
tcp4 0 0 *.110 *.* LISTEN
tcp4 0 0 *.587 *.* LISTEN
tcp4 0 0 *.465 *.* LISTEN
tcp6 0 0 *.25 *.* LISTEN
tcp4 0 0 *.25 *.* LISTEN