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

 

начало

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

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

семинари ...

документи

как да ...

 

 

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

Re: [Lug-bg] DNAT ???? ????????.


  • Subject: Re: [Lug-bg] DNAT ???? ????????.
  • From: vladi <altoas@xxxxxxxxx>
  • Date: Wed, 20 Aug 2008 20:39:04 +0300
  • Openpgp: id=2CA62DA9; url=subkeys.pgp.net

хм, разбирам те, но след като това правило върши работа от локалната ти машина, защо не ползваш този dns, за всички останали машини, а отдлено правиш и автономен резолв от вътрешната мрежа, иначе не виждам причина да ти излизат днс заявки от вътрешната мрежа. като цяло съвета ми е да не ползваш foward-ери, тъйкато по този начин си подвластен на волята на доставчика, ако реши да ти спира достъпа към тракери и т.н.

а относно отговора на колегата с ip route записите, не ти ли трябва и ip roule ?

Rossen Antonov wrote:


2008/8/20 vladi <altoas@xxxxxxxxx>
можеш на базата на d.адреса да пренасочваш пакетите през един или друг интерфейс, това се прави с iproute+mangle, но това което ти искаш ми се вижда малко странно.. ако един пъкет пътува за ААА, без значение през кой интерфейс напуска, той ще достигне до ААА ако всичко по пътя е наред, има логика да променяш пътя, т.е. да казваш ако е за ААА или е от БББ го пусни през ДДД интерфейс, но ... да промениш получателя на БББ само защото напуска през ДДД? малко става на обратно..

Ще разкажа малко по-подробно. Може да ми намерите изцяло нова гледна точка.
Историята късае домашната ми машина. Имам достъп до интернет през БТК Adsl и през квартален лан доставчик. Ползвам приоритетно лан доставчикът. Adsl-а е само за backup. Включвам го със скрипт, който добавя IP-то на adsl модема като default gateway и трие този на лан доставчика.

До тук добре. Преди много месеци ползвах DNS-ите на доставчиците си. След това си пуснах мой кеширащ DNS насочен към сървърите на доставчиците ми, като използвам опцията "forward firsт". Така разчитам, че ако поради  някаква причина DNS-ите на доставчиците ми не отговорят, моят собствен DNS ще си намери пътя нагоре и ще ми отговори той. Паралелно с това не товаря root DNS-ите и паралелно с това разчитам, че дори и да ми умре международния интернет, все пак ще мога да resolve-вам сравнително дълго БГ сайтовете, защото ще ползвам кешираната информация в DNS-ите на доставчика ми. В опцията forwarders DNS сърверът на лан доставчика ми е първи, а този на БТК - втори, защото времето до него е 10 пъти по-голямо.

До тук добре! Но какво се оказва! При поредното спиране на достъпа ми до интернет през LAN мрежата ми, трафикът автоматично преминава през БТК. Съответно заявките от локалния ми DNS започват да заминават през мрежата на БТК, с IP-то на БТК, но отиват към сърверът на LAN доставчика ми. Тук идва и тънкия момент. DNS-ът на лан доставчика отговаря адекватно на заявките ми за всички домейни, които той пази в своя кеш. А за тези, които не пази отговаря с NXDOMAIN. Това пресича целия процес на resolving и страниците ми не се отварят.  Доста кофти според мен, и ако е направено нарочно мисля, че е и доста подло.

За да реша този проблем искам да направя така, че когато заявките към DNS-ите на лан доставчика излизат през БТК, то просто да ги DNAT-вам и да ги насочвам към DNS-ите на БТК. За заявки генерирани локално на машината - това работи благодарение на следните правила:

iptables -t nat -A OUTPUT -o eth2 -d $DNS_LAN1 -j DNAT --to-destination $DNS_BTK1
iptables -t nat -A OUTPUT -o eth2 -d $DNS_LAN2 -j DNAT --to-destination $DNS_BTK2

където eth2 е мрежовата карта към ADSL модема.

И сега оново въпросът ми е - как да направя същото и с DNS заявките, които ядрото рутира от вътрешната мрежа. Според iptables документацията това е невъзможно. Дали има друг начин?


 

Rossen Antonov wrote:


2008/8/20 Danail Petrov <danail.petrov@xxxxxxxxxxx>
Здравей,
аз нещо не успях да ти схвана въпроса, затова ще те попитам. Искаш да направиш така, че ако пакетът поеме по пътя ПРЕЗ вторият интернет доставчик, то next-hop адреса (адреса на рутера към който да се обърне за маршрутизация) да бъде различен? Това ли е което искаш да направиш?

Благодаря, че питаш въпреки неяснотата ми. Искам, ако пакетът поеме по пътя ПРЕЗ втория интернет доставчик, да сменя IP адреса, към който отива (destination adress).

Примерно: пишеш yahoo.com, но точно в този момент пътят до yahoo.com е през втория интернет доставчик и преди да излезе пакета, искам да му подменя destination ip-то и да го пратя към mail.bg.
 

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

Attachment: signature.asc
Description: OpenPGP digital 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.