[mdk-re] ядро 2.2.х и SNAT или знатоки комманды IP (iproute2) wanted

AVL =?iso-8859-1?q?info_=CE=C1_atmsk=2Eru?=
Вс Окт 21 17:13:14 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

чено я еще не понимаю? и почему все это категорически не работает, даже не заводится.






 




Подробная информация о списке рассылки community