Aszimmetrikus route
Összefoglalás
Aszimmetrikus route (asymmetric routing) tipikusan akkor alakul ki, hogy ha egy alhálózatban több router üzemel. Ezek lehetnek HA üzemmódban, vagy teljesen más alhálózatokat kötnek össze a tárgyi alhálózattal. Aszimmetrikus route-ról akkor beszélünk, ha egy kliens elindít egy kommunikációt (session) az egyik routeren keresztül, tipikusan az alapértelmezett átjárón (default gateway), de a válasz a másik routeren keresztül érkezik.
WAN környezetben ez nem probléma, sőt előny, hiszen az IP hálózat egyik alap tulajdonsága, hogy több útvonal létezik A és B pont között, amit dinamikusan választanak ki a routerek.
LAN környezetben az okozza a problémát, hogy L2 szinten a válasz más címtől (mac address) érkezik, mint ami felé indult a kommunikáció. Amit egyébként okozhat közbeékelődés is (man in the middle), ezért az eszközök, illetve a protokollok egy része biztonsági okokból nem támogatják az aszimmetrikus route-ot. Továbbá IP stack implementáció kérdése is az aszimmetrikus route érzékenysége egy eszköznek.
Egy eszköz route táblájában csak egy (működő) alapértelmezett átjáró lehet, ezért az aszimmetrikus route okozta problémák és anomáliák elkerülése miatt a hálózati topológiát logikailag és / vagy fizikailag mindig úgy kell szervezni, hogy egy alapértelmezett átjárón keresztül elérhető legyen az összes egyéb hálózat és szolgáltatás.
Az alábbi cikk az aszimmetrikus route eseteit és a lehetséges elkerülő módszereket mutatja be.
Többszörös átjáró (multiple gateways)
Ez esetben a router-ek mögött különböző hálózatok érhetőek el.
Az aszimmetrikus route a következő módszerekkel küszöbölhető ki ilyen esetben.
Statikus route
Az alapértelmezett átjáró mellett az operációs rendszereken lehetőség van statikus route-ok felvételére. A pédában az 1. router az alapértelmezett átjáró, a 2. router felé pedig statikus route-ot veszünk fel. Így a tárgyi host tudni fogja, hogy bizonyos hálózatok felé más irányba kell küldeni a csomagokat, mint az alapértelmezett átjáró.
Statikus route hozzáadása windowson:
route -p add 192.168.2.0 MASK 255.255.255.0 192.168.0.2
Statikus route hozzáadása linuxon:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.2 dev eth0
vagy
ip route add 192.168.2.0/24 via 192.168.0.2 dev eth0
A módszer hátránya nyilvánvaló, sok host esetében sok manuális beállítás, illetve ha változik a hálózati konfiguráció, manuálisan kell lekövetni a változást is. Csak egy-két host esetében érdemes használni, például ha egy szervert el kell érni a 2. router mögötti hálózatból.
Statikus route terjesztése DHCP[1] -vel
A módszer lényege ugyanaz, mint a statikus route-nál, azzal a különbséggel, hogy a DHCP-n keresztül kapják meg a statikus route beállításokat a hostok. Így a konfiguráció rugalmassá és egyszerűvé válik.
A DHCP 33 (host), 121 (network) és 249 (Microsoft) opciója szolgáltatja a statikus route-okat, de hogy a host értelmezi e azokat, az már DHCP kliens implementáció kérdése. A magasabb szintű IP eszközök jellemzően kezelik (pl.: operációs rendszerek), de az egyszerűbbek már nem feltétlen (pl.: nyomtatók). Ezért ha a hálózat minden elemének minden esetben tudni kell kommunikálni a 2. hálózattal, akkor ez a módszer sem megfelelő.
Szabály alapú routolás (Policy based routing[2])
Nincs más hátra, mint megváltoztatni a hálózati topológiát.
Az 1. routeren van egy statikus route a 2. router felé. Ez adott, hiszen az aszimmetrikus route létrejöttéhez is kell.
A 2. routernek viszont megmondjuk, hogy minden esetben az 1. routernek küldje a tárgyi hálózatba irányuló forgalmat, annak ellenére, hogy az eszköznek van interfésze (connected route) ebben a hálózatban. Ez ellenkezik az alap routing logikával, ezét kell felvenni rá egy szabályt.
Hogy egy router milyen beállításokkal képes ilyen működésre, illetve hogy képes e, az gyártó és típus kérdése, új eszköz integráció előtt mindenképpen tájékozódni kell róla.
Hátránya, hogy minden kereszt-hálózati forgalom (LAN 1 <-> LAN 2) megjelenik a LAN hálózatban. Sok hálózat összekötésére nem alkalmas. Jellemzően kényszerűségből választják ezt a módszert, ha valamely okból az egyéb megoldások nem használhatóak.
Helyes L3 topológia
A végső megoldás az, ha úgy szervezzük a hálózatot, hogy valóban csak egy átjáró (router) legyen egy alhálózatban. Az alhálózatok routerekkel, a routerek pedig dedikált interfészekkel és technikai alhálózatokkal kommunikáljanak egymással. Mindig erre kell törekedni, amennyiben nincs kizáró ok.
HA[3] router
bélyegkép|HA routers Ekkor a router-ek mögött ugyanazok a hálózatok érhetőek el. (vagy különbözőek, de ugyanaz a céljuk. pl.: redundáns ISP) Ez esetben azért helyezünk két routert a hálózatba, mert azt szeretnénk, hogy ha az egyik meghibásodik vagy egyéb más ok miatt nem tudja ellátni a feladatát, akkor a másik végezze el azt.
Egy alhálózatban nem lehet két eszköznek ugyanaz az IP címe. Tehát a két routernek különböző IP címe lesz, amiből csak az egyik lehet az alapértelmezett átjáró. Ezért HA átálláskor, ha a passzív router még elérhető a kliensek számára, akkor létrejön az aszimmetrikus route, ha pedig nem elérhető, akkor hiába működik a másik, a kliensek erről nem tudnak, így funkcionálisan nem fog működni a HA router cluster.
A megoldás valamely FHRP[4] protokoll, amit arra fejlesztettek ki, hogy két eszköz eldöntse éppen melyik használjon egy közös IP címet. Ha az egyik kiesik, a másik automatikusan felveszi azt, és folytatja a munkát vele.
A kliensek L2 szinten ARP[5] protokollon értesülnek a változásról, L3 szinten (számukra) nem történik változás a hálózatban.
Hogy a router milyen FHRP protokollt támogat, illetve hogy támogat e, az szintén gyártó és típus függő.