|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 18 Dec 2005 06:08:28 To : Eugene B. Berdnikov Subject : Re: странности с роутингом (iproute2+netfilter) -------------------------------------------------------------------------------- Eugene B. Berdnikov <berd@desert.ihep.su> wrote: EBB> Anton Shuko <Anton.Shuko@f66.n5005.z2.fidonet.org> wrote: AS>> ip ru add fwmark 1 ta ext AS>> ip ro add default via гейтвей ta external AS>> ip route flush cache AS>> AS>> ну и в нетфилтер забиваем в таблицу mangle AS>> AS>> -A OUTPUT -o ppp0 -j MARK --set-mark 1 EBB> EBB> Так работать не будет, надо не в OUTPUT, а в PREROUTING. EBB> Hо руль на iif lo гораздо проще. Тьфу! Чушь написал насчёт PREROUTING - это лишь для транзитных пакетов... Действительно, нужно в OUTPUT. Hе работает оно по совершенно другой причине. Здесь всё сделано правильно. Точнее, почти правильно: -o ppp0 лишнее, так как формально невозможно определить выходной интерфейс до тех по, пока не сделали lookup таблицы маршрутизации, а результат этого lookup'a зависит от fwmark. :-) Hасколько я понимаю, если маршрута на dst_ip нет, то пакет вообще _не попадает_ в нетфильтр. Если маршрут нa dst_ip существует (например, прописан в main явно, или уже сидит в таблице local, если dst_ip попадает под маску интерфейса), то эта конструкция вполне себе работает. Почему так - я затрудняюсь объяснить, то ли это связано с реализацией rp_filter'ов, то ли чего-то ещё, но вывод заключается в том, что в данном случае основная таблица без default существовать не может. Можно только зарулить default на несуществующий адрес +/- закрыть транзит нетфильтром. Однако iif lo всё равно проще, и именно для этого он придуман. :) -- Eugene Berdnikov --- ifmail v.2.15dev5.3 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3651c7d49432.html, оценка из 5, голосов 10
|