volkoff Опубликовано 3 февраля, 2009 Жалоба Опубликовано 3 февраля, 2009 есть роутер (Linux RedHat9), на нем интерфейс во внутреннюю сеть и 2 в интернет - ррр0 и ррр3. (есть еще несколько интерфейсов в другие локальные сети, но это не существенно). Можно задать маршрут ip r a default dev ppp0 а можно ip r a default dev ppp3 все прекрасно работает. а вот если я пытаюсь сделать вот это: ip route add default equalize nexthop dev ppp0 weight 1 nexthop dev ppp3 weight 1 то все затыкается. Eще есть вот такая бяка (мне кажется, что связана с предыдущей): Если создать таблицу маршрутизации, например vpn2, промаркировать все пакеты идущие из внутренней сети с адреса 172.20.32.44 маркой 2, то задав вот такое правило: ip rule add fwmark 2 table vpn2 мы все эти пакеты направляем в таблицу vpn2 а дальше уже маршрутизируем их как хотим. Все прекрасно работает. Но, ведь можно и по другому (попроще, без маркировки). Сразу дать команду: ip rule add from 172.20.32.44 table vpn2 Но так к сожалению не работает. Причем, самое интересное, пакеты в таблицу vpn2 попадают. Это можно судить по тому, что в этой таблице очень много маршрутов и с указанного адреса можно пойти по любому из них, КРОМЕ МАРШРУТА ПО УМОЛЧАНИЮ. И еще один момент: если на интерфейсе (того самого маршрута по умолчанию, куда не хотят идти пакеты)сделан не маскарадинг, а SNАT, то второй вариант тоже работает. Кто-нибудь сталкивался с подобным? В чем может быть проблема? ЗЫ: Думал, что возможно старый и глючной iproute2 (система-то старая). Обновил - не помогло. Цитата
Ineu Опубликовано 3 февраля, 2009 Жалоба Опубликовано 3 февраля, 2009 volkoff писал(а) Tue, 03 February 2009 15:36 И еще один момент: если на интерфейсе (того самого маршрута по умолчанию, куда не хотят идти пакеты)сделан не маскарадинг, а SNАT, то второй вариант тоже работает. А под что реально маскарадится? Подозреваю, что в указанную таблицу маршрутизации пакеты попадаются после nat-POSTROUTING, поэтому трафик маскарадится под адрес интерфейса системного default route. У себя я маркирую трафик в mangle, а затем по метке отправляю его в нужную таблицу и по той же метке делаю SNAT. Цитата
volkoff Опубликовано 5 февраля, 2009 Автор Жалоба Опубликовано 5 февраля, 2009 поэтому трафик маскарадится под адрес интерфейса системного default route как это? маскарадится вот так:iptables –t nat –A POSTROUTING –o ppp0 -j MASQUERADE iptables –t nat –A POSTROUTING –o ppp3 -j MASQUERADE вот маршруты по умолчанию:ip r a default dev ppp0 ip r a default dev ppp3 table vpn2 и почему же вот такIPTABLES –t mangle –I PREROUTING 1 –s 172.20.32.44 –d ! 172.20.0.0/16 –j MARK -–set-mark 2 ip rule add fwmark 2 table vpn2 работает, а вот такip rule add from 172.20.32.44 table vpn2 не работает? Цитата
Ineu Опубликовано 6 февраля, 2009 Жалоба Опубликовано 6 февраля, 2009 volkoff писал(а) Thu, 05 February 2009 15:40 поэтому трафик маскарадится под адрес интерфейса системного default route как это? Например, есть ppp0 с адресом x.x.x.x и ppp1 с адресом y.y.y.y. Есть роуты: ip r a default dev ppp0 ip r a default dev ppp1 t vpn И есть правило, которое посылает пакеты в таблицу vpn. Тогда маскарадиться пакеты будут под адрес x.x.x.x, но при этом уходить через ppp1. Поэтому при использовании policy routing нужно применять SNAT, а не MASQUERADE. Цитата
volkoff Опубликовано 28 февраля, 2009 Автор Жалоба Опубликовано 28 февраля, 2009 Поэтому при использовании policy routing нужно применять SNAT, а не MASQUERADE. c удовольствием применил бы SNAT, но беда в том, что адреса x.х.х.х и у.у.у.у. неизвестны - присваиваются динамически. А чтобы задать SNAT нужно явно указать адрес интерфейса. В MASQUERADE достаточно имени интерфейса, поэтому им и пользуюсь.А под что реально маскарадится? Подозреваю, что в указанную таблицу маршрутизации пакеты попадаются после nat-POSTROUTING Вобще-то самому жутко интересно после чего пакеты попадают в таблицу маршрутизации. У меня сложилось впечатление, что ДО прохождения таблицы nat-FORWARD.Я как-то очень сильно почудил: - в nat-PREROUTING маркировал некоторые пакеты, - в далее по этой марке направлял их в нужную таблицу маршрутизации, - в таблице маршрутизации задавал маршрут по умолчанию, - далее в nat-FORWARD пакеты сортировались (и перемаркировывались) в зависимости от того через какой интерфейс уходят, - после этого опять в соответствии с маркой направлялись в нужную таблицу маршрутизации, - а потом еще шейпились в соответствии с маркой. (Ну а натились, соответственно в nat-POSTROUTING. Кстати тоже интересно - до того как шейпились (tc - htb) или позже?) Такая дикая схема получилась случайно (в результате логической ошибки), но все работало. Чем я был очень сильно удивлен. Цитата
Ineu Опубликовано 28 февраля, 2009 Жалоба Опубликовано 28 февраля, 2009 volkoff писал(а) Sun, 01 March 2009 00:08 Поэтому при использовании policy routing нужно применять SNAT, а не MASQUERADE. c удовольствием применил бы SNAT, но беда в том, что адреса x.х.х.х и у.у.у.у. неизвестны - присваиваются динамически. Известны. См. скрипты /etc/ppp/ip-up*. Цитата
seugene72 Опубликовано 5 марта, 2009 Жалоба Опубликовано 5 марта, 2009 Столкнулся с подобной проблемой. Решения для себя пока не нашел. Но вот в процессе изучения вопроса, натолкнулся на такой факт: есть интерфейс смотрящий на провайдера ppp1024 ip xx.xx.xx.xx есть правило в таблицах iptables -t nat -A POSTROUTING -o ppp1024 -j SNAT --to-source xx.xx.xx.xx имеем хитро навороченные полиси роутинг, в которых уже сам запутался. но вобщемто вопрос такой, могут ли из-за не правильных полиси роутинг с интерфейса ppp1024 выходить пакеты с источником из локальных сетей. И еще более глупый вопрос, после прохождения правил ПОСТРОУТИНГ таблицы нат, может ли поменяться решение о дальнейшем следовании пакета (в часности исходящий интерфейс). на практике такое происходит. Цитата
volkoff Опубликовано 6 марта, 2009 Автор Жалоба Опубликовано 6 марта, 2009 См. скрипты /etc/ppp/ip-up*. хм... т.е. советуете задавать правила SNAT в этих скриптах? поднялся интерфейс - задали правили с нужным адресом упал - удалили (в ip-down) поднялся опять (с новым адресом) - опять задали в принципе, возможно это решение. просто в голову не приходило, что можно вот так (можно сказать динамически) менять правила файерволла. Цитата
volkoff Опубликовано 14 марта, 2009 Автор Жалоба Опубликовано 14 марта, 2009 Сделал так, как написано в предыдущем посте - все прекрасно работает! Спасибо EvilShadow за подсказку. В принципе тему можно закрывать. Но все-таки не понятно почему со SNAT`ом все работает, а с маскарадингом работать не хочет. Цитата
Ineu Опубликовано 14 марта, 2009 Жалоба Опубликовано 14 марта, 2009 volkoff писал(а) Sat, 14 March 2009 20:31 Но все-таки не понятно почему со SNAT`ом все работает, а с маскарадингом работать не хочет. Скорее всего потому, что исходящий интерфейс и соотв. маскарадный адрес определяется до того, как начинает работать полиси роутинг, поэтому пакеты уходят по нужным маршрутам, но с чужими адресами. Перечитывать топик и разбираться подробнее лениво Удачи. Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.