====== BSD ======
Systémy řady BSD se dlouhodobě pyšnily podporou IPv6, jejíž kvalitu jim ostatní implementace mohly jen závidět. Bylo to především zásluhou japonského projektu [[http://www.kame.net/|KAME]], jehož implementace se prosadila do jádra všech odrůd BSD: [[http://www.freebsd.org/|FreeBSD]] od verze 4.0, [[http://www.openbsd.org/|OpenBSD]] od verze 2.7 a [[http://www.netbsd.org/|NetBSD]] od verze 1.5.
Máte-li aktuální instalaci, s velkou pravděpodobností IPv6 podporuje. Snadno se přesvědčíte, když si příkazem
ifconfig -a
necháte vypsat parametry všech rozhraní. Pokud se mezi nimi objeví IPv6 adresy, protokol je zjevně podporován.
===== IPv6 v jádře =====
Pokud podpora IPv6 chybí, budete muset přeložit nové jádro. Postup byste se měli dočíst v dokumentaci svého systému. Je potřeba zapnout volbu
INET6
a pro plnohodnotnou podpou IPSEC přidat ještě
IPSEC
IPCES_ESP
====== Konfigurace rozhraní ======
Parametry rozhraní lze samozřejmě nastavovat příkazem //ifconfig//, nicméně pro konfiguraci rozhraní při startu systému je třeba upravit soubor ///etc/rc.conf//.
Pro **automatickou bezstavovou konfiguraci** by měl obsahovat
ip6mode="autohost"
rtsol="YES" rtsol flags="//rozhraní//"
kde //rozhraní// je identifikátor příslušného rozhraní.
Dáváte-li přednost **manuální konfiguraci**, která se používá především u směrovačů, použijte
ip6mode="router"
rtsol="NO"
rtadvd="YES" rtadvd_flags="//rozhraní//"
Poslední řádek v ní zapne ohlašování směrovače. Adresu pak doplňte příkazem //ifconfig//, například
ifconfig fxp0 inet6 2001:db8:1:1:2c0:9fff:fe04:848f prefixlen 64
**Tunel** se chová jako běžné rozhraní s identifikátorem ''gif''//číslo//. V některých verzích jej musíte nejprve vytvořit, pak jej prohlásíte za tunel a uvedete IPv4 adresu zdejšího a protějšího konce. Oba kroky realizujete příkazem //ifconfig//:
ifconfig gif0 create
ifconfig gif0 tunnel //zdejší_IPv4// //protější_IPv4//
ifconfig gif0 inet6 2001:db8:1:ff::1 prefixlen 64
===== Směrování =====
Aktuální směrovací tabulku vám zobrazí příkaz
route show
nebo
netstat -rn
Jejich formát se poněkud liší, první je kompaktnější, druhý obsahuje více informací.
Vložení nové položky do tabulky zajistí příkaz
route add -inet6 //cíl// //kudy//%//rozhraní//
Nejbližší směrovač po cestě (//kudy//) se zadává lokální linkovou adresou, proto je třeba zadat i //rozhraní//, kterým má bý datagram odeslán. K odstranění existující položky z tabulky slouží ''route delete'' se stejnými parametry.
===== DNS =====
Pokud stroj nezíská adresu místního DNS serveru automaticky (například prostřednictvím DHCP), lze ji nastavit ručně obvyklým způsobem, tedy prostřednictvím souboru ///etc/dns// nebo ///etc/resolv.conf//, který by měl obsahovat
nameserver //IPv6_adresa_DNS_serveru//
===== Testování =====
K ověření funkčnosti IPv6 poslouží obvyklé nástroje ve verzi pro IPv6. Tedy //ping6// a //traceroute6//. DNS lze otestovat programem //dig//, jemuž lze parametrem //-t AAAA// sdělit, že máte zájem o záznamy typu AAAA, a pomocí //@IPv6_adresa// se zeptat určitého konkrétního serveru protokolem IPv6.
===== Přechodové mechanismy =====
**[[6to4]]** je v BSD realizováno pseudorozhraními ''stf''//číslo//. Pokud je systém odmítne vytvořit, budete je muset povolit v jádře:
pseudo-device stf
Je-li ''stf'' podporováno, můžete mu přiřadit adresu obvyklým způsobem a nastavit implicitní IPv6 cestu na výběrovou adresu 6to4 zprostředkovatelů:
ifconfig stf0 inet6 2002:93e6:1058:1::1 prefixlen 16
route add -inet6 default 2002:c058:6301::
**[[isatap]]** tunely používají identifikátor ''ist''//číslo//. Pravděpodobně je budete muset povolit v jádře:
pseudo-device ist
a následně jim přidělit adresu odvozenou z IPv4 adresy (řekněme 10.1.2.3):
ifconfig ist0 inet6 2001:db8:1:1::5efe:10.1.2.3 prefixlen 64
Příkazem //ifconfig// lze nastavit i pevnou adresu ISATAP směrovače (např. 10.1.2.100):
ifconfig ist0 isataprtr 10.1.2.100
BSD systémy nemají vestavěny mechanismy pro nalezení adresy ISATAP směrovače pomocí DNS. Lze to zařídit skriptem popsaným v [[http://www.kame.net/newsletter/20041201/|článku o ISATAP]]. Do rozhraní je třeba opakovaně posílat výzvy směrovači, což zajistí příkaz
rtsold ist0
**[[teredo]]** není standardně podporováno, lze však použít [[http://www.remlab.net/miredo/|Miredo]]. Program se jednoduše přeloží a spustí. Vytvoří nové rozhraní ''teredo'', přiřadí mu adresu standardním způsobem a nastaví směrování. Adresu používaného Teredo serveru lze zadat v konfiguračním souboru //miredo.conf//.
**Překlad datagramů** mezi IPv6 a IPv4 dokáže zajistit dvojice programů //faithd// a //totd//. //faithd// implementuje [[trt]], tedy překlad v transportní vrstvě. Používá pseudorozhraní ''faith'', jež bude opět nutné povolit v jádře systému:
pseudo-device faith
Aktivace TRT je pak poměrně komplikovaná. Musíte je povolit příkazem //sysctl//, následně aktivovat pseudorozhraní ''faith'' a spustit démona pro každou službu, kterou má překládat. Jedná-li se o službu běžící jinde, stačí zadat
faithd //služba//
Pokud ale server služby běží na tomto stroji, bude //faithd// podobně jako //inetd// spouštět démona dané služby a musíte mu proto sdělit, jak jej zavolat. Příklad konfigurace, která překládá protokol HTTP pro jiný server a FTP pro server běžící zde, by vypadal takto:
sysctl -w net.inet6.ip6.keepfaith=1
ifconfig faith0 up
route add -inet6 2001:db8:1:eeee:: -prefixlen 64 ::1 -ifp faith0
faithd http
faithd ftp /usr/libexec/ftpd ftpd -l
[[http://www.vermicelli.pasta.cs.uit.no/software/totd.html|//Trick-or-treat daemon (totd)//]] má na starosti úpravy DNS. Převádí dotazy na záznamy typu AAAA zdejších strojů na typ A a odpovědi pak mapuje na IPv6 adresy ze speciálního vyhrazeného prefixu (v našich příkladech používáme 2001:db8:1:eeee::/64). //totd// není plnohodnotným DNS serverem, potřebuje spolupracovat se skutečným serverem, jehož prostřednictvím bude řešit dotazy. V konfiguračním souboru //totd.conf// mu zadáte adresu tohoto serveru (např. 2001:db8:1:1::aa) a prefix, který má používat pro mapování IPv4 adres:
forwarder 2001:db8:1:1::aa
prefix 2001:db8:1:eeee::
===== Odkazy =====
* [[http://www.netbsd.org/Documentation/network/ipv6/|Návod pro NetBSD]]