|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 28 Feb 2006 18:08:29 To : Anton Shuko Subject : Re: нужно scr адрес поменять -------------------------------------------------------------------------------- Anton Shuko <Anton.Shuko@f66.n5005.z2.fidonet.org> wrote: AS>>> т.к. маршрут может быть только один, то src адрес пакета берется AS>>> тот, который относится к интерфейсу, являющийся defaultroute в AS>>> данный момент. Hапример, AS> ошибся. src для моего конкретного случая (openvpn) выбирается по src адресу AS> интерфейса, с которого произошло соединение с другим концом туннеля. Если на этом интерфейсе адрес один -- как может быть иначе? EB>> В линуксе ЛЮБОЙ маршрут имеет "левую" и "правую" части, как EB>> уравнение, и в "левую" входит src. Который не обязан быть всегда 0/0, EB>> и может быть задан в другое значение, из перечня поднятых на EB>> интерфейсе адресов. AS> уху. но я думал, что можно менять не нулевой src для исходящих с этого же AS> хоста пакетов. оказалось что хрен вам. такой фокус проходит только для AS> транзитных... Хм, а у меня работают правила, которые заворачивают локальный исходящий трафик в туннели и применяют там SNAT (чтобы адрес исходящих пакетов менялся на адрес моей стороны туннеля). AS>>> Это не форвард пакетов, это проблема исходящих с хоста пакетов. AS> EB>> Главное -- не перепутать PREROUTING и OUTPUT. AS> пакет лезет в таблицу, но адрес там не меняется. А счётчики подкручиваются? Чудеса прямо. Так не бывает - правило либо сработало, либо нет, третьего не дано. Чай не квантовая механика. :) AS> если кто-то хорошо понимает механизм прохождения исходящих с хоста пакетов AS> подтвердите, поправьте или опровергните следующее: AS> AS> 1. AS> пакет может создаться приложением с src равным 0. далее ему присвается AS> нужный src системой при выходе с какого-то интерфейса в мир. разумеется, AS> адрес этого интерфейса. Пакет никогда не создаётся с нулевым src_ip. Там всегда что-то ненулевое, вопрос в том, по каким правилам этот src заполняется ядром. Если приложение сделало bind(2) - src_ip записан в сокете и пакет получает именно его. Если нет - ядро делает поиск наиболее подходящего адреса, используя разные соображения. Прежде всего смотрится src маршрута, конечно. AS> 2. AS> тоже что и 1, но snat может изменить src Аналогично. AS> 3. AS> пакет создается приложением с src не равным 0 и его уже не может поменять AS> ни система маршрутизации, ни нат ни чорт лысый. но его можно запихнуть в AS> любую таблицу и выпнуть наружу с любова интерфейса... Подсистема маршрутизации по определению не меняет адреса пакетов (и tos/dscp). -- Eugene Berdnikov --- ifmail v.2.15dev5.3 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3651e2ce3fe7.html, оценка из 5, голосов 10
|