[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: одновременная работа с двумя шлюзами



Andrey Nikitin wrote:
Хотелось бы настроить хост(etch) так,
чтобы скачка больших файлов (руками запущенные wget, torrent-клиенты) проходила бы через unlim-шлюз, а остальной доступ - через wide-шлюз (по умолчанию).

Как научить wget и torrent ходить не через дефолтный маршрут,
или выбрать их аналоги, умеющие это делать?
И что прописать в netfilter?


Задача поставлена не совсем корректно. Приложения работают с прикладными протоколами поверх неких транспортных (TCP или UDP). Ни о каких маршрутах они не знают. Этим занимается сетевой стек ОС. В общем случае нужен policy routing на основе используемого протокола прикладного уровня. Идеологически верно для этого использовать iptables вместе с iproute2, однако для простоты можно поставить из patch-o-matic цель ROUTE, которая позволяет указывать next hop, используя только правила iptables. Классифицировать трафик проще всего по портам назначения. Можно и более продвинуто, с помощью модуля layer7.

Приблизительно так будет выглядеть правило, направляющее HTTP через интерфейс eth0:
iptables -A PREROUTING -t mangle -p tcp --dport 80 -j ROUTE --oif eth0


Reply to: