Portál AbcLinuxu, 12. května 2025 16:14

Dotaz: dvakrat default route

17.10.2007 16:18 David | skóre: 21 | Praha
dvakrat default route
Přečteno: 1384×
Odpovědět | Admin
Ahoj, mam pocitac jmenem ABC, ktery ma dve sitovky eth0 , ktera je "zapichla" do internetu a eth1, ktera je "zapichla" do lokalni site a ta lokalni sit ma svoji vlastni gw "zapichlou do internetu". Mam zprovoznene spojeni
nekde z internetu -> ABC pres gw te lokalni site

rad bych ale kdyz se k pocitaci ABC pripojim na jeho verejnou IP adresu (na sitovku eth0), aby mi odpovidal primo a ne pres gw te lokalni site. Zkousel jsem neco takoveho:
ABC:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.30.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
qwe.rty.uio.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         qwe.rty.uio.254   0.0.0.0         UG    0      0        0 eth0
0.0.0.0         192.168.30.252  0.0.0.0         UG    0      0        0 eth1
(ta pismena jsou tam abych nemusel psat verejne IP). Myslel jsem ze se bude delat nasledujici: pokud mi prijde dotaz z internetu sitovku eth0, tak budu odpovidat pomoci gatewaye qwe.rty.uio.254, jenze to bohuzel furt leze pres tu gateway 192.168.30.252. Diky za kazdy napad, David.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.10.2007 16:34 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: dvakrat default route
Odpovědět | | Sbalit | Link | Blokovat | Admin
Default může být pouze jeden :-) a použije se ten na který se dříve narazí....:-)
17.10.2007 16:40 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: dvakrat default route
Ovšem zapomněl jste dotat, že může být jeden v jedné tabulce, ovšem směrovacích tabulek může být až 255 (v současných verzích linuxového jádra).
17.10.2007 16:37 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: dvakrat default route
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zahoďte route a ifconfig, a použijte iproute2 (příkaz ip). Tam můžete definovat různá pravidla (ip rule), podle kterých se vybere příslušná routovací tabulka (třeba podle zdrojové IP adresy). Navíc ifconfig/route je už několik let (nebo desetiletí) zastaralý. Na vašem případě vidíte jeden z příkladů, proč.
17.10.2007 16:48 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: dvakrat default route
Nejsem proti. Muzete mi prosim poradit jak to tedy pomoci prikazu ip nastavit?
17.10.2007 17:26 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: dvakrat default route
V /etc/iproute2/rt_tables si vytvořte nový řádek, např.
100 internet_direct_table
Tím vytvoříte novou routovací tabulku. Tu pak můžete upravovat příkazem ip route, takže default gw přes qwe.rty.uio.0 nastavíte třeba takhle:
ip route add default via qwe.rty.uio.254 table internet_direct_table
No a nakonec přidáte nějaké pravidlo, které za jakých podmínek se daná tabulka použije – např. pokud je zdrojová adresa paketu qwe.rty.uio.1
ip rule add from qwe.rty.uio.1 table internet_direct_table
Musíte zařídit, aby se tyhle příkazy spouštěly po startu systému (např. přes rc.local nebo něco obdobného ve vaší distribuci). Také je možné, že vaše distribuce má nějaký sofistikovaný konfigurační soubor, který při bootu rozparsuje a ty příkazy zavolá, pak by bylo lepší použít přímo ten.

Když pak nějaká aplikace bude nasluochat na adrese qwe.rty.uio.1 a přijme na ní TCP spojení, odpoví paketem se zdrojovou ip adresou qwe.rty.uio.1 a použije se nová routovací tabulka. Pro UDP to záleží na tom, zda aplikace odpoví ze stejné IP adresy, na kterou paket přijala, ale nevidím důvod, proč by odpovídala z jiné. U aplikací, které samy navazují spojení (např. http klient) můžete sám určit, přes kterou gateway půjde spojení ven tím, jako zvolíte zdrojovou ip adresu. Tedy on to běžný prohlížeč asi neumí, ale třeba u Squidu to nastavit můžete.
17.10.2007 22:44 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: dvakrat default route
Tak jsem to chtel zkusit a narazil jsem na toto:
ABC:/usr/src# ip rule list
RTNETLINK answers: Operation not supported
Dump terminated
Hadam, ze neco nebude zakompilovane v jadre. Je to tak?
17.10.2007 22:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: dvakrat default route
Nejspíš něco pod Network Options / Advanced Router. Ale u distribučního jádra by mne to dost překvapilo, nemáte tam nějaké vlastnoručně přeložené a ořezané až na kost?
18.10.2007 13:52 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: dvakrat default route
Tak uz mam nove jadro a ip rule list jde. Jenze.... Mozna nejdrive par informaci, ktere jsem jeste nerekl: Na serveru bezi apache, tedy web server a ja potrebuju, aby kdyz se z prohlizece (z pocitace v internetu) pripojim na verejnou adresu serveru s apachem, tak aby mi server odpovedel "naprimo", tedy aby odpoved nesla pres router (router pro vnitrni sit). No a zaroven potrebuji, ze kdyz se na server pripojim z pocitace ve vnitrni siti, odpovi mi server po lokalni siti. Mozna bych nejdrive rad vedel, jestli se ty ip rule aplikuji na prichozi nebo na odchozi pakety...zacinam se v tom pekne motat :(
18.10.2007 14:33 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: dvakrat default route
Aplikují se na odchozí pakety (vybírá se podle nich routovací tabulka, podle které se určí směrování paketu). Nevím, jak to funguje dohromady s rp_filter (to je podle mne jediná možnost, kdy by se to mohlo aplikovat i na příchozí pakety, ale nikd yjsem to nezkoumal).

Problém s Apachem vyřešíte jednoduchým způsobem. Záleží na IP adrese, na kterou se klient připojí – z vnitřní sítě se musíte připojit na IP adresu síťovky ve vnitřní síti, z internetu na tu IP adresu síťovky, která vede přímo do internetu. Apache pak odpoví paketem se stejně nastavenou zdrojovou IP adresou, a zafungují pravidla pro výběr síťové karty. Když se klient bude připojovat přes tu správnou IP adresu, docílíte tím zároveň toho, že správnou cestou (tj. z internetu přímo, z vnitřní sítě rovnou na server a ne "kolem" přes internet) půjdou nejenom odpovědi, ale i dotazy.

Té volby síťové adresy nejsnáze docílíte tak, že na DNS dotazy na jméno serveru budete odpovídat různě pro počítače z internetu a jinak počítačům z vnitřní sítě. Jak to udělat jsem už kdysi popisoval. Pokud těch počítačů ve vnitřní síti není moc, můžete jim i přímo upravit soubory /etc/hosts, ale řešení s DNS je elegantnější, nemusíte se starat o každý počítač zvlášť.
18.10.2007 15:06 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: dvakrat default route
Tak jsem to tak udelal a funguje to, ale je divne, ze z toho serveru nejde ping na napr: idnes.cz a tez kdyz se chci prihlasit z internetu na ten server pres ssh, tak to trva silene dlouho nez se navaze spojeni.
18.10.2007 15:43 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: dvakrat default route
Zkontrolujte překlad jmen (oběma směry).
17.10.2007 16:38 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: dvakrat default route
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžete vyzkoušet parametrizovat záznam pomocí zdrojové adresy (ip route add default via qwe.rty.uio.254 src qwe.rty.uio.N dev eth0), případně si nastudujte kapitolu Routing for multiple uplinks/providers.
17.10.2007 16:43 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: dvakrat default route
A ještě se divím, že vám šly vytvořit dvě dafault routy se stejnou metrikou ve stejné tabulce (asi chyba nástroje route).
17.10.2007 21:28 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: dvakrat default route
Více položek se stejným rozsahem, ToS i metrikou skutečně v jedné tabulce vytvořit lze; není to problém příkazu route ale jádra. Důrazně se ale doporučuje takové konfiguraci vyhnout, protože jednak není garantováno, že to bude platit i v budoucnu, jednak je pak ve hvězdách, kterou položku si jádro vybere pro směrování příslušných paketů.
17.10.2007 23:34 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: dvakrat default route
Tak se to asi už změnilo, protože mi za to jádro vynadá (RTNETLINK answers: File exists).
17.10.2007 23:49 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: dvakrat default route
Když to zkusíte přímo pomocí 'ip route add', tak ano. Ale jsem si skoro jistý, že se mi nedávno podařilo takovou situaci (dvě routy se stejným rozsahem, ToS i metrikou) nějak podařilo nechtěně vyrobit.
17.10.2007 21:15 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: dvakrat default route
Takhle ne, parametr src určuje preferovanou zdrojovou adresu pro pakety směrované podle dané položky. Je potřeba použít směrovací pravidla, jak už bylo uvedeno v diskusi.
18.10.2007 08:49 pet
Rozbalit Rozbalit vše Je to tak prostee
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak smaz ten posledni radek ;-)

1. radek rika: do lokalni site tudy

2. radek rika: k providerovi tudy

3. radek rika: kdyz nevis kudy, tak pres providera

a 4. (chybny) radek rika: nene, kdyz nevis kudy, tak pres lokalni sit ;-)

Pokud je lokalni sit vetsi, tak 4. radek nahrad necim jako:

192.168.0.0 192.168.30.252 255.255.0.0 UG 0 0 0 eth1
18.10.2007 09:34 Stehlo | skóre: 17
Rozbalit Rozbalit vše Re: dvakrat default route
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vsetko super, ale ako zariadim, aby sa po vsunuti PCMCIA karty default gw zmazal a vytvoril novy? V laptope totiz mam eth0, avsak ked zasuniem pcmcia wifi, tak mi : route default gw len prida dalsiu branu, preto stale manualne musim zmazat default a to az dvakrat a na novo pridat. Neda sa to nejak zautomatizovat?
18.10.2007 09:37 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: dvakrat default route
Dá, např. přes pravidla pro udev, ale rozhodně to nepatří do tohohle dotazu – bude rozhodně přehlednější a slušnější napsat dotaz nový.
18.10.2007 09:41 Stehlo | skóre: 17
Rozbalit Rozbalit vše Re: dvakrat default route
a preco by nepatril, ked udev vie nastavit tieto pravidla, tak potom by vyriesil aj pravidlo dvakrat default route, ktore sa tu rozobera.
18.10.2007 10:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: dvakrat default route
Tady se neprobírá dvakrát default route, probírá se zde tento problém. Pokud s pomocí příspěvků pod tímto problémem dokážete vyřešit svůj problém, vyřeště si ho. Pokud máte jiný problém, položte nový dotaz. Jak nastavit více směrovacích tabulek už tady v diskuzi bylo popsáno, takže v tom váš probléma asi nespočívá.

Přečtěte si FAQ: více témat v jednom příspěvku a Patrně jste nerespektovali nebo si vůbec nepřečetli poučení před položením dotazu
18.10.2007 10:34 melkor
Rozbalit Rozbalit vše Re: dvakrat default route
Odpovědět | | Sbalit | Link | Blokovat | Admin
IMHO se da inspirovat http://linux-ip.net/html/adv-multi-internet.html s jemnou upravou pro prostredi LANu (ty odkazy bych take doporucoval prostudovat)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.