>У меня примерно такая же проблема. Linux-router (он же web-server, smtp-server, ftp-server) >с сетевухой в локалную сеть (eth0), и два канала ppp0(дорогой со >стат. айпи) и ppp1(дешевый с динам. айпи). >Дефолтовый путь - через дешевый канал 1. И надо сделать так, чтоб >трафик, генерируемый smtp-, ftp-, web-серверами (которые находятся на самом роутере), шел >через дорогой канал. >Например, чтоб попытаться завернуть трафик (рассылка обновлений) от моего сендмэйла на дорогой >канал: >iptables -t mangle -I PREROUTING -p tcp -i ppp1 --dport 25 -j >MARK --set-mark 1 >ip rule add fwmark 1 table expensive >ip route add default via xxx.xxx.xxx.xxx dev ppp0 table expensive > >Но проблема в том, что пакет помечаеться уже после того, как пришел >на интерфейс по умолчанию, и переправить его на другой - невозможно >(во всяком случае, я не понимаю как). >Укажите, плз, как решить эту проблему... 1. Если запрос пришел из внешнего мира на интерфейс А то его надо обрабатывать на интерфейсе А По этой прчине входящий паке не перезапихнуть в другой интерфейс. 2. Сессии к-е устанавливает наш сервер они по умолчанию обрабатываются таблицей main. если маркировать их то только так: iptables -t mangle -A OUTPUT ...... --mark.... iptables -t mangle -I OUTPUT -p tcp --dport 25 -j MARK --set-mark 1 Метить надо то, что сервер обрабатывает. И ловить их: ip rule add fwmark 1 table expensiv т.о. все свои сессии на удаленный порт 25 будут обрабатываться через таблицу expensiv ip rule add fwmark 1 table expensive Входящие сессии контролировать не возможно (в данном случае): относительно 25 порта прописать MX на необходимый линк и к-й не хотим обрабатывать -j DROP
|