Ако имаме следната ситуация:Доставчик 1 - закачен на eth0 с адреси *x.x.x.0/30* (където x.x.x.2 е ip-то при теб, a x.x.x.1 е ИП-то на доставчика, който ти ползваш за gw) Доставчик 2- закачен на eth1 с адреси *y.y.y.0/30* (където y.y.y.2 е ip-то при теб, a y.y.y.1 е ИП-то на 2рия доставчик, който ти ползваш за gw)
Ако правилно съм разбрал въпросът ти, най-вероято имаш някакъв маршрутизиращ протокол (BGP?) който определя кой destination е по-добър. Следователно част от пакетите ще излизат през eth0 а останалите през eth1 (според зависи). Така, ако това което искаш да направиш е всичко което излиза през eth1 да бъде изпращано НЕ към y.y.y.1 а към друг адрес (a.b.c.d), то можеш да опиташ следното:
*iptables -t mangle -I OUTPUT -o eth1 -j MARK --set-mark 20* # /Всичко което излиза от eth1 бива маркирано с локална марка 20/ *echo 20 test > /etc/iproute2/rt_tables* # /Създаваме нова маршрутизираща таблица различна от main/ *ip rule add fwmark 0x14 table test* # /Създаваме policy based routing чиято функция е да преглежда всички пакети, и онези който са маркирани с марка 20 (0x14 in hex) да бъдат маршрутизирани през таблицата test вместо основната маршрутизираща таблица (main)/ *ip route add table test default via a.b.c.d *# /Изпращаме всички пакети попаднали в тази маршрутизираща таблица да излизат през адрес a.b.c.d /
Незнам дали съм схванал правилно въпросът ти, но ако е така - то това би-трябвало да работи.
Пробвай и сподели резултатите! Поздрави! Rossen Antonov wrote:
Банда здравейте,Машината ми има достъп до интернет през два доставчика. С цел прескачане на някой проблеми искам да реализирам DNAT след рутиране, т.е. ако определени заявки в конкретния момент излизат през втория интернет доставчик, то destination-а им да се променя. Ако излизат през първия - да не се пипат. В зависимост от конкретни условия routing таблицата ми се мени с един два реда, забивани статично.За завки генерирани от локалната машина решението си доиде от самосебе си:iptables -t nat -A OUTPUT -o eth2 -d $IP_ADDR1 -j DNAT --to-destination $IP_ADDR2,където eth2 е лан картата към втория доставчик.За съжаление в документацията на iptables пише, че това нещо не може да бъде направено за пакети, които не са генерирани от локалната машина, а се рутират през нея. В PREROUTING веригата не мога да добавя такова правило, защото не е ясно кой е OUTGOING (-o) интерфейса. В POSTROUTING веригата пък DNAT-а не е позволен.Дали някой е намирал забиколен начин за реализация на подобна идея? Поздрави: --Росен ------------------------------------------------------------------------ _______________________________________________ Lug-bg mailing list [email protected] http://linux-bulgaria.org/mailman/listinfo/lug-bg
-- Danail Petrov Senior Network Administrator Evolink, Sofia +359(2)9691650 www.evolink.com icq uin 989677
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ Lug-bg mailing list [email protected] http://linux-bulgaria.org/mailman/listinfo/lug-bg
