|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Anton Shuko 2:5005/66 28 Feb 2006 05:37:45 To : Eugene B. Berdnikov Subject : нужно scr адрес поменять -------------------------------------------------------------------------------- 27 Feb 06 19:08, you wrote to me: AS>> А проблема такая: AS>> AS>> т.к. маршрут может быть только один, то src адрес пакета берется AS>> тот, который относится к интерфейсу, являющийся defaultroute в AS>> данный момент. Hапример, ошибся. src для моего конкретного случая (openvpn) выбирается по src адресу интерфейса, с которого произошло соединение с другим концом туннеля. и остается до релоада, чтобы ты с ним не делал... и для тцп и для удп протоколов связи EB> В линуксе ЛЮБОЙ маршрут имеет "левую" и "правую" части, как EB> уравнение, и в "левую" входит src. Который не обязан быть всегда 0/0, EB> и может быть задан в другое значение, из перечня поднятых на EB> интерфейсе адресов. уху. но я думал, что можно менять не нулевой src для исходящих с этого же хоста пакетов. оказалось что хрен вам. такой фокус проходит только для транзитных... AS>> дефолт if1, а пакет засовываю в таблицу if2. Там стоит роутинг AS>> через if2, пакет выходит с этого интерфейса, но с адресом if1... AS>> И не помогает даже принудительная установка src типа: ip ro a AS>> default via роутер_для_if2 dev if2 src адрес_if2 ta if2 EB> Проверил -- fwmark работает. И через алиас, и с другого интерфейса. AS>> Это не форвард пакетов, это проблема исходящих с хоста пакетов. EB> Главное -- не перепутать PREROUTING и OUTPUT. пакет лезет в таблицу, но адрес там не меняется. более того, нат тоже не всегда меняет. мыслю, что если у исходящего с этого же хоста пакета src жестко задан приложением то его уже ничем не изменить :( после пары дней долбежки лбом об экран и обгугливания решил сделать так как и попробовал сначала, но отказался из-за дергания интерфейса: прописываю в конфиг openvpn local адрес и делаю релоад. тогда в src вписывается этот нужный адрес и остается только запихнуть пакет в нужную таблицу... а запихивается без fwmark. простой from src. хотя интерфейс дергается, но конекты не отваливаются, а именно этого я и добивался. если кто-то хорошо понимает механизм прохождения исходящих с хоста пакетов подтвердите, поправьте или опровергните следующее: 1. пакет может создаться приложением с src равным 0. далее ему присвается нужный src системой при выходе с какого-то интерфейса в мир. разумеется, адрес этого интерфейса. 2. тоже что и 1, но snat может изменить src 3. пакет создается приложением с src не равным 0 и его уже не может поменять ни система маршрутизации, ни нат ни чорт лысый. но его можно запихнуть в любую таблицу и выпнуть наружу с любова интерфейса... пока что я методом тыка определил эти 3 правила. к сожалению хороших доков для данной ситуации я не нашол :( Anton --- GoldED/W32 3.0.1 * Origin: Пиво пить - здоровым быть !!! (2:5005/66) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/18574403d3d8.html, оценка из 5, голосов 10
|