|
Re: [Lug-bg] DNAT след рутиране.
- Subject: Re: [Lug-bg] DNAT след рутиране.
- From: Danail Petrov <danail.petrov@xxxxxxxxxxx>
- Date: Wed, 20 Aug 2008 10:53:52 +0300
Ако имаме следната ситуация:
Доставчик 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
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
--
Danail Petrov
Senior Network Administrator
Evolink, Sofia
+359(2)9691650
www.evolink.com
icq uin 989677
|
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|
|
|