cs:objevovani_sousedu

Objevování sousedů

Objevování sousedů (neighbor discovery) je univerzální mechanismus, který slouží k řešení celé řady problémů ve vztahu počítače a jeho okolí. Nahrazuje ARP, které v IPv4 slouží k vyhledání linkové adresy pro IP adresu sousedního počítače, a přidává k němu funkce související se směrováním či automatickou konfigurací. Seznam jeho funkcí je poměrně obsáhlý:

  • zjišťování linkových adres sousedních uzlů (ze stejné podsítě) a jejich aktualizace
  • hledání směrovačů
  • přesměrování
  • zjišťování síťových parametrů pro automatickou konfiguraci
  • ověřování dosažitelnosti sousedů
  • detekce duplicitních adres

K tomu všemu mu stačí pouhých pět zpráv, které přenáší prostřednictvím ICMPv6:

  • Ohlášení směrovače (router advertisement) - v něm směrovač oznamuje síťové parametry (především prefix zdejších adres); slouží především pro automatickou konfiguraci
  • Výzva směrovači (router solicitation) - pokud nepřichází ohlášení směrovače, může o ně uzel touto zprávou požádat
  • Ohlášení souseda (neighbor advertisement) - posílá soused, aby o sobě poskytl požadované informace
  • Výzva sousedovi (neighbor solicitation) - žádá souseda o jeho ohlášení; používá se ke zjišťování linkových adres a detekci dosažitelnosti
  • Přesměrování (redirect) - doporučuje adresátovi, aby datagramy k určitému cíli posílal přes jiného souseda; umožňuje opravovat nedokonalosti ve směrovací tabulce

Zjišťování linkových adres

Tato funkce objevování sousedů slouží k získání linkové (MAC) adresy sousedního počítače, kterému chce odesilatel poslat datagram. Vychází ze znalosti IPv6 adresy cíle, z níž sestaví adresu vyzývaného uzlu (solicited node address). Jedná se o skupinovou adresu s dosahem omezeným na linku, která začíná pevně daným prefixem

ff02:0:0:0:0:1:ff00::/104 Za něj vždy připojí posledních 24 bitů IPv6 adresy, pro niž hledá linkovou. Jestliže se například hledá linková adresa pro

2001:db8:1:1:22a:fff:fe32:5ed1 bude adresa vyzývaného uzlu

ff02::1:ff32:5ed1 Na tuto adresu tazatel pošle výzvu sousedovi. Každý IPv6 uzel musí přijímat skupinově adresované datagramy směřující na adresu vyzývaného uzlu pro všechny adresy, které mu byly na příslušném rozhraní přiděleny. Pokud mu dorazí výzva, reaguje na ni ohlášením souseda, z nějž se tazatel dozví jeho linkovou adresu a následně mu může odeslat datagram.

Detekce dosažitelnosti souseda

Tato služba sleduje, zda sousední počítač „žije“. Může ji využívat například mobilní uzel k rozpoznání přesunu - jestliže zjistí, že jeho implicitní směrovač není nadále dosažitelný, pravděpodobně přešel do jiné bezdrátové buňky a měl by si proto vyhledat aktuální síťové parametry.

U sousedů, s nimiž IPv6 uzel komunikuje, si ukládá informaci o míře jejich dosažitelnosti. V závislosti na průběhu komunikace prochází několika stavy: nekompletní (na začátku, dokud nepřišla žádná odezva), dosažitelný (ideální stav), prošlý (vypršela platnost, ale nepotřebuje s ním komunikovat), odložený (vypršela platnost, odeslán paket, zatím be zodezvy) a testovaný (testuje se, zda je dosud dosažitelný). Obecně se detekce dosažitelnosti snaží své akce minimalizovat a k ověření, že počítač komunikuje, využívá i informace poskytované vyššími vrstvami síťové architektury.

Bezpečné objevování sousedů

Objevování sousedů řeší dost důležité otázky a otevírá bohužel nová bezpečnostní rizika. O jejich řešení usiluje Secure Neighbor Discovery (SEND). Opírá se o dva mechanismy, řešící různé okruhy problémů: kryptograficky generované adresy a certifikační cesty.

Kryptograficky generovaná adresa (Cryptographically Generated Address, CGA) vychází z veřejného klíče svého vlastníka. Zprávy objevování sousedů pak lze digitálně podepsat a doprovodit informací o veřejném klíči. Příjemce si pak může celkem spolehlivě a snadno ověřit, že adresa a veřejný klíč patří k sobě a že veřejným klíčem lze ověřit podpis, tedy že s nejvyšší pravděpodobností skutečně zprávu poslal ten, kdo se tváří jako její odesilatel. Tím je vyřešen problém předstíraných sousedů.

Druhé bezpečnostní riziko představují falešné směrovače - aby kdokoli nemohl posílat ohlášení směrovače a podstrčit tak automatické konfiguraci údaje podle svých záměrů. Tomu se snaží bránit certifikační cesta (certification path). Jedná se o řetěz navazujících certifikátů, jimiž směrovač prokazuje, že určitá důvěryhodná autorita jej schválila jako směrovač, případně že mu povolila ohlašovat určité konkrétní údaje.

Odkazy

  • RFC 4861 - specifikace objevování sousedů
  • RFC 3971 - zabezpečení objevování sousedů (SEND)
  • RFC 3972 - kryptograficky generované adresy (CGA)
Poslední úprava:: 24.09.2019 12:46