Phnog - Ipv6 Tutorial: Content
Phnog - Ipv6 Tutorial: Content
Makati, Philippines
19 July 2019
Content
• IPv6 Protocol Architecture
• IPv6 Addressing
• IPv6 Deployment
1
7/19/19
Module 1
Renamed in IPv6
New in IPv6
2
7/19/19
• Management
– Stateless autoconfiguration (SLAAC) means no more need to configure IP
addresses for end systems, even via DHCP
• Performance
– Simplified header means efficient packet processing
– No header checksum re-calculation at every hop (when TTL is decremented) =>
left up to the lower and upper layers!
3
7/19/19
4
7/19/19
• Each source device tracks the MTU size for each session
Source: www.cisco.com 10
5
7/19/19
– If the device receives an “ICMPv6 packet too big (Type 2)” message, it
informs the upper layer to reduce its packet size, based on the actual
MTU size (contained in the message) of the node that dropped the
packet
2001:ABCD:1234::DC0:A910 nibble
6
7/19/19
• Abbreviated form
– 2001:0DB8:0000:0000:0000:036E:1250:2B00 Leading 0s
– Where there is same number of :0:, the first set be replaced with ::
– 2001:DB8:0:0:2F:0:0:5
– 2001:DB8::2F:0:0:5 instead of 2001:DB8:0:0:2F::5
• Prefix Representation
– Representation of prefix is similar to IPv4 CIDR
– → prefix/prefix-length
– 2001:DB8:12::/40
14
7
7/19/19
• Anycast Address
B
– Same address assigned to more than one interface (on different nodes)
A
– Packet for an anycast address routed to the nearest interface (routing distance)
B
• Multicast Address
– group of interfaces (on different nodes) join a multicast group B
– A multicast address identifies the interface group
A
– Packet sent to the multicast address is replicated to all interfaces in the group
15
16
8
7/19/19
2A00::/12
AfriNIC 2C00::/12
128 bits
18
9
7/19/19
19
32
16
16
ISP /32
64
Customer Site /48
End Site Subnet /64 Device 128 Bit Address
20
10
7/19/19
21
FC00::/7
| 7 bits | 1 | 40 bits | 16 bits. | 64 bits |
+--------+--+--------------+------------+---------------------------+
| Prefix | L | Global ID | Subnet ID | Interface ID. |
+--------+--+--------------+------------+---------------------------+
22
11
7/19/19
23
24
12
7/19/19
0 2 2 1 A 4
– MAC address is split into two 24 bit halves 0 1 F 0 2 8
25
Eth0
interface Ethernet0
ipv6 address 2001:db8:213:1::/64 eui-64 MAC address: 0060.3e47.1530
26
13
7/19/19
• ICMPv6 Redirect:
– informs the source of a better next-hop
27
14
7/19/19
29
1 Multicast
ICMPv6 NS Type135
Unicast 2
ICMPv6 NA Type136
30
15
7/19/19
3 Unicast
IPv6 Packet
Unicast 4
IPv6 Packet
31
• Stateful - DHCPv6
– To track address assignments
32
16
7/19/19
33
RS
• The router responds with a RA message 2001:DB8::/6
– IPv6 prefix and prefix length 4
– link-local as the source
– Auto flag by default (Managed and Other flags RA
are not set!)
34
17
7/19/19
DHCPv6 (1)
RFC
DHCPv6 is used: 3315
– If there are no router(s) on the subnet/link, OR
– If the RA message specifies to get addressing
information via DHCPv6
35
36
18
7/19/19
38
19
7/19/19
Quiz - Zone ID
• Please write down the commands:
fe80::b1%1
– PC-A pings PC-B PC-B
fe80::a1%11
– PC-A telnet PC-C
PC-A
fe80::a2%12 fe80::c1%en0
PC-C
39
Subnetting (Example)
• Provider A has been allocated
• 2001:DB8::/32
40
20
7/19/19
Subnetting (Example)
Original block: 2001:0DB8::/32
This is your
Rewrite as a /48 block: 2001:0DB8:0000::/48 network prefix!
2^16 = 65K
Find only the first 4 /48 blocks…
41
Subnetting (Example)
Start by manipulating the LSB of your
network prefix – write in bits
2001:0DB8:0000::/48
In bits
42
21
7/19/19
43
‹ 44
#
›
22
7/19/19
Module 2
45
32
16
16
ISP /32
64
Customer Site /48
End Site Subnet /64 Device 128 Bit Address
46
23
7/19/19
47
• Shift in thought:
– IPv4: number of hosts L
– IPv6: number of subnets!
48
24
7/19/19
• Point-to-Point links
49
• Loopbacks
– Generally one /48 (/60 and /64 also common) for all loopbacks
– /128 as loopback
50
25
7/19/19
51
52
26
7/19/19
53
54
27
7/19/19
56
28
7/19/19
57
58
29
7/19/19
59
Module 3
60
30
7/19/19
61
Dual-stack
Dual-stack
network
62
31
7/19/19
Dual-stack
• Does not solve IPv4 (public) depletion issue
– Still need to use CG-NAT to access IPv4-only sites
63
• But effective, and the only viable and scalable way forward
– IPv6 native access to most of the major content providers
– None of the scalability issues of v4 CG-NAT
– And of course, no DNSSEC issues
64
32
7/19/19
464XLAT (RFC6877)
DN
S
IPv6
64 Internet
End Host
v6
PLAT
CLAT IPv6 Core GGSN
(NAT6
(NAT64) IPv4
v4p 4) Interne
(v4 sockets) t
65
66
33
7/19/19
DNS64(RFC6147)
• Generate AAAA records from A records
– Allows IPv6-only client to talk to IPv4 hosts
– If ‘AAAA’ records exists, no synthesis
– If only ‘A’ record exist for the queried name (after recursive query),
synthesize to AAAA record
AAAA Query: AAAA Query: test.com
test.com
Empty Response Authoritative
DNS
64 DNS
A Query: test.com
Response: 192.168.2.10
Response:
2406:6400::C0A8:20A
67
DNS64 Example
• DNS64 options statement in BIND9.8
dns64 2406:6400::/96 {
clients {any;};
mapped {!rfc1918; any;};
exclude {0::/3; 2001:DB8::/32;};
break-dnssec yes;
};
• https://ftp.isc.org/isc/bind9/cur/9.9/doc/arm/Bv9ARM.ch06.html
– exclude: list of IPv6 addresses to ignore if they appear in the domain’s AAAA records (synthesize it
from the NAT64 prefix+v4 address)
– break-dnssec yes: by default, DNS64 module does not process secure queries (DO = 1) or
responses. The break-dnssec yes overrides this default.
• However, the synthesized response will not have any DNSSEC records added and therefore cannot be verified by the
client!
68
34
7/19/19
69
Stateful NAT64
(v6-only to v4-only ‘Internet’)
DN
S
64
Mobile Phone
v6
IPv6 PLAT
CLAT Mobile GGSN
(NAT6
(NAT64) IPv4
Core Interne
v4p 4)
(v4 sockets) t
192.168.2.10
Over IPv6
(test.com)
70
35
7/19/19
Stateless NAT64
(v4 to v4 – literal IPs)
Mobile Phone
v6
IPv6 PLAT
CLAT Mobile GGSN
(NAT6
(NAT64) IPv4
Core Interne
v4p 4)
(v4 sockets) t
202.69.185.252
v4p address (Src): 192.168.12.99 IPv4 Pool: 202.70.77.1-30
Dst: 202.69.185.252:80
IPv6 Src:
2406:6400:EEEE::C0A8:C63 PLAT-side XLATE prefix:
Stateless XLATE prefix: 2406:6400:AAAA::/96
2406:6400:EEEE::/96
IPv6 Dst:
[2406:6400:AAAA::CA45:B9FC]:80 Src: 202.70.77.1:888
PLAT-side XLATE prefix:
2406:6400:AAAA::/96 Dst: 202.69.185.252:80
71
– http://www.internetsociety.org/deploy360/blog/2016/08/new-
nat64dns64-implementations-available-for-public-testing-in-go6lab/
72
36
7/19/19
73
IPv6 Tethering
• RFC6653: DHCPv6-PD for Mobile Networks
– 3GPP Rel-10
74
37
7/19/19
References
• IPv6 in Mobile Networks – Telstra
– Sunny Yeung, Senior Technology Specialist
– Presentation @APNIC41 (Feb 2016)
– https://conference.apnic.net/data/41/yeung.-s-tutorial-apricot-
2016_1455689286.pdf
Home LAN
LSN/CGN
DHCP Server
On the BRAS Centralized
76
38
7/19/19
77
Home LAN
ND-RA over
PPP ipv6 nd prefix 2400:db8::/64
no ipv6 nd ra suppress
ipv6 nd other-config-flag
DHCPv6
DHCPv6 over
Server
PPP
• CPE IPv6 address
– SLAAC based on the RA (and set ‘O’ flag for DNS), or
– use the link-local, OR
• DHCPv6 over PPP
• How will home devices get IPv6 address?
– Proxy RA?
78
39
7/19/19
Home LAN
DHCPv6
DHCPv6-PD over
Server
PPP
RA (2001:db8::/64)
ipv6 local pool PD-POOL 2001:db8::/60 64
ipv6 dhcp pool DHCPv6-PD-POOL
prefix-delegation pool PD-POOL
dns-server 2001:db8::1
79
DHCPv6 (RFC3315)
• RA message:
80
40
7/19/19
DHCPv6 (RFC3315)
Solicit (Client- DHCPv6
IPv6 Client Id) Server
Advertise
Request
Reply
• DUID types:
– Link-layer address, Link-layer+Time, Enterprise number (vendor)
81
Access-Accept/Reject
Accounting Start/Stop
(Framed-IPv6-Prefix)
(Framed-Interface-Id)
• Framed-IPv6-Prefix:
– Which prefix was delegated to the LAN side of the CPE
• Framed-Interface-Id:
– Used for accounting and also indicates what address will be used on WAN side
through RA
82
41
7/19/19
Putting it together
CPE BRAS(DHCPv6) RADIUS (AAA)
LCP Access-Request
83
Deployment Planning
• Assess your network
– Do the existing network nodes support IPv6?
• What requires updating (hw/sw)?
• What needs upgrading/replacing (hw)?
84
42
7/19/19
Deployment Planning -2
• Start from the backbone – not so complicated
– Transit ready?
• Dual stack or tunnel?
– Wired broadband:
• MSANs, DSLAMS, OLTs should carry IPv6 ether-type (do not assume)
• CPEs, wireless routers, APs: https://getipv6.info/display/IPv6/Broadband+CPE
85
86
43
7/19/19
Thank You!
END OF SESSION
87
44