Hlavní navigace

Nasazujeme IPv6 na RouterOS

26. 8. 2011
Doba čtení: 6 minut

Sdílet

V dalším pokračování seriálu o operačním systému RouterOS si představíme možnosti, které mají správci sítě s IPv6. Zkusíme získat IPv6 rozsah pomocí jedné ze dvou hlavních tunelových technologií a nakonfigurujeme RouterOS tak, abychom mohli aspoň na hlavní stránku prezentace napsat IPv6 ready.

V minulém článku mi bylo vytýkáno, že se o některých technologiích málo rozepisuji. Ani tady to nebude jiné a i když zkusím hodit ke všemu odkaz na nějaký zdroj, raději se hned na začátku ohradím a řeknu, že pokud se rozhodnete tento článek použít, měli byste už o IPv6 něco vědět. V tom vám pomůže třeba kniha od Pavla Satrapy s názvem „IPv6“, kterou si můžete stáhnout díky organizaci CZNIC na knihy.nic.cz. Tento článek si neklade za cíl vysvětlit čtenáři, co to IPv6 je, ale ukázat, jak se používá na operačním systému RouterOS.

Podpora IPv6

Není to tak dlouho, co RouterOS IPv6 nezvládal. Ve verzi 3.x byly pokročilejší funkce součástí balíčku pro testování, ve verzi 4.x se pak všechny tyto funkce staly stabilní. I když IPv6 jelo v pohodě, dlouho byl jeden či více bugů v implementaci OSPFv3, což způsobovalo, že se routovací tabulka po krátké době rozpadla. Někdy vydržela hodinu a někdy se dokázala domluvit jen půlka sítě. Důležité bylo, že se na ni nedalo vůbec spolehnout, což u sítě, kde už je víc routerů může být problém. Podle zkušeností jiných uživatelů jede IPv6 a OSPFv3 v RouterOS spolehlivě od konce větve 3.x.

V současné době jede OSPFv3 v řadě 5.x a ke konci 4.x velmi dobře a síť se chová stabilně. Už je také podporováno dost služeb, jejichž seznam vlastností jsem si vypůjčil na wiki.mikrotik.com.

  • Statické adresy a routování
  • Autokonfigurace (router advertisement daemon)
  • Dynamické routování přes BGP+, OSPFv3, a RIPng
  • Firewall
  • queue tree, simple queue, pcq
  • DNS
  • 6in4 (SIT) tunely
  • EoIPv6, ip/ipv6 over ipv6 (IPIPv6) tunnel interface
  • IPSEC
  • VRRPv3
  • PPP
  • Služby SSH, telnet, FTP, WWW, Winbox, API
  • Ping
  • Traceroute
  • Web proxy
  • Sniffer a monitorovací nástroje

Proti IPv4 toho chybí ještě hodně, zvlášť když si porovnáte nabídky obou protokolů v některém z rozhraních. Chybí třeba routování multicastu nebo automatické vytváření tunelů, nicméně největší překážkou v plnohodnotném nasazení u některých sítí bude absence DHCPv6.

6to4 nebo 6in4 tunel

Bohužel, i po dni IPv6 a s posledními IPv4 adresami vyškrábanými ze dna RIRů, se stále setkáme se sítěmi, které jsou pro IPv6 svět offline, kde jedním z důvodů je ten, že jejich poskytovatel IPv6 nenabízí. V takovém případě nezbývá nic jiného než tunel. Tunelovacích technologií je víc a o některých rozšířených jsme psali.

V případě SixXS budete donuceni použít statický 6in4 tunel a budete potřebovat veřejnou IPv6 adresu. RouterOS nemá podporu protokolu AYIYA, takže za NATem se se servery SixXS nedohodnete. Veřejná adresa platí i pro 6to4 od CZNIC. Je jedno, kterou technologii si nakonec vyberete. Mě připadá 6to4 standardnější, ale na SixXS také není nic špatného.

V případě SixXS a 6in4 protokolu, můžete použít konfiguraci uvedenou na stránkách projektu. Vše co se děje na RouterOS s IPv6 se nastavuje v menu / ipv6. Začneme tedy s tunelem:

/interface 6to4 add local-address=<Vaše IPv4> remote-address=<IPv4 přiděleného tunelu> mtu=1280 name=SixXS-tunnel 

Pokračujeme adresou:

/ipv6 address add address=<Přidělená IPv6 adresa> interface=SixXS-tunnel 

A nakonec nastavíme bránu:

/ipv6 route add dst-address=2000::/3 gateway=<IPv6 brána> 

S IPv6 tunelem jste pravděpodobně žádali i o /48 prefix, o něm bude řeč níže.

U 6to4 je nastavení velmi podobné. Zase nejdříve přidáme tunel:

/interface 6to4 add mtu=1280 name=6to4tunnel local-address=<Vaše IPv4> remote-address=192.88.99.1 disabled=no 

Potom adresu:

/ipv6 address add address=<IPv6 z kalkulačky>/3 interface=6to4tunnel 

A nakonec bránu:

/ ipv6 route add dst-address=2000::/3 gateway=::192.88.99.1,6to4tunnel 

Na rozdíl od SixXS se v tomto případě počítá IPv6 rozsah z IPv4 adresy pomocí kalkulačky. V článku odkazovaném výše najdete více informací.

Routování

Máte-li adresu od svého poskytovatele nebo jste se dostali přes předchozí kapitolu, jsou všechny ostatní nastavení a služby velmi podobné těm u IPv4, jen adresy jsou trochu delší. Jejich konfigurace se schovává v menu / ipv6 address a jejich přidávání nebo úprava nějak nevybočuje z RouterOS zvyklostí.

Předpokládejme, že máme k dispozic rozsah 2002:596f:680­2::/48, který je naroutován na 2002:596f:6802::1 na rozhraní ether0. Tak nějak by mohla vypadat konfigurace s 6to4. Adresu na další rozhraní, třeba ether1 pak přidáme tímto způsobem:

/ ipv6 address
add address=2002:596f:6802:1::1/64 interface=ether1 

Pokud přidáme ještě „advertise=yes“, bude o sobě router dávat vědět do sítě a všechny stroje připojené na dané rozhraní si pomocí autokonfigurace spočítají svou adresu. Tímto způsobem bude nastavena pouze IP adresa a brána, nikoli DNS servery.

Podobně nasázíme adresy k dalším rozhraním. Pokud váháte nad použitím prefixu většího než 64, dobře si to rozmyslete. I když ty 4 miliardy adres na druhou nevyužijete, nezapomeňte, že RouterOS zatím nemá DHCPv6 a autokonfigurace, která funguje jen s /64, je tak jedinou možností, jak mezi stroje v síti dostat pohodlným způsobem adresy. Mnohem lépe se vám bude s rozsahem pracovat, pokud každé rozhraní dostane svůj prefix /64, IPv6 k tomu bylo navrženo.

O spoje typu bod-bod se nemusíme starat vůbec, zvlášť pokud požijeme dynamické routování přes OSPFv3. To si s okolními routery povídá přes link-local adresy a žádné jiné tedy nepotřebuje. V tomto ohledu se dá síť nastavit mnohem jednodušeji než u IPv4. Dokonce bych řekl, že nastavení OSPFv3 je v mnoha případech jednodušší, než vymýšlet komplikované statické routování. Link-local adresy můžeme použít i u statického routování, ale v tomto případě to už má k pohodlí daleko.

Routy se spravují v menu / ipv6 route a novou přidáme tímto způsobem:

/ ipv6 route
add dst-address=2002:596f:6802:3::/64 gateway=2002:596f:6802:2::1/64 

Výchozí bránu pak:

add dst-address=::/0 gateway=2002:596f:6802:1::/64 

U třech a více routerů se pak počet pravidel může rozrůst, takže buď si sedneme a vymyslíme neprůstřelné rozdělení rozsahů, které bude počítat i s rozšířením do budoucna nebo nastavíme OSPFv3.

To provedeme v menu / routing ospf-v3. Nejprve je nutné nastavit instanci. Jedna už je ve výchozím stavu vytvořená a s ní si vystačíme.

/ routing ospf-v3 instance
set 0 router-id=<IP adresa> redistribute-connected=as-type-1 redistribute-static=as-type-1 distribute-default=always-as-type-1 

Je dobrým zvykem dávat do „router-id“ IP adresu routeru. Distribuce výchozí brány by měla být v síti zapnuta jen na jednom routeru, který skutečně bránu dělá, na dalších použijte never.

Druhým krokem je přidání rozhraní, po kterých bude OSPF komunikovat. To se dělá v podnabídce interface.

/ routing ospf-v3 interface
add interface=ether1 area=backbone 

Tady se způsoby oproti IPv4 trochu liší, protože u OSPFv2 nepoužíváme rozhraní, ale podsítě.

Otestovat funkčnost můžete třeba utilitou / ping, ale nabídky / routing ospf-v3 neighbor a / routing ospf-v3 route k vypsání sousedů a vypočítané routovací tabulky také pomohou.

OSPFv3 z RouterOS si alespoň u takhle jednoduchého nastavení rozumí s linuxovými implementacemi Bird i Quagga.

CS24_early

Závěr

I když RouterOS ještě nepodporuje u IPv6 všechno co u IPv4, dá se už spolehlivě nasadit. Navíc není konfigurace IPv6 nějak zvlášť odlišná od starší verze IP protokolu a pokud se přeneseme přes delší adresu, nakonfigurujeme ji prakticky stejně.

Na druhou stranu ještě některé vlastnosti chybí. Problém s chybějícím DHCPv6 zabolí a věřím, že v některých sítích blokuje nasazení u klientů.

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.