[sisyphus] ядро 2.2.х и SNAT или знатоки комманды IP (iproute2) wanted
AVL
=?iso-8859-1?q?info_=CE=C1_atmsk=2Eru?=
Вс Окт 21 17:14:22 MSD 2001
После прочтения документации к iproute2 от Алексея Кузнецова возникла уверенность, что под ядром 2.2 возможен source nat
то есть подстановка пакету в поле from другого адреса.
Поставленная задача на самом деле еще проще:
есть шлюз. при этом на интерфейсе смотрящем в интернет стоит адрес 192.168.х.х то есть fake
при этом все клиенты и интерфейс на шлюзе смотрящий на них имеют нормальные ip адреса.
таким образом
при ping с клиента tcpdump показывает в пакетах уходящих в интернет в поле from адрес клиента (реальный адрес) и соответственно все работает.
при ping с самого шлюза tcpdump показывает в пакетах уходящих в интернет в поле from адрес интерфейса в интернет этого шлюза (fake адрес) и соответственно ничего не работает.
поскольку ntpd работает именно на этом шлюзе, то естесственно все его попытки синхры с зеноном заканчиваются ничем (ответа от зенона нет и быть не может, а с любого клиента в локалке все на ура ).
задача: сделать так чтобы в поле from пакетов, сгенерированных ntpd и уходящих с шлюза, в поле from был именно реальный адрес (например, адрес того интерфеса, что с того же шлюза смотрит внутрь, в локалку). то есть нат даже не нужен. простой ip-спуфинг.
до чего я додумался с подсказок из документации к iproute2.
1) маркирую пакеты - кандидаты на подстановку другого адреса в поле from
ipchains -A input -s localhost -d ntp0.zenon.net -m 45
2) определяю подстановку реального ip и таблицу route правил для этих пакетов.
ip rule add prio 320 fwmark 45 nat 213.147.42.65 table usertest
3) обратный нат и роутинг для этих пакетов
ip route add nat 213.147.42.65 via 127.0.0.1 table usertest
чено я еще не понимаю? и почему все это категорически не работает, даже не заводится.
Подробная информация о списке рассылки Sisyphus