source based routing
Добавлено: 06 апр 2007, 12:58
небуду долго и скучно рассказывать почему я вынужден применять такой костыль, скажу только что вновата естественно винда и проприетарная реализация tcp/ip для нее.
есть два роутера. есть две подсети. есть точка в которой сходятся два кабеля из двух подсетей и уходит одна оптика к двум роутерам. в этой точке ставится третий роутер, этот нормальный, линуксовый. задача - в зависимости от source address роутить пакет на один из роутеров. один для одной подсети, другой для другой, причем destination range у них общий, т.е. мне нужно осуществлять роутинг на базе исходного айпишника, а не айпишника назначения, причем переписывать поля в пакетах нельзя, потому что дальше идет биллинг, а надо просто определенные пакеты отправлять на определенные ethernet interfaces не изменяя их на ip уровне, причем именно по признаку source address.
как это сделать средствами iptables я не нашел, хотя я на самом деле совсем не эксперт этой штуки и только недвано с ней познакомился. как я понял iptables оперирует на tcp/ip level и за роутинг не отвечает. а route слишком примитивна чтобы решить эту задачу. но задача не такая уж и дикая, явно что-то люди придумали, да?
есть два роутера. есть две подсети. есть точка в которой сходятся два кабеля из двух подсетей и уходит одна оптика к двум роутерам. в этой точке ставится третий роутер, этот нормальный, линуксовый. задача - в зависимости от source address роутить пакет на один из роутеров. один для одной подсети, другой для другой, причем destination range у них общий, т.е. мне нужно осуществлять роутинг на базе исходного айпишника, а не айпишника назначения, причем переписывать поля в пакетах нельзя, потому что дальше идет биллинг, а надо просто определенные пакеты отправлять на определенные ethernet interfaces не изменяя их на ip уровне, причем именно по признаку source address.
как это сделать средствами iptables я не нашел, хотя я на самом деле совсем не эксперт этой штуки и только недвано с ней познакомился. как я понял iptables оперирует на tcp/ip level и за роутинг не отвечает. а route слишком примитивна чтобы решить эту задачу. но задача не такая уж и дикая, явно что-то люди придумали, да?