IPv6. Hrvoje Popovski i Ivan Rako Sveučilišni računski centar (Srce)

Величина: px
Почињати приказ од странице:

Download "IPv6. Hrvoje Popovski i Ivan Rako Sveučilišni računski centar (Srce)"

Транскрипт

1 IPv6 Hrvoje Popovski i Ivan Rako Sveučilišni računski centar (Srce)

2 Sadržaj Uvod Osnove mreža Usporedba IPv4 IPv6 IPv6 adresiranje Autokonfiguracija Tranzicijski mehanizmi Dual-stack IPv6 i Linux

3 Uvod 1977 Dr. Vint Cerf, prepoznat kao the fathers of the Internet, izjavljuje 32 bits should be enough address space for Internet 1981 RFC791 definira 32 bitni IPv4 protokol, svjetska populacija broji oko 4,5 milijarde 1998 RFC 2460 definira 128 bitni IPv6 protokol, svjetska populacija broji oko 6 milijardi 1999 RFC-om 2663 definiran je NAT i postaje popularan zbog iscrpljenosti IPv4 adresnog prostora G mobilna telefonija 2004 native IPv6 link CARNet GEANT

4 Osnove mreža Osi model

5 Osnove mreža EtherType 16 bitno polje koje označava koji je protokol enkapsuliran kao korisni sadržaj u Ethernet frame-u Npr. 0x0800 za IPv4 sadržaj MAC adresa 48 bitna jedinstvena oznaka mrežnog adaptera Npr. 90:e2:ba:19:29:a8 IPv4 adresa jedinstvena 32 bitna oznaka internet hosta Npr IPv4 mrežna maska 32 bitna oznaka mreže Npr ili po CIDR notaciji /24

6 Usporedba IPv4 IPv6 Broj raspoloživih adresa IPv4 32 bita - 4,3 milijarde adresa IPv6 128 bita ^28 adresa per živi Homo sapiens Multicast IPv4 broadcast vs multicast IPv6 ne postoji tradicionalni broadcast, sve je multicast Autokonfiguracija hostova IPv4 putem dhcp-a, potrebna konfiguracija dhcp servera IPv6 automatska konfiguracija krajnjih hostova na mreži Usmjeravanje IPv4 prevelike tablice usmjeravanja IPv6 pojednostavljeno i brže usmjeravanje

7 Usporedba IPv4 IPv6 Moblinost IPv4 postoji, ali nema dovoljno mehanizama IPv6 ugrađeno u samom protokolu, efikasno kao i samo IPv6 usmjeravanje Sigurnost IPv4 nema podršku u samom protokolu IPv6 ima podršku za IPSEC Dodatna zaglavlja IPv4 postoje, ali ih nije jednstavno implementirati IPv6 implementiranje jednostavno Zaglavlje paketa IPv4 sastoji se od 14 polja od kojih su 13 obavezna IPv6 pojednostavljeno, manje polja, fiksna duljina od 40 okteta

8 IPv4 format zaglavlja

9 IPv6 format zaglavlja

10 IPv6 adresiranje IPv6 koristi 128 bitova za adresiranje 2^128 adresa Adresa je podijeljena u 8 grupa, svaka po 16 bitova odijeljenih dvotočkom : Grupe su heksadecimalni zapisi od 4 znamenke 2001:0db8:000e:face:7d46:c954:388a:069d grupa bita

11 IPv6 adresiranje IPv6 adrese imaju dodatni routing prefix koji označava mrežni i računalni dio Prefiks je od IPv6 adrese odvojen je slash-om / i zapis je decimalan Mrežni dio označava bitove koji su uvijek isti za zadanu mrežu i može se odmah pročitati iz prefixa IPv6 adresa i prefix 2001:0db8:000e:2341:7d46:c954:388a:069d/ = 48 Adresa se nalazi unutar IPv6 mreže koja počinje adresom 2001:0db8:000e:0000:0000:0000:0000:0000 I završava IPv6 adresom 2001:0db8:000e:ffff:ffff:ffff:ffff:ffff

12 IPv6 adresiranje Računalni dio označava broj hostova koje sadrži mreža IPv6 mreža 2001:0db8:000e:0000:0000:0000:0000:0000/ = 80 Navedena mreža ima 5 grupa po 16 bitova za računalni dio što iznosi 80 bitova ili 2^(128-48) = 2^80 raspoloživih adresa Što je mrežni prefix manji, to je računalni dio veći

13 Prezentacija IPv6 adresa Cijelu IPv6 adresu poprilično je nezgodno pisati, zato postoji sažimanje Puni zapis IPv6 adrese :0db8:1230:0000:0000:0000:0000:0001 Jednostavniji zapis IPv6 adrese :db8:1230:0:0:0:0:1 Preporuka je izbaciti 16 bitne grupe koje sadrže samo nule Potpuno sažeta IPv6 adresa 2001:db8:1230::1 U ovom primjeru izbacili smo adresni prostor od 2^64 hostova Sažimanje grupa koje imaju samo :0000: :0000:0000: :: :0000:0000:0001: ::1

14 Prezentacija IPv6 adresa Ako u adresi postoji samo jedna grupa :0000:, ona se ne sažima 2001:db8:0000:1:1:1:1:1 -> 2001:db8:0:1:1:1:1:1 U IPv6 adresi grupe se mogu sažeti samo jednom Ako postoji mogućnost sažeti više 16 bitnih grupa, tada se sažima prva lijevo 2001:db8:0:0:1:0:0:1 može se zapisati kao 2001:db8:0:0:1::1 nije preporučeno 2001:db8::1:0:0:1 preporučeno Preporuka je koristiti mala slova u heksadecimalnom zapisu

15 Prezentacija IPv6 adresa Primjer punih IPv6 adresa 2001:db8:0:0:8:800:200c:417a - unicast adresa ff01:0:0:0:0:0:0:101 - multicast adresa 0:0:0:0:0:0:0:1 - loopback adresa 0:0:0:0:0:0:0:0 - unspecified adresa Primjer sažetih IPv6 adresa 2001:db8::8:800:200c:417a - unicast adresa ff01::101 - multicast adresa ::1 - loopback adresa :: - unspecified adresa

16 Delegacija IPv6 adresa IANA delegira IPv6 adresni prostor na svjetskoj razini Trenutno je u upotrebi 2000::/3 mreža Od 2000:0000:0000:0000:0000:0000:0000:0000 Do 3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff IANA dodjeljuje RIR-evima /12 ili /23 mreže RIR dodjeljuje LIR-evima ili ISP-ovima /19 ili /32 IPv6 adresni prostor CARNet-a je 2001:b68::/32 LIR-evi ili ISP-ovi krajnjim korisnicima dodjeljuju /48 ili /56 mreže Mreži administratori na ustanovama dodjeljuju /64 mreže po VLAN-u

17 Delegacija IPv6 adresa Primjer: RIPE je CARNet-u dodjelio /32 mrežu - /32 je 2^96 hostova /32 je /48 mreža CARNet dodjeli ustanovi /48 mrežu - /48 je 2^80 hostova /48 je /64 mreža Administrator na ustanovi dodjeljuje /64 po VLAN-u - /64 je 2^64 hostova Cijeli IPv4 adresni prostor je 2^32 ili hostova Jedna dodijeljena IPv6 mreža po VLAN-u ima 2^64 ili hostova

18 Posebne IPv6 adrese Unspecified address - ::/128 i IPv /32 Default route - ::/0 IPv /0 Unique Local address fc00::/7 IPv4 10/8, /12, /16 Documentation 2001:db8::/32 Local address ::1/128 loopback IPv /32 fe80::/10 link-local unicast Pošto se IPv6 još razvija, za detalje je najbolje pratiti RFC-ove i Wiki

19 Posebne IPv6 adrese Primjer link-local adrese bge1: flags=8843<up,broadcast,running,simplex,multicast> mtu 1500 lladdr 00:13:21:ae:08:a6 priority: 0 media: Ethernet autoselect (1000baseT full-duplex) status: active inet netmask 0xffffffc0 broadcast inet6 fe80::213:21ff:feae:8a6%bge1 prefixlen 64 scopeid 0x2 inet6 2001:7f8:28::1 prefixlen 48 Iako je za link-local određena mreža fe80::/10, nekonfigurirano mrežno sučelje dobije /64 mrežu jer 54 bita moraju biti 0 (RFC 4291)

20 Autokonfiguracija Stateless address autoconfiguration (SLAAC) IPv6 hostovi se mogu autokonfigurirati čim se spoje na mrežu Tu autokonfiguraciju omogućuje Neighbor Discovery Protocol (NDP) putem ICMPv6 protokola NDP radi na link layer-u po TCP/IP modelu i odgovoran je za: Autokonfiguraciju hostova Pronalazak link layer adresa ostalih hostova Detektiranje dupliciranih adresa Pronalazak usmjernika i DNS-ova Održavanje vidljivosti na mreži ICMPv6 ima sličnu funkciju kao ARP u IPv4

21 Autokonfiguracija Linux eth0 Link encap:ethernet HWaddr 00:0f:fe:68:71:b7 inet addr: Bcast: Mask: inet6 addr: fe80::20f:feff:fe68:71b7/64 Scope:Link inet6 addr: 2001:b68:e:face:20f:feff:fe68:71b7/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:0 overruns:0 frame:0 TX packets: errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes: (18.3 GB) TX bytes: (108.4 GB) Interrupt:19 Memory:f f

22 Autokonfiguracija Windows 7 Ethernet adapter Local Area Connection: Connection-specific DNS Suffix. : Description : Intel(R) 82566DM-2 Gigabit Network Connection Physical Address : 00-1E AC DHCP Enabled : No Autoconfiguration Enabled.... : Yes IPv6 Address : 2001:b68:e:face:7d46:c954:388a:69d(Preferred) Temporary IPv6 Address : 2001:b68:e:face:ed8f:7d1a:20f0:b5f2(Preferred) Link-local IPv6 Address..... : fe80::7d46:c954:388a:69d%11(preferred) IPv4 Address : (Preferred) Subnet Mask : Default Gateway : fe80::5:73ff:fea0:a28% DNS Servers : NetBIOS over Tcpip : Enabled

23 Autokonfiguracija DHCPv6 se koristi: ako je potreban centralni management dodjeljivanja adresa kada je potrebno dodjeliti više informacija hostovima od IPv6 adresa, DNS servera, npr. NTP, TFTP i sl. ako iz nekog razloga nije moguće koristiti SLAAC DHCPv6 koristi protokol UDP, port 564 za klijente i 547 za poslužitelje Certificirane verzije DHCPv6 servera od strane ipv6foruma

24 Tranzicijski mehanizmi IPv4 i IPv6 nisu kompatibilni protokoli IPv6 je zastupljen oko 1% na internetu i dok u potpunosti ne zamjeni IPv4 protokol, postojat će razni tranzicijski mehanizmi za uspostavu IPv6 konekcija Na primjer, tuneliranja IPv6 prometa kroz IPv4 su jedna od rješenja koja se baš nisu pokazala najboljim (problemi s MTU-om, kašnjenja) Trenutni draftovi IPv4 residual deployment (4RD) Mapping of Address and Port (MAP)

25 Tranzicijski mehanizmi Tuneliranja Teredo ISATAP Tunnel broker - 6in4 Translacijski mehanizmi Stateless IP/ICMP Translation (SIIT) IPv6 rapid deployment (6RD) Transport Relay Translation (TRT) NAT64 DNS64 Dual-Stack Lite (DS-Lite)

26 Tranzicijski mehanizmi Ispis Windows 7 Teredo tunela (tuneliranje) Tunnel adapter Teredo Tunneling Pseudo-Interface: Connection-specific DNS Suffix. : Description : Teredo Tunneling Pseudo-Interface Physical Address : E0 DHCP Enabled : No Autoconfiguration Enabled.... : Yes IPv6 Address : 2001:0:5ef5:79fb:201a:b5d:5eca:84(Preferred) Link-local IPv6 Address..... : fe80::201a:b5d:5eca:84%14(preferred) Default Gateway : NetBIOS over Tcpip : Disabled

27 Dual-stack Dual-stack IPv4 i IPv6 protokoli implementirani su na krajnjim hostovima Svaki servis koji se oslanja na IP protokol odvojeno komunicira prema IPv4 svijetu i prema IPv6 svijetu Oba protokola koriste istu mrežnu infrastrukuru Tuneliranje nije potrebno OS podrška za dual-stack je dobra Potrebna je IPv6 veza prema internetu

28 Dual-stack IPv4 vs Dual-stack host

29 Dual-stack Dual-stack konfiguracija usmjernika interface Vlan123 ip address ip access-group vl123ip4acl in/out ipv6 address 2001:DB8:1:CAFE::1/64 ipv6 enable ipv6 traffic-filter vl123ip6acl in/out

30 IPv6 i Linux

31 IPv6 i Linux Podrška za IPv6 je na Linuxu podrazumno uključena Svako mrežno sučelje može imati više IPv6 adresa Moguće je svaki servis staviti na svoju IPv6 adresu Ukoliko se koristi više IPv6 adresa, potrebno je svaki servis prilagoditi da sluša na točno određenoj IPv6 adresi

32 Debian IPv6 konfiguracija [...] auto eth0 iface eth0 inet static address netmask network broadcast gateway auto eth0:0 iface eth0:0 inet static address netmask [...] iface eth0 inet6 static address 2001:b68:c:2::76:0 netmask 64 gateway 2001:b68:c:2::1 iface eth0:0 inet6 static address 2001:b68:c:2::76:1 netmask 64 gateway 2001:b68:c:2::1 [...]

33 # ifconfig eth0 ~]# ifconfig eth0 eth0 Link encap:ethernet HWaddr 00:50:56:9a:57:1f inet addr: Bcast: Mask: inet6 addr: 2001:b68:c:2::101:0/64 Scope:Global inet6 addr: 2001:b68:c:2::76:1/64 Scope:Global inet6 addr: 2001:b68:c:2::98:0/64 Scope:Global inet6 addr: 2001:b68:c:2::76:0/64 Scope:Global inet6 addr: 2001:b68:c:2::103:0/64 Scope:Global inet6 addr: 2001:b68:c:2::105:0/64 Scope:Global inet6 addr: 2001:b68:c:2::104:0/64 Scope:Global inet6 addr: 2001:b68:c:2::72:0/64 Scope:Global inet6 addr: 2001:b68:c:2::116:0/64 Scope:Global inet6 addr: 2001:b68:c:2::107:0/64 Scope:Global inet6 addr: 2001:b68:c:2::117:0/64 Scope:Global inet6 addr: 2001:b68:c:2::106:0/64 Scope:Global inet6 addr: fe80::250:56ff:fe9a:571f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:0 overruns:0 frame:0 TX packets: errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes: (657.6 GiB) TX bytes: (1.9 TiB)

34 # nestat rn6 ~]# netstat -rn6 Kernel IPv6 routing table Destination Next Hop Flag Met Ref Use If 2001:b68:c:2::/64 :: UA eth0 fe80::/64 :: U eth0 ::/0 2001:b68:c:2::1 UG eth0 ::/0 ::!n lo ::1/128 :: Un lo 2001:b68:c:2::72:0/128 :: Un lo 2001:b68:c:2::76:0/128 :: Un lo 2001:b68:c:2::76:1/128 :: Un lo 2001:b68:c:2::98:0/128 :: Un lo 2001:b68:c:2::101:0/128 :: Un lo 2001:b68:c:2::103:0/128 :: Un lo 2001:b68:c:2::104:0/128 :: Un lo 2001:b68:c:2::105:0/128 :: Un lo 2001:b68:c:2::106:0/128 :: Un lo 2001:b68:c:2::107:0/128 :: Un lo 2001:b68:c:2::116:0/128 :: Un lo 2001:b68:c:2::117:0/128 :: Un lo fe80::250:56ff:fe9a:571f/128 :: Un lo ff00::/8 :: U eth0 ::/0 ::!n lo

35 # ping6 n ipv6.google.com [root@marun ~]# ping6 -n ipv6.google.com PING ipv6.google.com(2001:4860:4002:800::1012) 56 data bytes 64 bytes from 2001:4860:4002:800::1012: icmp_seq=1 ttl=45 time=162 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=2 ttl=45 time=162 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=3 ttl=45 time=158 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=4 ttl=45 time=162 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=5 ttl=45 time=162 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=6 ttl=45 time=162 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=7 ttl=45 time=166 ms 64 bytes from 2001:4860:4002:800::1012: icmp_seq=8 ttl=45 time=159 ms ^C --- ipv6.google.com ping statistics packets transmitted, 8 received, 0% packet loss, time 7010ms rtt min/avg/max/mdev = / / /2.256 ms

36 # traceroute6 n ipv6.google.com [root@marun ~]# traceroute6 -n ipv6.google.com traceroute to ipv6.google.com (2001:4860:4002:800::1012), 30 hops max, 80 byte packets 1 * * * :b68:ff:ff:a2b:0:7: ms ms ms :b68:ff:ff:a2b:0:4d: ms ms ms :b68:ff:ff:a2b:0:20: ms ms ms :798:10:10aa:: ms ms ms :798:cc:2d01:2d01:: ms ms ms :798:cc:3201:1001:: ms ms ms :798:cc:1001:1e01:: ms ms ms :798:cc:1201:1e01:: ms ms ms :798:cc:1201:1401:: ms ms ms [...] :4860::8:0: ms ms ms :4860::8:0:464f ms ms ms :4860::8:0:2c9c ms ms ms :4860::1:0:57f ms ms ms :4860:0:1:: ms ms ms :4860:8000:1:: ms ms ms

37 # ip -6 neighbour show ~]# ip -6 neighbour show fe80::250:56ff:feb0:1a dev eth0 lladdr 00:50:56:b0:00:1a STALE fe80::207:b3ff:fea5:5c00 dev eth0 lladdr 00:07:b3:a5:5c:00 router REACHABLE fe80::250:56ff:fea3:646c dev eth0 lladdr 00:50:56:a3:64:6c REACHABLE 2001:b68:c:2::69:0 dev eth0 lladdr 00:50:56:b0:00:1a STALE 2001:b68:c:2::70:0 dev eth0 lladdr 00:50:56:a3:64:6c REACHABLE 2001:b68:c:2::1 dev eth0 lladdr 00:07:b3:a5:5c:00 router STALE

38 Osnovni servisi i IPv6 Većina osnovnih servisa će raditi out-of-the-box OpenSSH, vsftpd, Dovecot, MySQL, OpenLDAP, AOSI, FreeRADIUS, ntpd, U slučaju da se koristi ACL, potrebno je prilagoditi prava pristupa i na IPv6 (TCP Wrappers, iptables, ) Potrebne su dodatne konfiguracije za složenije servise DNS (BIND) HTTP (Apache) SMTP (Postfix)

39 DNS (BIND) i IPv6 BIND v9 podržava IPv6 Najprije CARNet treba ustanovama delegirati IPv6 reverzne zone Konfiguracija je jednostavna

40 Reverzne zone - named.conf(.local) zone "c b ip6.arpa" { type master; file "Srce/public/revs/2001:b68:c"; allow-transfer { ; ; ; }; }; zone "d b ip6.arpa" { type master; file "Srce/public/revs/2001:b68:d"; allow-transfer { ; ; ; }; }; zone "e b ip6.arpa" { type master; file "Srce/public/revs/2001:b68:e"; allow-transfer { ; ; ; }; }; zone "f b ip6.arpa" { type master; file "Srce/public/revs/2001:b68:f"; allow-transfer { ; ; ; }; };

41 Primjer jedne reverzne zone $TTL 4h ; ; IPv6 reverse lookup zone for 2001:b68:c::/48 IN SOA regoc.srce.hr. root.regoc.srce.hr. ( H ; refresh 5M ; retry 1W ; expiry 1H ) ; minimum IN NS regoc.srce.hr. IN NS bjesomar.srce.hr. ; ; Set the origin to the ptla prefix. ; $ORIGIN c b ip6.arpa IN PTR regoc.srce.hr IN PTR bjesomar.srce.hr IN PTR ra.srce.hr IN PTR marun.srce.hr IN PTR c a a.c.c.0.1 IN PTR ser-test2.srce.hr.

42 AAAA zapis Povezuje puno ime (FQDN) i IPv6 adresu Ekvivalent A zapisu u IPv4 AAAA zapisi se upisuju u host.db gdje se nalaze i svi ostali zapisi (A, CNAME, NS, MX, ) Primjer: marun.srce.hr. IN A marun.srce.hr. IN AAAA 2001:b68:c:2::76:0

43 Primjeri s naredbom host [root@regoc ~bind]# host marun.srce.hr marun.srce.hr has address marun.srce.hr has IPv6 address 2001:b68:c:2::76:0 [root@regoc ~bind]# host in-addr.arpa domain name pointer marun.srce.hr. [root@regoc ~bind]# host 2001:b68:c:2::76: c b ip6.arpa domain name pointer marun.srce.hr.

44 Apache i IPv6 Prilagoditi /etc/apache2/ports.conf da Apache sluša i na IPv6 sučelju Bitno je naglasiti da se IPv6 mora iskonfigurirati na SVIM virtualnim hostovima IPv6 adrese je potrebno stavljati u uglate zagrade [2001:b68:c:2::76:0]

45 Definicija jednog virtualnog hosta <VirtualHost :80> ServerName ServerAlias DocumentRoot /data/www/typo3/htdocs/srce ErrorLog /var/log/apache2/typo_error_log CustomLog /var/log/apache2/typo_access_log combined </VirtualHost> <VirtualHost [2001:b68:c:2::76:0]:80> ServerName ServerAlias DocumentRoot /data/www/typo3/htdocs/srce ErrorLog /var/log/apache2/typo_error_ip6_log CustomLog /var/log/apache2/typo_access_ip6_log combined </VirtualHost>

46 Postfix i IPv6 Konfiguracija se nalazi u /etc/postfix/main.cf Iskonfigurirati da Postfix sluša i na IPv4 i IPv6 inet_protocols = ipv4, ipv6 Iskonfigurirati na kojim IP adresama sluša Postfix inet_interfaces = , , [::1], [2001:b68:c:2::69:0] Iskonfigurirati da se i klijenti iz IPv6 lokalne mreže mogu spajati bez autentikacije mynetworks = /8, /22, [2001:b68:c::]/48

47 Kraj Hvala na pažnji!