Weekend Prosjekt: Overgang til IPv6

Dette er vår tredje artikkel i helgen Prosjekt serien. Våre siste Linux.com resultatene fra undersøkelsen fortalte oss at du ønsker flere tutorials på området, så denne serien kjører på fredager og inkluderer lengre opplæringsprogrammer for å gi Linux-brukere med et morsomt prosjekt å begi seg over helgen. Vennligst dele med dine venner og kolleger og ha det gøy med det! Og, som alltid, gi oss beskjed hvis det er nyttig og hva andre emner du ønsker å se i denne serien.

Overgang til IPv6

Internet Protocol versjon 4 (IPv4) har sikkert tjent verden godt over de siste tiårene, men det er ingen grunn til å klamre seg til det før den bitre slutt. Du kan begynne å bruke sin erstatning IPv6 på Linux-maskiner og hjemmenettverk i dag.


Kjenn protokoller Hvis du ikke har jobbet med IPv6 før, du kan ha bare hørt ett faktum om det: at dens utvide, er 128-bit adressering så mye større enn IPv4 32-bit plass at det aldri må bli utvidet igjen. De curmudgeons kan mumle, " aldri si aldri " på den påstanden, men det er sant at de siste uforbeholden IPv4-adresseblokker er spådd til å bli brukt opp innen september 2011, noe som medførte ISPer og bedrifter vil bli tvunget til å begynne å bruke IPv6 for å rulle ut nye nettverk. Likevel, hvis du leser dette Weekend Project, så du er
koblet til Internett, så IPv4 adresse uttømming ikke har rammet deg ennå. Men det er mye mer å IPv6 enn bare sin store adresseområdet. IPv6 har innebygde IPSec sikkerhetsfunksjonene som er valgfrie i IPv4 (og dermed, sjelden tilbys til forbrukerne ved ISP), større pakke nyttelast kalt jumbograms som øker nettverkseffektivitet, innebygd støtte for mobile nettverksenheter som flytter fra et tilknytningspunkt til en annen som de reiser, forenklet ruting og adresse automatisk konfigurering. Noen av disse niceties er tilgjengelige for IPv4-nettverk gjennom andre virkemidler, selvfølgelig. DHCP er vanlig å tillate automatisk adressetildeling - IPv6 bygger samme funksjonalitet rett inn i IP-protokollen. Fordi det er en lav-lags protokollen, trenger programmer (med svært få unntak) ikke bryr seg om de kjører på toppen av IPv4 eller v6. Komme i gang med IPv6 starter med å forstå IPv6-adresser. Mange av IPv6 nye funksjoner er mulig fordi protokollen bruker 128-bits mer intelligent; hovedsak, det er så mye plass at protokollen bruker adressen til å legge ned hierarkisk informasjon om nettverket, ikke bare tildele en unik kombinasjon av biter til hver vert. Dette er mulig fordi hver nettverksgrensesnitt kan ha flere adresser tildelt det, med forskjellige prefikser. For eksempel prefikset " fe80 :: " indikerer at en adresse er knytte lokale. Rutere ikke fremover adresse for lokalt trafikk; det er kun gyldig på den umiddelbare Ethernet-segmentet (eller tilsvarende). En enhet kan bruke sin adresse for lokal å kringkaste forespørsler om stedsomfattende eller globale adresser, og bare den nærmeste ruteren vil svare, mye enklere konfigurasjon. Prefikset " 2002 :: " angir at en adresse er en adresse 6to4 overgang. 6to4 er en mekanisme som IPv6 noder kan tunnel trafikk gjennom inkompatible, IPv4-bare nettverkssegmenter. Adressen strukturen inneholder også andre spesielle multicast og " anycast " adressetyper å implementere andre funksjoner. Fordi IPv6-adresser kapsle ruting og nettverksinformasjon på denne måten, hvordan best å rulle ut IPv6 på din Linux-maskin avhenger delvis av hvordan nettverket er satt opp - spesielt på hvorvidt du er bare bekymret for en enkelt boks, eller ønsker å sette opp flere bokser - og hvordan du kobler deg til Internett oppstrøms. Komme i gang, men begynner på samme sted: kjernen. The Linux Kernel og verktøy på Linux-kjernen har støttet IPv6 siden starten, rundt 1996, og har tilpasset for å holde tritt med de endringer og forbedringer av IPv6-relaterte RFCs gjennom årene. I dag, nesten ingen Linux-distribusjon skip en kernel som ikke inkluderer IPv6 modulen kompilert og lastet som standard. Man kan teste for tilstedeværelse på flere måter, selv om. Det enkleste er å se inne i /proc /net /katalog; hvis /proc /net /if_inet6 (og andre oppføringer) er til stede, er IPv6-modulen lastet. Hvis ikke, kan du laste den med modprobe ipv6. Neste opp er å undersøke nettverksgrensesnitt og se om de er konfigurert for IPv6. Kjør ip -6 adr showet dev eth0 (som root); produksjonen vil liste opp alle IPv6-adresser som er tildelt eth0 nettverkskort (hvis du bruker eth1 eller annet grensesnitt, bare erstatte den i foregående kommandoen). Du vil se minst en fe80 :: adresse for lokalt. Hvis du har flere IPv6-adresser som allerede er tilordnet, så er du allerede oppe og går, og resten av denne guiden vil ikke være av mye bruk. For alle bare komme i gang, selv om, er linken lokal adresse sannsynlig den eneste rapportert av ip
. Den andre store hinderet for en IPv6-overgangen er DNS-oppslag. Mens IPv6-adresser kan være nås direkte, de fleste brukerprogrammer operere på DNS-poster, og som standard enkelte DNS-servere ikke prøve IPv6 distinkte " AAAA " postene først. Dette var kilden til en mye omtalt feil i Ubuntu flere utgivelser siden. For å se om du kan slå opp IPv6-vertsnavn, kjøre host -t AAAA ipv6.google.com. Du kan forsøke å slå noen vertsnavn på denne måten, men det må være en med en IPv6 posten, derfor bør du velge en kjent-å-være-on-IPv6 målet. Hvis kravet ikke er den enkleste løsning for å velge nye DNS-servere - de fleste av de gratis, offentlig tilgjengelige servere nå støtter IPv6-oppslag; du er sannsynlig å støte på problemer dersom du bruker din ISP standard DNS-servere. Til slutt, hvis du er bak en brannmur, må du passe på at den ikke er konfigurert til å blokkere IPv6-pakker; de er IP protokollnummer 41, og ikke er det samme som IPv4-pakker. Hvordan du gjør dette avhenger av brannmur som du kjører, men brannmurer alle Linux i vanlig bruk støtte det. Komme seg rundt LAN Som nevnt ovenfor, hvis din IPv6-nettverk stabelen kjører, bør Ethernet eller WiFi-grensesnitt automatisk hente en adresse for lokal. Men for å koble til andre maskiner, vil du trenge en ekstra adresse. Som med IPv4, kan du tilordne en adresse selv med et kommandolinjeverktøy som ifconfig, forutsatt at du velger en gyldig adresse. For testformål, for eksempel mellom to bokser på hjemmenettverket, er dette en akseptabel metode - selv om du vil ha en mer permanent løsning lenger ned i veien. Du kan tildele en unik lokal adresse (ULA) selv uten frykt for å kollidere med en annen IPv6 vert. De begynner med prefikset " fc00 :: " og er ment å inneholde et tilfeldig generert streng, selv om det foreløpig ikke kanoniske måte å velge dette. For testformål, kan du tilordne en med ifconfig eth0 inet6 legge fc00: XXXX :: 1/64. Hvis du ønsker, kan du registrere din tilfeldig ULA prefiks med den uoffisielle indeksen på SixXS.net, selv om dette ikke er nødvendig. Når du setter opp to eller flere IPv6-verter på samme nettverk, kan du teste om de kan nås fra hverandre ved hjelp av ping6
, en IPv6-only gjennomføring av ping. Bare kjøre ping6 fc00: XXXX :: 1, erstatte den aktuelle prefikset i stedet for XXXX. Du kan finne referanser til egen lokal
adresser (i motsetning til å koble lokale) i noen referansemateriale; Dette er en type adresse med prefikset " fec0: " og det er nå foreldet; Ulas er erstatningen. Koble til resten av Internett To maskiner i samme nettverk å kunne ping6 hverandre er fint, men det er ikke noe å skrive hjem om. Overgangen har også å gjøre rede for å koble til IPv6-kompatible vertene til IPv6-tilkoblet Internett stevning stor. Hvordan best å forfølge dette avhenger av nettverkstilkoblingspunkt. Hvis maskinen har en statisk IP-adresse, kan du bruke en gratis 6to4 tunnel megler (som Hurricane Electric eller SixXS), som vil tillate deg å rute IPv6-trafikk selv gjennom lite samarbeidsvillig IPv4-bare ISPer bruker 6to4 " stafett rutere. &Quot; 6to4 adresser bruke prefikset 2002: fulgt av IPv4-adressen til verten, som for eksempel 2002: ABCD :: - det er på grunn av denne ordningen som en 6to4 vert må ha et tilgjengelig IPv4-adresse; en NAT-adresse som 192.168.15.1 er ikke unik. Når du har registrert deg hos en 6to4 tunnel megler, sette opp tunnelen er så enkelt som å kjøre noen konfigurasjon kommandoer. Start med ip tunnel legge my6to4 modus sitte fjern noen lokale ABCD, etterfulgt av ip lenken sett dev my6to4 opp. Dette skaper en ny virtuell nettverksgrensesnitt som heter my6to4, så aktiverer den. Du må da tildele 6to4 adresse til tunnelen enhet, med en kommando som ip adr legge 2002: ABCD :: 1/16 dev my6to4 - men husk å først konvertere den ABCD IPv4-adresse til sin heksadesimal form. Til slutt, ip -6 route add :: /0 via :: 192.88.99.1 dev my6to4 metriske 1026 legger den aktuelle ruteinformasjon - å sende all IPv6-trafikk gjennom my6to4 grensesnittet. Et langt, langt enklere løsning for de fleste grunnleggende oppsett er å hoppe 6to4 og bruke Teredo-protokollen i stedet. Som 6to4, er Teredo en offisiell IPv4-til-IPv6 " overgang mekanisme, " men det er helt automatisk, og enda bedre, det fungerer selv for de vertene som gjør ikke
ha en statisk IPv4-adresse (som inkluderer de fleste ISP kunder). Ulempen er at Teredo griper en ny IPv6-adresse på hver restart, noe som gjør vedvarende tilkoblinger og kjører servere umulig. Linux gjennomføring av protokollen kalles Miredo. De fleste distribusjoner pakke det; Hvis din gjør ikke at du kan hente det fra prosjektets nettsted. Når programmet er installert, bare kjøre miredo som root; tjenesten gyter i bakgrunnen og henter en IPv6-adresse. Det er alt som skal til. Du kan teste sin effektivitet ved å kjøre ping6 ipv6.google.com (eller ping6'ing annen IPv6 host). Så enkelt som det høres ut, de fleste andre Linux-programmer fungerer fint over IPv6 uten ekstra skritt som kreves. Du kan teste om Firefox eller en annen nettleser er riktig å koble over noen av de ovennevnte IPv6 konfigurasjoner ved å besøke www.kame.net. Nettstedet reagerer ulikt avhengig av om du nå den via IPv4 eller IPv6. På IPv4, vil du se en statisk PNG-bilde av en skilpadde på toppen av siden. På IPv6, vil du se en animasjon av skilpadde svømming i stedet. I det store og resten av Internett vil ikke
virke mer spesielle eller magisk på IPv6; du kan få tilgang til Googles IPv6-only søkemotor, som kan være raskere, og noen brukere som kjører sine egne web- og e-posttjenere rapportere drastisk lavere tilfeller av spammere og denial-of-service angrep, men den virkelige moroa er funnet i den forbedrede routing og automatisk konfigurering; det er lett å venne seg til. Videre arbeid Begge tunnel teknikkene beskrevet ovenfor (6to4 og Teredo) fungerer godt for enkeltmaskiner, men hvis du har tenkt å kjøre et IPv6-nettverk hjemme eller på kontoret, det er heller ikke ideelt. For det er det beste alternativet for å sette opp en maskin eller ruter på nettverket som den lokale endepunkt for en 6to4 tunnel, og bruke IPv6 er statsløs autokonfigurasjon for alle de andre datamaskinene. For dette, må du utpeke en maskin som " router annonsør " (formodentlig gateway). Denne maskinen vil lytte til router oppfordring forespørsler kringkastet over det lokale nettverket ved IPv6 klienter som bruker deres kobling lokale adresser, og deretter svare på hver av dem, tildele unik adresse. Dette er beslektet med oppførselen til en DHCP server med IPv4. På Linux, er den foretrukne pakke for å utføre denne oppgaven ruteren reklame daemon, radvd. Installasjonen er ikke komplisert, men det finnes noen alternativer, som arbeider med eller uten 6to4. Hvis du segment nettverket ditt, kan du også må ta spesielle forholdsregler for å sikre at klienter på ett ledd kan nå radvd server - husk, klientene bruk link lokale adresser for å prøve og finne serveren, slik at de må være på det samme nettverkssegment. Dette kan også påvirke WiFi klienter, hvis ruteren aktuelle holder WiFi og kablet sider av LAN separat. Når du har fått kjennskap til grunnleggende radvd, men det er fortsatt mye i IPv6 for å lære - vi har ikke engang rørt på Mobile IPv6 eller IPSec, som begge er interessante temaer i sin egen rett. Hvis du er interessert i en helg prosjekt tutorial på Mobile IPv6 eller IPSec stemme med dine kommentarer i avsnittet nedenfor!