Что есть:
- Debian Lenny.
- Веб-сервер, почтовый сервер(exim4) и домашняя файлопомойка.
- Два провайдера, два интерфейса.
- eth1 - анлимный канал. Режется все, что только можно, в том числе smtp, но у провайдера relay-сервера не обнаружено.
- eth2 - 100Mbit лимитированный канал. Открыто все.
- default route разруливаю через iproute2 вот таким вот скриптом: http://dumpz.org/3496/
Соответственно, весь трафик, который инициирует сервер, уходит через eth1, а ответы на трафик, который приходит на eth2 через него же и уходят.Проблема:
Нужно, чтобы почта уходила через eth2. Пробовал заставить exim слушать только eth2, но безрезультатно. Только слушает, но не отправляет. Пробовал заворачивать трафик (скрипт: http://dumpz.org/3498/), который уходит по eth1 с 25 портом заворачивать на eth2 - безрезультатно.
>Проблема:
> Нужно, чтобы почта уходила через eth2. Пробовал заставить
>exim слушать только eth2, но безрезультатно. Только слушает, но не отправляет.
>Пробовал заворачивать трафик (скрипт: http://dumpz.org/3498/), который уходит по eth1 с 25
>портом заворачивать на eth2 - безрезультатно.Так не получится.
Вообще, exim тут не причём совсем, проблема в маршрутизации.попробуй так:
в первый скрипт добавить
ip rule add fwmark 0x25 table internetво второй вместо твоего это
iptables -t mangle -A OUTPUT -p tcp --dport ${MAIL_PORT}
-j MARK --set-mark 0x25
iptables -t nat -A POSTROUTING -p tcp --dport ${MAIL_PORT}
-o eth2 -j SNAT --to-source ${PAY_IP}
>[оверквотинг удален]
>
>попробуй так:
>в первый скрипт добавить
>ip rule add fwmark 0x25 table internet
>
>во второй вместо твоего это
>iptables -t mangle -A OUTPUT -p tcp --dport ${MAIL_PORT}
> -j MARK --set-mark 0x25
>iptables -t nat -A POSTROUTING -p tcp --dport ${MAIL_PORT}
> -o eth2 -j SNAT --to-source ${PAY_IP}я, например, вот так указываю exim'у с какого ip почту отсылать:
begin transports
remote_smtp:
driver = smtp
interface = 80.хх.хх.4T_mailhub:
driver = smtp
interface = 10.10.10.7
>я, например, вот так указываю exim'у с какого ip почту отсылать:
>
>begin transports
>remote_smtp:
> driver = smtp
> interface = 80.хх.хх.4
>
>T_mailhub:
> driver = smtp
> interface = 10.10.10.7Вот так, всё оказывается гораздо проще :)
Как говориться, "Читайте доки - они рулез" :)