IPv6 Introduction
Agenda
• IPv6 Addressing
– What is IPv6
– ICMPv6 (Stateless)
– DHCPv6 (Stateful)
• IPv6 Routing
– Static Routing
– Adaptive Routing
• IPv6 Service
– DNSv6
– IPv6 to IPv4 Transition
• Linux IPv6 Implementation
IPv4/IPv6 Protocol Stack
What is IPv6
• IPv4 (32bits) → IPv6 (128 bits)
– 2001:0db8:1a2b:0015:0000:0000:1a2f:0000
• 2001:db8:1a2b:15:0:0:1a2f:0
– (0 can ignore)
• 2001:db8:1a2b:15::1a2f:0
– multiple “0” block can combine to :: (only once)
• Prefix is network address
– 2001:0:0:b3::1234/64
• Address type
– Unicast
– Multicast [Multicast Listener Disscovery]
– Anycast (router only)
IPv6 Unicast Address
• Unicast address type
– Global
• Unique
• Start 001x+ network addr + 64 bits interface addr
– Local Link
• Cannot pass through Router
• fe80:: + 64 bits interface addr / 10
• EUI-64 (transfer MAC to IPv6 interface address)
– 7th
bit change to complementation
– Add FFFE in the 3th and 4th
• 00:ab:cd:12:34:56 → 02ab:cdff:fe12:3456
• IPv6 address method
– manual, auto-configuration (stateless, stateful)
IPv6 Auto Configuration
Stateless Auto Configuration
• ICMPv6 ()
– Fault management
• Ping6
• traceroute6
– Multicast Listener Discovery (MLDv2)
• Replace IGMPv3
– Neighbor Discovery
• Router Solicitation (RS)
• Router Advertisement (RA)
• Neighbor Solicitation (NS)
• Neighbor Advertisement (NA)
• Redirect
Router Advertisement Header
• M
– 1 : get Prefix from DHCP server
– 0 : get Prefix from Router
• O
– 1 : get DNS from DHCP server
– 0 : get DNS from Router
ICMPv6 Router Discovery
ICMPv6 Router Discovery
ICMPv6 Address Resolution
ICMPv6 Address Resolution
Stateful Auto Configuration
• DHCPv6 (RFC 3315)
– DHCPv6 client can request multiple IPv6 address
– 4-way messages exchange (Stateful)
• M=1, O=0
• Solicit(C) / Advertise(S) / Request(C) / Reply(S)
– 2-way messages exchange (Stateless)
• Information-request(C) / Reply (S)
• DHCP Roles
• M=0, O=1
– Client
– Server
– Relay Agent
DHCPv6 working
Auto Configuration Process
• Allows a host to create a unicast address from:
– Its MAC address
– Prefixes sent by neighbor routers
• Several steps:
– Link-local addresses creation
– Duplicate addresses detection (DAD)
– Discover the routers on-link (RS/RA)
– " Configure hosts global addresses
– Configure other parameters: default router, link MTU, …
• Addresses are not automatically registered in the DNS
– Need for DNS Dynamic Update (RFC 2136 and RFC 3007)
Auto Configuration Flowchart
IPv6 Routing
• Routing Algorithm
– Increase throughput
– Decrease average delay
Routing Type
• Static routing (Peer to Peer, Host)
– The same as IPv4
• Specify source, destination, distance
• Adaptive routing (Router to Router)
– Distance Vector Concept
• RIPng (RFC2080)
– Link-State Concept
• OSPFv3 (RFC 5340)
Distance Vector Concept
Link-State Concept
Distance Vector Routing v.s.
Link-State
Routing
IPv6 Routing Protocols
RIPng
• Same as IPv4
– Distance vector, radius of 15 hops, split horizon, and
– poison reverse
– Based on RIPv2
• Updated features for IPv6
– IPv6 prefix, next-hop IPv6 address
– Uses the multicast group FF02::9 for RIP updates
– Uses IPv6 for transport
– Updates are sent on UDP port 521
• Named RIPng
OSPFv3
• Based on OSPFv2, with enhancements
• Distributes IPv6 prefixes
• Runs directly over IPv6
• Ships in the night with OSPFv2
• Adds IPv6-specifific attributes:
– 128-bit addresses
– Link-local address
– Multiple addresses and instances per interface
– Authentication (now uses IPsec)
– OSPFv3 runs over a link, rather than a subnet
DNSv6
• Domain Name System version 6
– Mapping Domain name and IP
• Client / Server Architecture
• Application
– ISC BIND-9.2.2 (Linux)
• Support IPv4 & IPv6 DNS query
• AAAA records
• renumbering
– Windows Server 2008
IPv6 to IPv4 Transition
• Dual Stack
– Support IPv4 & IPv6 on the same time
– IPv4 only, IPv6 only, Dual Stack
– Need one IPv4 and one IPv6 address
IPv6 to IPv4 Transition
• Tunneling
– Add IPv4 header
IPv6 to IPv4 Transition
• Translator
– Network Address Translation – Protocol
Translation
– Like IPv4 NAT
– IPv4 Address pool + sock port number
– It is deprecated on 2007/7
Linux IPv6 implementation
• IPv6 Addressing
– Linux 2.6.x ~
• ipv6 protocol stack, ip6tables, …
– DHCPv6 (ISC DHCP-4.1.2)
• IPv6 Routing
– IPv6 router (radvd-1.1.5)
• ICMPv6 RA, ipv6 routing
– IPv6 routing protocol (quaga-0.98)
• BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng
• IPv6 Service
– DNSv6 (bind-9.2.2), Tunnel Broker (gogoc), NTP (ntp-
4.2.4), SMTP (mailx-12.4), SNMP (netsnmp-5.2.1),
PPP(ppp-2.4.4), WWW(boa-0.94.13), …
How to enable IPv6 Router
(radvd)
# yum search radvd // search radvd
# yum install radvd // install radvd
# vi /etc/radvd.conf // edit configuation
interface eth0
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix 2001:db8:0:f101::1/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
# echo 1 > /proc/sys/net/ipv6/conf/default/forwarding
#service radvd start
Reference
• http://www.ngnet.it/e/ipv6proto/ipv6-proto-
6.php
• http://www.ipv6.hinet.net/index.html
• http://www.rd.ipv6.org.tw/
• IPv6 應用及路由實務 - 訓練教材
• http://www.ithome.com.tw/itadm/article.ph
p?c=66363&s=6
• http://interop.ipv6.org.tw/index.php

IPv6 introduction

  • 1.
  • 2.
    Agenda • IPv6 Addressing –What is IPv6 – ICMPv6 (Stateless) – DHCPv6 (Stateful) • IPv6 Routing – Static Routing – Adaptive Routing • IPv6 Service – DNSv6 – IPv6 to IPv4 Transition • Linux IPv6 Implementation
  • 3.
  • 4.
    What is IPv6 •IPv4 (32bits) → IPv6 (128 bits) – 2001:0db8:1a2b:0015:0000:0000:1a2f:0000 • 2001:db8:1a2b:15:0:0:1a2f:0 – (0 can ignore) • 2001:db8:1a2b:15::1a2f:0 – multiple “0” block can combine to :: (only once) • Prefix is network address – 2001:0:0:b3::1234/64 • Address type – Unicast – Multicast [Multicast Listener Disscovery] – Anycast (router only)
  • 5.
    IPv6 Unicast Address •Unicast address type – Global • Unique • Start 001x+ network addr + 64 bits interface addr – Local Link • Cannot pass through Router • fe80:: + 64 bits interface addr / 10 • EUI-64 (transfer MAC to IPv6 interface address) – 7th bit change to complementation – Add FFFE in the 3th and 4th • 00:ab:cd:12:34:56 → 02ab:cdff:fe12:3456 • IPv6 address method – manual, auto-configuration (stateless, stateful)
  • 6.
  • 7.
    Stateless Auto Configuration •ICMPv6 () – Fault management • Ping6 • traceroute6 – Multicast Listener Discovery (MLDv2) • Replace IGMPv3 – Neighbor Discovery • Router Solicitation (RS) • Router Advertisement (RA) • Neighbor Solicitation (NS) • Neighbor Advertisement (NA) • Redirect
  • 8.
    Router Advertisement Header •M – 1 : get Prefix from DHCP server – 0 : get Prefix from Router • O – 1 : get DNS from DHCP server – 0 : get DNS from Router
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    Stateful Auto Configuration •DHCPv6 (RFC 3315) – DHCPv6 client can request multiple IPv6 address – 4-way messages exchange (Stateful) • M=1, O=0 • Solicit(C) / Advertise(S) / Request(C) / Reply(S) – 2-way messages exchange (Stateless) • Information-request(C) / Reply (S) • DHCP Roles • M=0, O=1 – Client – Server – Relay Agent
  • 14.
  • 15.
    Auto Configuration Process •Allows a host to create a unicast address from: – Its MAC address – Prefixes sent by neighbor routers • Several steps: – Link-local addresses creation – Duplicate addresses detection (DAD) – Discover the routers on-link (RS/RA) – " Configure hosts global addresses – Configure other parameters: default router, link MTU, … • Addresses are not automatically registered in the DNS – Need for DNS Dynamic Update (RFC 2136 and RFC 3007)
  • 16.
  • 17.
    IPv6 Routing • RoutingAlgorithm – Increase throughput – Decrease average delay
  • 18.
    Routing Type • Staticrouting (Peer to Peer, Host) – The same as IPv4 • Specify source, destination, distance • Adaptive routing (Router to Router) – Distance Vector Concept • RIPng (RFC2080) – Link-State Concept • OSPFv3 (RFC 5340)
  • 19.
  • 20.
  • 21.
    Distance Vector Routingv.s. Link-State Routing
  • 22.
  • 23.
    RIPng • Same asIPv4 – Distance vector, radius of 15 hops, split horizon, and – poison reverse – Based on RIPv2 • Updated features for IPv6 – IPv6 prefix, next-hop IPv6 address – Uses the multicast group FF02::9 for RIP updates – Uses IPv6 for transport – Updates are sent on UDP port 521 • Named RIPng
  • 24.
    OSPFv3 • Based onOSPFv2, with enhancements • Distributes IPv6 prefixes • Runs directly over IPv6 • Ships in the night with OSPFv2 • Adds IPv6-specifific attributes: – 128-bit addresses – Link-local address – Multiple addresses and instances per interface – Authentication (now uses IPsec) – OSPFv3 runs over a link, rather than a subnet
  • 25.
    DNSv6 • Domain NameSystem version 6 – Mapping Domain name and IP • Client / Server Architecture • Application – ISC BIND-9.2.2 (Linux) • Support IPv4 & IPv6 DNS query • AAAA records • renumbering – Windows Server 2008
  • 26.
    IPv6 to IPv4Transition • Dual Stack – Support IPv4 & IPv6 on the same time – IPv4 only, IPv6 only, Dual Stack – Need one IPv4 and one IPv6 address
  • 27.
    IPv6 to IPv4Transition • Tunneling – Add IPv4 header
  • 28.
    IPv6 to IPv4Transition • Translator – Network Address Translation – Protocol Translation – Like IPv4 NAT – IPv4 Address pool + sock port number – It is deprecated on 2007/7
  • 29.
    Linux IPv6 implementation •IPv6 Addressing – Linux 2.6.x ~ • ipv6 protocol stack, ip6tables, … – DHCPv6 (ISC DHCP-4.1.2) • IPv6 Routing – IPv6 router (radvd-1.1.5) • ICMPv6 RA, ipv6 routing – IPv6 routing protocol (quaga-0.98) • BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng • IPv6 Service – DNSv6 (bind-9.2.2), Tunnel Broker (gogoc), NTP (ntp- 4.2.4), SMTP (mailx-12.4), SNMP (netsnmp-5.2.1), PPP(ppp-2.4.4), WWW(boa-0.94.13), …
  • 30.
    How to enableIPv6 Router (radvd) # yum search radvd // search radvd # yum install radvd // install radvd # vi /etc/radvd.conf // edit configuation interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; prefix 2001:db8:0:f101::1/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; }; # echo 1 > /proc/sys/net/ipv6/conf/all/forwarding # echo 1 > /proc/sys/net/ipv6/conf/default/forwarding #service radvd start
  • 31.
    Reference • http://www.ngnet.it/e/ipv6proto/ipv6-proto- 6.php • http://www.ipv6.hinet.net/index.html •http://www.rd.ipv6.org.tw/ • IPv6 應用及路由實務 - 訓練教材 • http://www.ithome.com.tw/itadm/article.ph p?c=66363&s=6 • http://interop.ipv6.org.tw/index.php