Страница 1 из 1

source based routing

Добавлено: 06 апр 2007, 12:58
tes+or
небуду долго и скучно рассказывать почему я вынужден применять такой костыль, скажу только что вновата естественно винда и проприетарная реализация tcp/ip для нее.

есть два роутера. есть две подсети. есть точка в которой сходятся два кабеля из двух подсетей и уходит одна оптика к двум роутерам. в этой точке ставится третий роутер, этот нормальный, линуксовый. задача - в зависимости от source address роутить пакет на один из роутеров. один для одной подсети, другой для другой, причем destination range у них общий, т.е. мне нужно осуществлять роутинг на базе исходного айпишника, а не айпишника назначения, причем переписывать поля в пакетах нельзя, потому что дальше идет биллинг, а надо просто определенные пакеты отправлять на определенные ethernet interfaces не изменяя их на ip уровне, причем именно по признаку source address.

как это сделать средствами iptables я не нашел, хотя я на самом деле совсем не эксперт этой штуки и только недвано с ней познакомился. как я понял iptables оперирует на tcp/ip level и за роутинг не отвечает. а route слишком примитивна чтобы решить эту задачу. но задача не такая уж и дикая, явно что-то люди придумали, да?

Добавлено: 06 апр 2007, 13:14
tes+or
-ROUTE target?

а другие солюшны?

Добавлено: 06 апр 2007, 13:55
Maxim Britov

Добавлено: 06 апр 2007, 13:56
Llama
делается средствами iproute - соответсвенно читать LARTC, есть перевод.

Добавлено: 06 апр 2007, 14:02
tes+or
блин=(
при попытке использовать цель ROUTE оно говорит что нету /lib/iptables/libipt_ROUTE.so

в ядре вкомпилил IP: policy routing, потом перекомпилил сам iptables - либа не появилась. что я забыл сделать?

Добавлено: 06 апр 2007, 14:06
tes+or
да, про ip я уже начал думать, но случайно узнал про цель в iptables соответствующую и уже написал скрипт для iptables который с высокой вероятностью заработает если у меня появится эта либа

а про ip я обязательно прочитаю, особенно если не заработает это, но почему бы ему и не заработать?

Добавлено: 06 апр 2007, 14:08
Llama
tes+or, потому что -j ROUTE в стандартные ядра не входит AFAIK и врядли будет входить - ибо грубый хак.

Добавлено: 06 апр 2007, 14:16
tes+or
т.е. iproute это правильное решение, а ROUTE target - костыль?

Добавлено: 06 апр 2007, 14:48
Llama
да

Добавлено: 10 апр 2007, 11:46
tes+or
неполучается что-то, хотя все и понял. опять таки, всю схему пока разрисовывать небуду, потому что только на понимание того зачем оно надо уйдет полчаса, спрошу короче: может ли роутер разделять две подсети из одного диапазона. т.е. два интерфейса, за одним(10.5.0.9/16) прячется подсеть 10.5.0.0/16, а другой(10.5.0.11/32) нужен только для того, чтобы роутить пакеты на 10.5.0.10/32, т.е. на один хост. строго на него. но при попытке с самого роутера пропинговать 10.5.0.10/32 он мне отвечает что такого нет, причем ответ приходит с интерфейса 10.5.0.9, что очень важно, ведь я явно сказал что пакеты предназначенные для 10.5.0.10 роутить именно через определенный айпишник и девайс, однако он явно игнорит это указание.