[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