====== 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]]