[Sysadmins] перенаправление маркированых пакетов

Gosha =?iso-8859-1?q?gosha_=CE=C1_anti=2Esu?=
Ср Апр 9 21:01:36 MSD 2008


Hi!

Serge пишет:
> В сообщении от Wednesday 09 April 2008 07:50:56 am Gosha написал(а):
>> Serge пишет:
>>> cat MARK
>>> if from 192.168.1.2/255.255.255.0  to 172.26.15.0/24 mark 5 (эти пакеты я
>>> хочу пересылать через интерфейс, являющийся default gw)
>>>
>>> if from 192.168.1.2/255.255.255.0  to ! 192.168.1.0/24 mark 2 (хочу
>>> переслать пакеты не через default gw)
>>> return
>>>
>>> как сделать что бы после выполнения 1 го правила в MARK дальше проверка
>>> не производилась. Так как в зависимости от того в какой
>>> последовательности записаны правила по разному перенаправляются пакеты
>> А зачем Вы маркируете пакеты, которые пойдут через default gw?
>> Они и без маркировки пойдут куда следует. :-)
>> Маркируйте только те, которые пойдут другим путем и только для
>> них и делайте отдельную табличку маршрутизации c помощью iproute2.
> разве правило 
> if from 192.168.1.2/255.255.255.0  to ! 192.168.1.0/24 mark 2 (хочу
> переслать пакеты не через default gw)
> не будет абсолютно ВСЕ пакеты заворачивать на другой интерфейс, не являющийся 
> default GW?
> 
> Можно ли как то дописать в правиле еще и return. Что бы дальше не проверялись 
> правила, если уже произошло совпадение?

Кстати, у Вас прописано: 192.168.1.2/255.255.255.0 - это ошибка,
адрес хоста с маской сети класса С.

Предположим, что Вы имели в виду просто адрес хоста 192.168.1.2.

Насколько я понял, Вы хотите, чтобы пакеты в сеть 172.26.15.0/24
и в локальную сеть 192.168.1.0/24 шли бы дефолтным маршрутом, а во все 
остальные сети - не дефолтным маршрутом.
IMHO вот это обеспечит Ваши нужды:

iptables -t mangle -A PREROUTING -s 192.168.1.2 -d 192.168.1.0/24 \
-j RETURN

iptables -t mangle -A PREROUTING -s 192.168.1.2 -d ! 172.26.15.0/24 \
-j MARK --set-mark 2

--
Gosha




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