IPv6 – pokročilé vlastnosti

Michal Zima, xzima1@fi.muni.cz

Obsah

Autokonfigurace

Bezstavová autokonfigurace

Aktuálně nejpoužívanější způsob konfigurace klientů. Využívá ICMPv6 paketů rodiny NDP (Neighbour Discovery Protocol) využívaných také pro objevování sousedů.

Linková adresa

V IPv6 má každé rozhraní vlastní linkovou adresu, kterou si samo přiděluje. Mají společný prefix ff80::/10 a následujících 54 nulových bitů. Každé rozhraní k tomuto základu připojí modifikovaný EUI-64 a pomocí mechanismu objevování sousedů si ověří, že žádný ze sousedů tuto adresu nepoužívá.

Globální adresa

Směrovače v nepravidelných interval rozesílají ohlášení směrovače s informacemi o:

omezení skoků
na jakou hodnotu omezovat počet skoků odesílaných paketů
příznak stavová konfigurace adres
oznamuje, že se má použít DHCPv6
příznak stavová konfigurace ostatních parametrů
oznamuje, že adresy se přidělují bezstavově, ale ostatní parametry se získávají z DHCPv6
příznak domácí agent
oznamuje, že směrovač je ochoten sloužit klientům jako jejich domácí agent pro adresy
životnost implicitního směrovače
čas ve vteřinách, po který bude ještě možné využívat daný směrovač jako implicitní
trvání dosažitelnosti
čas v milivteřinách, po který bude uzel považován za dosažitelný od okamžiku ověření dosažitelnosti
interval opakování
interval (milivteřiny) mezi dvěma výzvami sousedovi

Dále volby:

MTU
informuje o MTU v síti
prefixy
oznamuje prefixy, které se v dané síti používají; parametry:
RDNSS (Recursive DNS Server)
dodává adresy rekurzivních DNS serverů (+ údaj o životnosti)
DNSSL (DNS Search List)
sděluje suffixy pro nekvalifikovaná doménová jména používaná v dotazech (+ údaj o životnosti)

Bezstavové DHCPv6

Slouží k doplnění některých informací, které nebyly klientovi předány v bezstavové konfiguraci, – typicky adresy DNS serverů. Klient v žádosti o informace vyjmenuje požadované parametry a server mu je v odpovědi pošle.

Bezstavová autokonfigurace v GNU/Linuxu

Je standardně zapnutá. Je možné ji vypnout voláním sysctl:

sysctl -w net.ipv6.conf.eth0.autoconf=0

Informace směrovače umí distribuovat například BIRD, Quagga či radvd. Příklad konfigurace radvd:


interface eth0 {
	AdvSendAdvert on;
	prefix 2001:470:9985:eeee::/64 {};
}

Stavová autokonfigurace

Stavová autokonfigurace existuje v IPv6 ve formě DHCPv6 (Dynamic Host Configuration Protocol for IPv6) a staví na stejných principech jako DHCP v IPv4.

DHCPv6 je podporováno klienty Dibbler či ISC DHCP.

Pojmy

DHCP relay (zprostředkovatel)
zprostředkovává komunikaci s DHCP serverem v jiné podsíti
DHCP agent
souhrnné označení pro DHCP servery a zprostředkovatele, kteří jsou dostupní na lokální lince
DUID (DHCP Unique Identifier)
stálý jednoznačný identifikátor zařízení
IA (identifikační asociace)
stálý identifikátor rozhraní

Proces přidělování adres

  1. Klient po lokální síti rozešle výzvu se svým DUID a všemi IA všem agentům (ff02::1:2).

  2. Server na výzvu odpoví ohlášením serveru, kde uvede své DUID, preferenci vyjadřující míru ochoty poskytnout danému klientovi své služby a přiloží konfigurační parametry pro každé IA, které by klientovi přidělil.

    Zprostředkovatel předává výzvu všem serverům ve své konfiguraci (může obsahovat i skupinovou adresu všech DHCP serverů ff05::1:3) ve zprávě typu předání, na kterou servery odpovídají odpovědí k předání.

  3. Z odpovědí si klient vybere server s nejvyšší preferencí (v případě shody i podle dalších kritérií). Opět na skupinovou adresu agentů odesílá žádost s DUID vybraného serveru.

  4. Server žádost vyhodnotí a podle DUID a linky klienta mu v odpovědi pošle adresy a informaci, zda bylo žádosti vyhověno či ne (a proč).

  5. Klient adresy ověří a pokud jsou již používány, může serveru zaslat odmítnutí.

Další operace s adresami

Ukázková konfigurace ISC DHCP

option dhcp6.domain-search "example.com";
option dhcp6.name-servers 2001:718:801:230::e;

subnet6 2001:718:801:7e57::/64 {
	range6 2001:718:801:7e57:f00::/80;
	host foo.fi.muni.cz {
		host-identifier option dhcp6.client-id 00:01:00:01:0c:00:a3:c2:00:06:5b:a0:3c:19;
		fixed-address6 2001:718:801:7e57::dead:face;
	}
}

Bezpečnostní aspekty

CGA (Cryptographically Generated Addresses)

Cíl: za majitele adresy se může prohlásit jen majitel odpovídajícího soukromého klíče. O vlastnictví adresy uzel informuje CGA volbou v NDP paketu. Ten zahrnuje: modifikátor, prefix podsítě, čítač kolizí, zakódovaný veřejný klíč a rozšiřující položky.

Obtížnost napadnutí adresy je ovlivněna tříbitovým parametrem Sec (vizte dále). Generování adresy probíhá následovně:

  1. vygeneruje se (pseudo)náhodná 128b hodnota (modifikátor)
  2. spočítá se SHA1(modifikátor + 9 nulových bajtů + zakódovaný veřejný klíč + rozšiřující položky); dokud hash nemá Sec×16 nejlevějších bitů nulových, tak se modifikátor inkrementuje a krok se opakuje
  3. vynuluje se čítač kolizí
  4. prefix podsítě + 64 nejlevějších bitů z SHA1(modifikátor + prefix podístě + čítač kolizí + zakódovaný veřejný klíč + rozšiřující položky), kde první tři bity udávají hodnotu Sec a 6. a 7. bit jsou dle standardní adresotvorby, tvoří výslednou IPv6 adresu
  5. provede se kontrola duplicity – v případě kolize se inkrementuje čítač kolizí a opakuje se předchozí krok; po 3 kolizích proces končí chybou

SEND (SEcure Neighbour Discovery)

SEND rozšiřuje NDP o čtyři volby:

Navíc přidává 2 typy NDP zpráv: žádost o certifikační cestu a ohlášení certifikační cesty.

DHCPv6

Protokol zavádí volbu autentizace – klient v ní uvede prostředky, které chce pro autentizaci používat, standardně HMAC-MD5. Server pak ke každé zprávě připojí digitální podpis.

Komunikace mezi zprostředkovateli a servery je pak možné chránit pomocí IPsecu.

IPsec

Základními entitami jsou bezpečnostní asociace (SA), které představují jednosměrná zabezpečená spojení mezi 2 uzly, včetně všech parametrů, které se k němu váží.

Na bezpečnostní asociace se váže databáze bezpečnostní politiky (SPD), která obsahuje pravidla pro posuzování všech paketů. Samotné asociace jsou ukládány v databázi bezpečnostních asociací (SAD) s indexem bezpečnostních parametrů (SPI).

Režimy provozu

V transportním řežimu dochází pouze k přidání nové rozšiřující hlavičky do paketu, případné šifrování se týká až dat za touto hlavičkou. V tunelovacím režimu je celý paket obalen do nového IPv6 paketu s příslušnou IPsec hlavičkou.

Autentizační hlavička (AH)

Zajišťuje autenticitu a integritu dat, navíc poskytuje ochranu proti útoku přehráním.

Zapouzdřovací hlavička (ESP)

V základu zajišťuje především šifrování, navíc umí poskytnout i autentizaci.

Distribuce klíčů

Dříve ISAKMP+IKEv1, dnes IKEv2. Ten spojuje správu SA, nastavení jejich parametrů a používaných klíčů. Využívá porty UDP/500 a UDP/4500.

Příklady implementací: racoon, openswan, racoon2, strongswan.

Mobilita

Základním principem je dosažitelnost daného uzlu pod jednou adresou, ať už se fyzicky nachází v kterékoli síti. Uzel se přihlašuje k domácímu agentovi sídlícímu v domovské síti uzlu. Agent pak zprostředkovává komunikaci mezi korespondentem a příslušným uzlem.

Pro efektivnější komunikaci dochází k optimalizaci cesty – mobilní uzel prokáže korespondentovi, že skutečně sídlí na dané dočasné adrese. Komunikace pak probíhá přímo a je vůči aplikacím transparentní – nevědí nic o dočasných adresách.

Implementace v Linuxu: ano. Utility: UMIP.

Literatura