Portál AbcLinuxu, 12. května 2025 09:59

Dotaz: Jak "obejít" routovací tabulku?

18.6.2012 14:15 pet
Jak "obejít" routovací tabulku?
Přečteno: 554×
Odpovědět | Admin
Situace: dva různe routery A a B připojené k internetu, kazdý s jinou veřejnou IP, provádějící NAT. Do jejich segmentu (ne na straně internetu) je připojen stroj C. C má pro A a B jen jednu IP a je na něm Linux.

Z internetu se počítače připojují na obě adresy A i B, často na obě zároveň. Routery to směřují na C, na různé cílove porty (podle toho jde poznat, kudy (přes kterou IP) to přichází).

Jak zařídit, aby odpověď na spojení přes B odcházela také přes B, když default route v C vede přes A? Iptables na C ví, které pakety mají jít přes B, jen nevím, jak je směrovat.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.6.2012 14:24 drunkezz | skóre: 34 | blog: kadeco
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Odpovědět | | Sbalit | Link | Blokovat | Admin

http://tldp.org/HOWTO/Adv-Routing-HOWTO/

18.6.2012 14:35 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Hezké, ale asi mu to nepomůže. Protože tam je popsáno jak jedním linuxovým routerem uřídit dva uplinky. Se standardníma router krabičkama to myslím nejde. To by ty dva routery musel předělat na bridge, do serveru dát další síťovku, každý router připojit na jeden interface a vše uroutovat v serveru.
18.6.2012 14:44 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mělo by to jít pomocí iptables target MARK + iproute rule a fwmark. Potřebuješ vyrobit dvě routovací tabulky pro obě cesty ('ip route' má parametr table pro určení tabulky), pomocí 'ip rule' nastavit na základě fwmark kterou použít a pak pomocí iptables a targetu MARK značkovat příslušné pakety (třeba podle portu). Víceméně všechno potřebné bys měl najít v manuálových stránkách iptables a ip (iproute2).
18.6.2012 15:06 iKoulee | skóre: 19
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Routing policy
Even if you fall on your face, you’re still moving forward
18.6.2012 20:22 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Odpovědět | | Sbalit | Link | Blokovat | Admin
C musí umět aspoň trochu routovat, např. tam může být Linux. V linuxu se použije více směrovacích tabulek, mezi kterými se přepíná pomocí pravidel. Pravidla se konfigurují příkazem ip rule, routovací tabulky příkazem ip route. Když budete hledat třeba tady na Abíčku ip rule, určitě najdete dost podobných případů. Je to stejný případ, jako když máte na jednom routeru dvě nezávislé přípojky do internetu.
19.6.2012 16:54 pet
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Děkuji všem, kteří mi zde pomohli najít řešení. Vidím, že někdo to již za vyřešené označil, ale mě pomohly prakticky všechny příspěvky. Konkrétně v mém případě stačilo přeložit kernel 2.6.24 s:

[*] Networking support  --->
     Networking options  --->
[*] TCP/IP networking
[*]   IP: advanced router
[*]     IP: policy routing

a pak:

ip rule add from 192.168.251.11 table 251011
ip route add 192.168.0.0/24 dev eth1 table 251011
ip route add default via 10.40.12.254 dev eth0 table 251011
pro routovani provozu z 192.168.251.11 přes 10.40.12.254.

Dobrý příklad je i na: Dotaz: dvě veřejné IP z různých subnetů, jenže můj program ip nepodporuje pojmenované routovací tabulky, jen číslované.

19.6.2012 18:32 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak "obejít" routovací tabulku?
Přiřazení názvů routovacím tabulkám se nastavuje v /etc/iproute2/rt_tables.

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.