M13 IPv6 osoitteet
Takaisin opintojakson aikatauluun
Opetusvideot
Video: Tietoverkot, IPv6 osoitteet
Microsoft Stream (sharepoint) video
Tausta
Ote RFC:stä kenties selittää parhaiten motivaatioita IPv6:lle. Tärkeimpinä kohtina.
- Osoiteavaruuden kasvatus (32 bit -> 128 bit)
- Otsikon rakenteen yksinkertaistaminen (64 bittisille prosessoreille)
RFC 8200 - Internet Protocol, Version 6 (IPv6) Specification
IP version 6 (IPv6) is a new version of the Internet Protocol (IP), designed as the successor to IP version 4 (IPv4) RFC791. The changes from IPv4 to IPv6 fall primarily into the following categories:
- Expanded Addressing Capabilities
- Header Format Simplification
- Improved Support for Extensions and Options
- Flow Labeling Capability
- Authentication and Privacy Capabilities
Internet Header versio 6
Versio (4 bit)
Varattu kenttä otsikon versiolle. Joko arvo 4 tai 6. Eli IPv6:ssa 0110
.
Traffic Class (8 bit)
Liikenne luokka paketille. Tunnetaan Type of Service -kenttänä IPv4:ssä ja sisältää Differentiated Service Code Point (DSCP) -bitit näinä päivinä.
Flow Label (20 bit) suom. vuoleima
Tietoliikennevuot tunnistetaan yleensä 5-kentän arvona (LähdeIP, KohdeIP, LähdePortti, KohdePortti, Protokolla), mutta NAT, pakettien pilkkominen ja salaus voi muuttaa näitä kenttiä.
Vuoleima on uusi kenttä IPv6:ssa tunnistamaan yksittäisen tietoliikenteen kahden tahon välillä. Tämä auttaa prosessoimaan paketteja niiden reitityspolulla.
Payload Length (16 bit) suom. kuormanpituus
Mikä paketin kokonaispituus on tavuissa (sisältäen otsikon ja datan).
Next Header (8 bit) suom. seuraava otsikko
Aiemmin tunnettiin Protokolla -kenttänä IPv4:ssa. Käyttää samoja arvoja kuin se.
M03 IPv4 Addresses, Subnetting and ARP
Osoittaa seuraavan protokollan paketissa. Olkoot TCP, UDP, ICMP tai jotain muuta. IANA listaa nämä protokollat
Tyypilliset arvot tällä opintojaksolla:
Value | Protocol |
---|---|
1 | ICMP |
6 | TCP |
17 | UDP |
Hop Limit (8 bit) suom. hyppyjen raja
Identical with Time To Live in IPv4.
M03 IPv4 Addresses, Subnetting and ARP
Jos tämä kenttä on 0, pakettia ei voi edelleen lähettää. Yleensä lähettäessä kenttään asetetaan arvo 64 - 255 välillä. Jokainen reitityspäätös matkalla vähentää arvoa yhdellä.
Source Address (128 bit) suom lähdeosoite
IPv6 paketteja lähettävän tietokoneen Lähdeosoite.
Destination Address (128 bit) suom kohdeosoite
IPv6 paketin vastaanottavan tietokoneen Kohdeosoite.
IPv6 osoitteistus
Osoiteavaruus esitetään (meille ihmisille) kahdeksan eri heksadesimaalin sarjoina, jotka erotetaan kaksoispisteellä :
. Esimerkki olisi
2001:dead:beef:acdc:1234:5678:abcd:ef12
Valitettavasti tietokoneet eivät käsittele hexana tai kokonaislukuina numeroita, eli sama osoite binäärinä olisi
0010000000000001:1101111010101101:1011111011101111:1010110011011100:1010110011011100:0101011001111000:1010101111001101:1110111100010010
10-lukujärjestelmää (desimaaliluku) ei käytetä IPv6:ssa (toisin kuin IPv6:ssa).
IPv6 osoitteen esitystavat
IPv6 osoitteen voi lyhentää kerran kaksois-kasoispisteellä eli ::
.
2001:0000:0000:0001:0000:0000:0000:0005
olisi lyhennettynä 2001:0000:0000:0001::5
.
Heksadesimaalit eivät ole niin "elektroniikkaa läheisiä", kuten binääri on. Täten,
- nollia ei tarvitse kirjoittaa
- Mutta jos 4 heksadesimaalin sarja on 0, se täytyy ilmoittaa yhdellä nollalla
2001:0000:0000:0001::5
olisi siis 2001:0:0:1::5
Ja nämä lyhennyssäännöt voivat olla todella raivostuttavia muistaa IPv6:sta.
Aliverkotus
Aliverkotus toimii tismalleen samalla tavalla kuin IPv4:ssa. Eli opettele Subnetting works exactly the sameway as in IPv4. Eli opettele se IPv4 aliverkotus ja osaat IPv6:sen.
Mutta koska osoiteavaruus on niin valtava... ei ole tarvetta pienille aliverkoille!!!
Oletusaliverkko työasemille on siis /64
.
Tämä tarkoittaa että yhdellä aliverkolla (VLAN:lla) on 64 host bittiä käytössä, eli 2`64 = 18 446 744 073 709 551 616 käytettävää osoitetta päätelaitteille.
Tyypillinen aliverkon koko
- /64 - lähes kaikkialle
- /127 - pisteestä pisteeseen linkeille (huom! väittelyä käydään tästä yksityiskohdasta)
- /128 - loopback osoitteet
Minun suositukseni on tälle opintojaksolle käyttää /64 aliverkkoja kaikkialla paitsi loopback -rajapinnoissa.
IANA rekisteröinti
IANA jakelee /48
kokoisia osoiteavaruuksia tahoille, jotka haluavat saada IPv6 osoitteita. Internet palveluntarjoajat (ISP:t) saavat /32
. Tämä johtaa seuraavaan visualisointiin osoiteavaruudesta:
IPv6 osoitetyyppejä
Tarkoitus | IPv6 Prefix (suom. osoitealku) | IPv4 rinnakkaisuus | kommentit |
---|---|---|---|
Global Unicast | 2000::/3 | Ei vastaavaa yksittäistä osoiteavaruutta IPv4:ssa | IPv6:sta suunnitellessa oli luksusta nauttia IPv4:sen kokemuksista. Pystyttiin jakamaan osoiteavaruus tarkemmin/viisaammin. Käytetään Unicast reitityksessä. |
Multicast | ff00::/8 | 224.0.0.0/4 | Yhdeltä taholta usealle, muttei kaikille. Multicast on kokonaan oma kokonaisuutensa. Käytetään esim. live-TV:n lähetykseen IP-verkoissa. |
Link-Local Addresses | fe80::/10 | 169.254.0.0/16 | Jos DHCP -palvelinta ei ole saatavilla, luo/ota käyttöön osoite tästä osoiteavaruudesta. IPv6 generoi linkkikohtaisen osoitteen vaikka DHCP olisikin. Käytetään liikenteen edelleen lähetykseen (reitityksessä). |
Loopback | ::1/128 | 127.0.0.1 | IP osoite jolla työasema/päätelaite voi kommunikoida itsensä kanssa (ei pidä not to be confused with router loopbacks) |
Konfiguraatioesimerkit
Dual-Stack?
Dual-stack (suom. kaksoispino?) tarkoittaa rinnakkaista toteutusta IPv4:lle ja IPv6:lle samassa tietoverkossa. Yleensä tämä tilanne on, jos halutaan saumattomasti siirtyä IPv6:seen.
Saadakseen topologian toimimaan... tässä on muutamia konfiguraatioesimerkkejä.
Topologiakonfiguraatio
IPv6 on OSI mallin kerroksen 3 protokolla, eli VLAN tag/untag asiat eivät muutu. Eli älä koske niihin!
Vyos
interfaces {
ethernet eth0 {
duplex auto
hw-id 08:00:27:87:12:ef
smp-affinity auto
speed auto
vif 5 {
address 192.168.0.254/24
address 2001:dead:beef:5::1/64
}
vif 10 {
address 192.168.10.254/24
address 2001:dead:beef:10::1/64
}
vif 15 {
address 192.168.15.254/24
address 2001:dead:beef:15::1/64
}
}
}
Reititys IPv6:ssa
Käytämme OSPFv3:sta reititykseen IPv6:ssa. Mikä on itseasiassa huomattavasti helpompaa laittaa päälle kuin IPv4:ssa.
set protocols ospfv3 parameters router-id <x.x.x.x>
Jos haluat router-id
olevan määritetty manuaalisesti, käytä set protocols ospf parameters router-id <x.x.x.x>
jossa<x.x.x.x>
on esim. loopback rajapinnan IPv4 osoite.
OSPFv3 tosissaan käyttää IPv4:sta router-id
:nä
set protocols ospfv3 area 0.0.0.0 interface <interface>
Jossa <interface>
on fyysisen rajapinta kytkettynä OSPF reitittimeen esim. eth0
, eth1
, eth0.5
. Sillä rajapinnalla tulee olla IPv6 osoite (ja täten aliverkko) konfiguroituna.
Tällä komennolla on kaksoistarkoitus
- Se lähettää ja vastaanottaa
OSPF Hello
viestejä rajapinnasta johon kyseinen verkko on konfiguroitu - Se lisää verkon OSPF tietokantaan ja rupeaa mainostamaan sitä naapureille
Samanlainen siis kuin set protocols ospf area 0 network <x.x.x.x/xx>
IPv4:ssa.
OSPFv3 konfiguraatioesimerkki Vyos1:llä
protocols {
ospfv3 {
area 0.0.0.0 {
interface eth1
interface eth0.10
interface eth0.15
interface eth0.5
}
parameters {
router-id 10.0.255.1
}
}
}
show ipv6 ospfv3
vyos@vyos:~$ show ipv6 ospfv3
OSPFv3 Routing Process (0) with Router-ID 10.0.255.1
Running 00:09:10
LSA minimum arrival 1000 msecs
Initial SPF scheduling delay 0 millisec(s)
Minimum hold time between consecutive SPFs 50 millsecond(s)
Maximum hold time between consecutive SPFs 5000 millsecond(s)
Hold time multiplier is currently 1
SPF algorithm last executed 00:05:22 ago, reason R+, R-
Last SPF duration 0 sec 234 usec
SPF timer is inactive
Number of AS scoped LSAs is 0
Number of areas in this router is 1
Area 0.0.0.0
Number of Area scoped LSAs is 5
Interface attached to this area: eth1 eth0.10 eth0.15 eth0.5
SPF last executed 322.882917s ago
vyos@vyos:~$
show ipv6 ospfv3 neighbor
vyos@vyos:~$ show ipv6 ospfv3 neighbor
Neighbor ID Pri DeadTime State/IfState Duration I/F[State]
10.0.255.2 1 00:00:34 Full/DR 00:05:45 eth1[BDR]
vyos@vyos:~$
show ipv6 ospfv3 database
vyos@vyos:~$ show ipv6 ospfv3 database
Area Scoped Link State Database (Area 0.0.0.0)
Type LSId AdvRouter Age SeqNum Payload
Rtr 0.0.0.0 10.0.255.1 362 80000002 10.0.255.2/0.0.0.2
Rtr 0.0.0.0 10.0.255.2 363 80000002 10.0.255.2/0.0.0.2
Net 0.0.0.2 10.0.255.2 363 80000001 10.0.255.2
Net 0.0.0.2 10.0.255.2 363 80000001 10.0.255.1
INP 0.0.0.0 10.0.255.1 362 80000005 2001:dead:beef:5::/64
INP 0.0.0.0 10.0.255.1 362 80000005 2001:dead:beef:10::/64
INP 0.0.0.0 10.0.255.1 362 80000005 2001:dead:beef:15::/64
INP 0.0.0.2 10.0.255.2 363 80000001 2001:dead:beef:ffff::/64
I/F Scoped Link State Database (I/F eth1 in Area 0.0.0.0)
Type LSId AdvRouter Age SeqNum Payload
Lnk 0.0.0.3 10.0.255.1 402 80000001 fe80::a00:27ff:fe60:f9e5
Lnk 0.0.0.2 10.0.255.2 433 80000001 fe80::a00:27ff:fe97:f917
I/F Scoped Link State Database (I/F eth0.10 in Area 0.0.0.0)
Type LSId AdvRouter Age SeqNum Payload
Lnk 0.0.0.6 10.0.255.1 402 80000001 fe80::a00:27ff:fe87:12ef
I/F Scoped Link State Database (I/F eth0.15 in Area 0.0.0.0)
Type LSId AdvRouter Age SeqNum Payload
Lnk 0.0.0.5 10.0.255.1 402 80000001 fe80::a00:27ff:fe87:12ef
I/F Scoped Link State Database (I/F eth0.5 in Area 0.0.0.0)
Type LSId AdvRouter Age SeqNum Payload
Lnk 0.0.0.7 10.0.255.1 401 80000001 fe80::a00:27ff:fe87:12ef
AS Scoped Link State Database
Type LSId AdvRouter Age SeqNum Payload
show ipv6 route
vyos@vyos:~$ show ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route
O 2001:dead:beef:5::/64 [110/1000] is directly connected, eth0.5, 00:05:20
C>* 2001:dead:beef:5::/64 is directly connected, eth0.5, 00:16:56
O 2001:dead:beef:10::/64 [110/1000] is directly connected, eth0.10, 00:05:20
C>* 2001:dead:beef:10::/64 is directly connected, eth0.10, 00:16:56
O 2001:dead:beef:15::/64 [110/1000] is directly connected, eth0.15, 00:05:20
C>* 2001:dead:beef:15::/64 is directly connected, eth0.15, 00:16:08
O 2001:dead:beef:ffff::/64 [110/100] is directly connected, eth1, 00:04:41
C>* 2001:dead:beef:ffff::/64 is directly connected, eth1, 00:08:23
C * fe80::/64 is directly connected, eth2, 00:16:49
C * fe80::/64 is directly connected, eth0.5, 00:16:57
C * fe80::/64 is directly connected, eth0.10, 00:16:57
C * fe80::/64 is directly connected, eth0.15, 00:16:57
C * fe80::/64 is directly connected, eth0, 00:17:00
C>* fe80::/64 is directly connected, eth1, 00:17:00
Testataan IPv6
ping 2001:dead:beef:5::2
lubuntu@lubuntu-virtualbox:~$ ping 2001:dead:beef:5::2
PING 2001:dead:beef:5::2(2001:dead:beef:5::2) 56 data bytes
64 bytes from 2001:dead:beef:5::2: icmp_seq=1 ttl=62 time=1.94 ms
64 bytes from 2001:dead:beef:5::2: icmp_seq=2 ttl=62 time=1.91 ms
64 bytes from 2001:dead:beef:5::2: icmp_seq=3 ttl=62 time=1.85 ms
^C
--- 2001:dead:beef:5::2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.848/1.901/1.944/0.039 ms
traceroute6 -n 2001:dead:beef:5::2
lubuntu@lubuntu-virtualbox:~$ traceroute6 -n 2001:dead:beef:5::2
traceroute to 2001:dead:beef:5::2 (2001:dead:beef:5::2) from 2001:dead:beef:100::2, 30 hops max, 24 byte packets
1 2001:dead:beef:100::1 0,3609 ms 0,3082 ms 0,2942 ms
2 2001:dead:beef:ffff::1 1,0319 ms 0,5650 ms 0,5187 ms
3 2001:dead:beef:5::2 1,9101 ms 1,5855 ms 1,4349 ms
Selaillaan IPv6 osoitteita Firefox:lla
ssh vyos@2001:dead:beef:5::1
lubuntu@lubuntu-virtualbox:~$ ssh vyos@2001:dead:beef:5::1
The authenticity of host '2001:dead:beef:5::1 (2001:dead:beef:5::1)' can't be established.
ECDSA key fingerprint is SHA256:+kmN6RAKQNLfon9nVgc3Bw3RfnF0DKyd5gDPPKd48Tw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '2001:dead:beef:5::1' (ECDSA) to the list of known hosts.
Welcome to VyOS
vyos@2001:dead:beef:5::1's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 28 19:18:41 2020 from 2001:dead:beef:10::2
vyos@vyos:~$
/etc/hosts
toimii samalla tavalla IPv6:lle
lubuntu@lubuntu-virtualbox:~$ more /etc/hosts
# Host addresses
127.0.0.1 localhost
127.0.1.1 lubuntu-virtualbox
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
2001:dead:beef:10::2 lubuntu1.karo.saharinen
lubuntu@lubuntu-virtualbox:~$ ping lubuntu1.karo.saharinen
PING lubuntu1.karo.saharinen(lubuntu1.karo.saharinen (2001:dead:beef:10::2)) 56 data bytes
64 bytes from lubuntu1.karo.saharinen (2001:dead:beef:10::2): icmp_seq=1 ttl=62 time=1.99 ms
64 bytes from lubuntu1.karo.saharinen (2001:dead:beef:10::2): icmp_seq=2 ttl=62 time=3.14 ms
64 bytes from lubuntu1.karo.saharinen (2001:dead:beef:10::2): icmp_seq=3 ttl=62 time=2.09 ms
^C
--- lubuntu1.karo.saharinen ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.994/2.408/3.138/0.517 ms
lubuntu@lubuntu-virtualbox:~$
Jatka harjoituksiin!
E16 Tehdään verkosta Dual-Stack
Takaisin opintojakson aikatauluun?
Takaisin opintojakson aikatauluun
Lisenssi
Tämän opintojakson materiaalin on kirjoittanut Karo Saharinen ja se on lisensoitu Creative Commons Nimeä-EiKaupallinen-EiMuutoksia 4.0 Kansainvälinen -lisenssillä.