URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 71888
[ Назад ]

Исходное сообщение
"Маршрутизация одного порта"

Отправлено Allex , 02-Фев-07 13:21 
Как смаршрутизировать один порт средствами ipchains и nat?Тоесть пустить этот единственный порт по отдельному маршруту через отдельный шлюз?

Содержание

Сообщения в этом обсуждении
"Маршрутизация одного порта"
Отправлено perece , 02-Фев-07 14:18 
>Как смаршрутизировать один порт средствами ipchains и nat?Тоесть пустить этот единственный порт
>по отдельному маршруту через отдельный шлюз?
средствами iptables и iproute2 может быть? тогда так:

iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 33
ip rule add fwmark 0x33 prio 100 tab port25
ip route add default 10.1.1.5 tab port25

при этом port25 должна быть прописана в /etc/iproute2/rt_tables

на ядре 2.2 (ipchains) этого сделать имхо нельзя. ну разве что через юзерспейс линк, и демона своего написать.

\^P^/


"Маршрутизация одного порта"
Отправлено Allex , 02-Фев-07 14:21 
>>Как смаршрутизировать один порт средствами ipchains и nat?Тоесть пустить этот единственный порт
>>по отдельному маршруту через отдельный шлюз?
>средствами iptables и iproute2 может быть? тогда так:
>
>iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark
>33
>ip rule add fwmark 0x33 prio 100 tab port25
>ip route add default 10.1.1.5 tab port25
>
>при этом port25 должна быть прописана в /etc/iproute2/rt_tables
>
>на ядре 2.2 (ipchains) этого сделать имхо нельзя. ну разве что через
>юзерспейс линк, и демона своего написать.
>
>\^P^/

А на фрибсд как эта связка работает?Какие там пакеты нужны будут?


"Маршрутизация одного порта"
Отправлено perece , 02-Фев-07 14:26 
>>>Как смаршрутизировать один порт средствами ipchains и nat?Тоесть пустить этот единственный порт
[...]
>А на фрибсд как эта связка работает?Какие там пакеты нужны будут?
не зна. вопрос был про фрибсд? разве там бывает ipchains???
я малек отстал от жизни видимо...

\^P^/


"Маршрутизация одного порта"
Отправлено Allex , 02-Фев-07 14:39 
>>>>Как смаршрутизировать один порт средствами ipchains и nat?Тоесть пустить этот единственный порт
>[...]
>>А на фрибсд как эта связка работает?Какие там пакеты нужны будут?
>не зна. вопрос был про фрибсд? разве там бывает ipchains???
>я малек отстал от жизни видимо...
>
>\^P^/

Вообще бывает - в портах оно есть, но ставить его ИМХО глупость, т.к. есть ipfw и теперь вопрос тот же самый но с ipfw.


"Маршрутизация одного порта"
Отправлено perece , 02-Фев-07 14:24 
>iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark
>33
>ip rule add fwmark 0x33 prio 100 tab port25
>ip route add default 10.1.1.5 tab port25
цифры разумеется от балды. port25 - имя таблицы, может быть абсолютно любым. но что важно - в команде iptables fwmark записана как '33', а в ip rule - как '0x33'. это распространенная ошибка, часто пишут просто одно и то же число, при этом iproute2 воспринимает его в десятичной, а iptables в шестнадцатеричной форме, и в рез-те не работает.

\^P^/


"Маршрутизация одного порта"
Отправлено Oyyo , 02-Фев-07 15:38 
>>iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark
>>33
>>ip rule add fwmark 0x33 prio 100 tab port25
>>ip route add default 10.1.1.5 tab port25
>цифры разумеется от балды. port25 - имя таблицы, может быть абсолютно любым.
>но что важно - в команде iptables fwmark записана как '33',
>а в ip rule - как '0x33'. это распространенная ошибка, часто
>пишут просто одно и то же число, при этом iproute2 воспринимает
>его в десятичной, а iptables в шестнадцатеричной форме, и в рез-те
>не работает.
>
>\^P^/

зачем делать лишние действия, просто направить запросы на нужный интерфейс

-I FORWARD -j ACCEPT -p tcp --dport XXX -o ethX

это правило должно быть в начале таблицы перед другими разрешающими
правилами, а как это сделать в ipfw не скажу, сам ещё толком не разобрался


"Маршрутизация одного порта"
Отправлено perece , 02-Фев-07 20:03 
>>>iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark
>>>33
>>>ip rule add fwmark 0x33 prio 100 tab port25
>>>ip route add default 10.1.1.5 tab port25
>>цифры разумеется от балды. port25 - имя таблицы, может быть абсолютно любым.
>>но что важно - в команде iptables fwmark записана как '33',
>>а в ip rule - как '0x33'. это распространенная ошибка, часто
>>пишут просто одно и то же число, при этом iproute2 воспринимает
>>его в десятичной, а iptables в шестнадцатеричной форме, и в рез-те
>>не работает.
>>
>>\^P^/
>
>зачем делать лишние действия, просто направить запросы на нужный интерфейс
>
>-I FORWARD -j ACCEPT -p tcp --dport XXX -o ethX
>
>это правило должно быть в начале таблицы перед другими разрешающими
>правилами, а как это сделать в ipfw не скажу, сам ещё толком
>не разобрался

нееее... если речь всеже про iptables, то так это работать точно не буде.
-o ethX матчит по выходному интерфейсу, а не форвардит в него, в не зависимости от того, в каком месте команды написано (до или после -j). кроме того -j ACCEPT - терминирующая цель, все, что написано после нее будет проигнорировано если строчка заматчилась, ибо iptables/ipchains использует first match policy (в отличие от bsd ipfw, где как раз last match)
ну и напоследок... нетути тут адреса гейтвея. а соотв. не сможет шлюз определить, какой мак-адрес следует подставить этому пакету при выходе через ethX. соотв. есть сомнения в том, что с даже ipfw данный подход жизнеспособен.

\^P^/


"Маршрутизация одного порта"
Отправлено Oyyo , 02-Фев-07 20:14 
>>>>iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark
>>>>33
>>>>ip rule add fwmark 0x33 prio 100 tab port25
>>>>ip route add default 10.1.1.5 tab port25
>>>цифры разумеется от балды. port25 - имя таблицы, может быть абсолютно любым.
>>>но что важно - в команде iptables fwmark записана как '33',
>>>а в ip rule - как '0x33'. это распространенная ошибка, часто
>>>пишут просто одно и то же число, при этом iproute2 воспринимает
>>>его в десятичной, а iptables в шестнадцатеричной форме, и в рез-те
>>>не работает.
>>>
>>>\^P^/
>>
>>зачем делать лишние действия, просто направить запросы на нужный интерфейс
>>
>>-I FORWARD -j ACCEPT -p tcp --dport XXX -o ethX
>>
>>это правило должно быть в начале таблицы перед другими разрешающими
>>правилами, а как это сделать в ipfw не скажу, сам ещё толком
>>не разобрался
>
>нееее... если речь всеже про iptables, то так это работать точно не
>буде.
>-o ethX матчит по выходному интерфейсу, а не форвардит в него, в
>не зависимости от того, в каком месте команды написано (до или
>после -j). кроме того -j ACCEPT - терминирующая цель, все, что
>написано после нее будет проигнорировано если строчка заматчилась, ибо iptables/ipchains использует
>first match policy (в отличие от bsd ipfw, где как раз
>last match)
>ну и напоследок... нетути тут адреса гейтвея. а соотв. не сможет шлюз
>определить, какой мак-адрес следует подставить этому пакету при выходе через ethX.
>соотв. есть сомнения в том, что с даже ipfw данный подход
>жизнеспособен.
>
>\^P^/

Ой-ой, всё работает если правильно прописана таблица роут
вовсяком случае у меня работает и имелось ввиду не синтаксис
написания правила, а место положения правила в цепочке форварда


"Маршрутизация одного порта"
Отправлено perece , 06-Фев-07 17:44 
[...]
>>ну и напоследок... нетути тут адреса гейтвея. а соотв. не сможет шлюз
>>определить, какой мак-адрес следует подставить этому пакету при выходе через ethX.
>>соотв. есть сомнения в том, что с даже ipfw данный подход
>>жизнеспособен.
>
>Ой-ой, всё работает если правильно прописана таблица роут
>вовсяком случае у меня работает и имелось ввиду не синтаксис
>написания правила, а место положения правила в цепочке форварда

непонятненько. что значит "прописана таблица роут"? не более одного гейтвея на интерфейс? в некоторых случаях может потребоваться обратное. или вы не подозреваете, что policy routing может потребоваться не только на link-scope?
если мы указываем интерфейс, и ему по таблице маршрутов соответствует 5 гейтвеев, а нам нужно, чтобы летело именно через 4й из них, как система это узнает?

\^P^/


"Маршрутизация одного порта"
Отправлено Oyyo , 06-Фев-07 18:05 

>непонятненько. что значит "прописана таблица роут"? не более одного гейтвея на интерфейс?
>в некоторых случаях может потребоваться обратное. или вы не подозреваете, что
>policy routing может потребоваться не только на link-scope?
>если мы указываем интерфейс, и ему по таблице маршрутов соответствует 5 гейтвеев,
>а нам нужно, чтобы летело именно через 4й из них, как
>система это узнает?
>
>\^P^/

бесполезный спор, видимо кто-то из нас не правильно понял вопрос
"Тоесть пустить этот единственный порт по отдельному маршруту через отдельный шлюз?"
по моему мнению понятие "отдельный шлюз" включает наличие отдельного интерфейса


"Маршрутизация одного порта"
Отправлено perece , 06-Фев-07 18:20 
>>непонятненько. что значит "прописана таблица роут"? не более одного гейтвея на интерфейс?
>>в некоторых случаях может потребоваться обратное. или вы не подозреваете, что
>>policy routing может потребоваться не только на link-scope?
>>если мы указываем интерфейс, и ему по таблице маршрутов соответствует 5 гейтвеев,
>>а нам нужно, чтобы летело именно через 4й из них, как
>>система это узнает?

>бесполезный спор, видимо кто-то из нас не правильно понял вопрос
>"Тоесть пустить этот единственный порт по отдельному маршруту через отдельный шлюз?"
>по моему мнению понятие "отдельный шлюз" включает наличие отдельного интерфейса

несомненно. но варианта, когда к этому ифейсу присоединен свитч, а в него воткнуто аж 5 шлюзов постановка вопроса не исключает, правда?

\^P^/