[Sysadmins] Хитрые настройки iptables
Aleksey Avdeev
=?iso-8859-1?q?solo_=CE=C1_solin=2Espb=2Eru?=
Ср Фев 15 21:17:51 MSK 2006
Aleksey Avdeev пишет:
> Dank Bagryantsev пишет:
>
>>Здравствуйте, Aleksey.
>>
>
> ...
>
>>
>>Схема действительна и все работает только так и не иначе!
>>2Aleksey: Другими словами, если сказал routing, что этот ip-пакет от
>>локального процесса выйдет через этот конкретный интерфейс, то
>>никакими средствами iptables его через другой интерфейс не выпустишь.
>>Если я не прав, то предъявите доказательства, pls.
>
>
> Iptables отправкой пакета через интерфейс и не управляет. Там только
> MARK делается... И в какой интерфейс его отправить -- уже другие
> механизмы занимаются.
>
>
>>AA> Не знаю: я в такие дебри не лазил... Настраивал, с помощью
>>AA> <http://www.nixp.ru/articles/iproute>, других источников и метода
>>AA> научного тыка.
>>
>>IMHO, наверное, о каком-то нюансе вы умалчиваете...
>
>
> Вполне возможно. О подробностях смогу сообщить недели через 2 (когда
> из командировка вернусь).
Вернулся. Готов продолжить беседу.
>
>
>>Например, при динамической маршрутизации свои нюансы могут возникнуть...
>
>
> У меня -- только статическая.
>
>
>>Да и следующая схема должна дать требуемые результаты:
>>
>>"повесить" локальный процесс на dummy0/определенный IP(или через
>>vserver) + source-routing + SNAT/DNAT(если надо)
>
>
> Я с локального хоста по этой схеме по ftp ходил, пока туннель со
> стороны шлюза непорушил. (Пробрасовал через туннель ftp трафик от своего
> хоста и тестовой подсети, к нему подключённой.)
Туннель -- починен.
Как у меня сделано (etcnet-0.8.0-alt1 +
etcnet-defaults-server-0.8.0-alt1):
/etc/net/ifaces/
/etc/net/ifaces/lan -- локальная сетка (ничего интересного)
/etc/net/ifaces/mylan -- тестовый сегмент (тоже, ничего интересного)
/etc/net/ifaces/gre_tun -- туннель к ftp шлюзу (отличен от шлюза по
умолчанию).
/etc/net/ifaces/gre_tun/{options,ipv4address} -- обычные настройки
туннеля (из примеров брал)
/etc/net/ifaces/gre_tun/ipv4rule -- помеченное, маршрутизируем отдельной
таблицей (ftp.out):
====
fwmark 1 table ftp.out
====
/etc/net/ifaces/gre_tun/ipv4route -- маршрут по умолчанию для ftp.out:
====
default via <ip шлюза в туннеле> dev gre_gaspar table ftp.out
====
/etc/net/ifaces/gre_gaspar/fw/iptables/filter -- всё пропускать
/etc/net/ifaces/gre_gaspar/fw/iptables/mangle/{OUTPUT,PREROUTING} --
идентичны:
====
-p tcp -m tcp -j tunmark
====
/etc/net/ifaces/gre_gaspar/fw/iptables/mangle/tunmark -- метим пакеты:
====
-d 127.0.0.0/8 -j RETURN
-d <lan ip> -j RETURN
-p tcp -m multiport --destination-port 20,21,873 -j MARK --set-mark 0x1
====
/etc/net/ifaces/gre_gaspar/fw/iptables/nat/POSTROUTING -- натим всё, что
идёт через данный интерфейс:
====
-o $NAME -j SNAT --to-source <ip хоста в туннеле>
====
iproute:
/etc/iproute2/rt_tables:
====
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
201 ftp.out
====
При такой схеме весь ftp/rsync трафик из тестовой сетки (mylan) и
локального хоста (к которому она подсоединена) -- уходит не на
умолчальный шлюз, а туда -- куда мне нужно.
--
С уважением. Алексей.
Подробная информация о списке рассылки Sysadmins