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`ом все работает, а с маскарадингом работать не хочет. Скорее всего потому, что исходящий интерфейс и соотв. маскарадный адрес определяется до того, как начинает работать полиси роутинг, поэтому пакеты уходят по нужным маршрутам, но с чужими адресами. Перечитывать топик и разбираться подробнее лениво Удачи. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.