Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

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


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.