- 1
IPv6 in Cellular Networks
LACNIC 28 Montevideo, Uruguay September 2017
Jordi Palet (jordi.palet@theipv6company.com)
IPv6 in Cellular Networks LACNIC 28 Montevideo, Uruguay - - PowerPoint PPT Presentation
IPv6 in Cellular Networks LACNIC 28 Montevideo, Uruguay September 2017 Jordi Palet (jordi.palet@theipv6company.com) - 1 Need to support IPv6 IPv4 exhaustion Sharing IPv4 (CGN) is not enough and is problematic Increase in
Jordi Palet (jordi.palet@theipv6company.com)
– Sharing IPv4 (CGN) is not enough and is problematic
IPv6 Application
TCP/UDP IPv6 TCP/UDP IPv6 TCP/UDP IPv4 IPv4 IPv6 IPv4 IPv6-only stack IPv4-only stack Dual-stack (IPv4 & IPv6)
IPv6 Application IPv4 Application IPv4 Application
– Not just for now, next years?
GGSN
IPv4 network IPv6 network
(Peer) Node
UE
2G / 3G mobile network Edge Router IP (Peer) Node
– Started in 2014, internal traffic was 90% IPv6 – +100 Terabits per second – 100% IPv6 in June 2015 – Allows using FaceBook in IPv6-only networks and clients – IPv4 (from Internet) terminated in the IPv6-only clusters
– Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop
– However no access to IPv4-only ones – IPv4-only tethered devices will not work
– but there are still IPv4-only contents/apps in Internet
– Everything out of TCP,UDP, or ICMP: Multicast, Stream Control Transmission Protocol (SCTP), the Datagram Congestion Control Protocol (DCCP), and IPSEC – Applications that carry layer 3 information in the application layer: FTP [RFC6384], SIP/H323 – Some apps: online gaming, skype, etc.
– Literal addresses – Socket APIs
CPE Internet IPv4 ISP network NAT64 10.0.0.x/24 NAT64 CPE v4 v4 v6 v4/v6 Internet IPv6 ”plain” IPv6 IPv6-only access
Public IPv4
AAAA
synthesis
NAT64
– By means of “built-in” AAAA synthesis
Addressing of IPv4/IPv6 Translators)
– Happy Eyeballs v2 includes it
– Users will be able to access IPv6-only contents and apps
CPE Internet IPv4 ISP network NAT64 10.0.0.x/24 NAT64 CPE v4 v4 v6 v4/v6 Internet IPv6 ”plain” IPv6 IPv6-only access
Public IPv4
DNS64
NAT64
IPv6-only network
v6
IPv4 Internet
NAT64 DNS64 DNS v4 IPv6 Traffic IPv4 Traffic
– Will break if apps use:
– IPv4-only tethered devices will not work
App Name Functionality Version 464XLAT Fixed connection tracker Broken NA NA DoubleTwist Broken 1.6.3 YES Go SMS Pro Broken NA YES Google Talk Broken 4.1.2 YES Google+ Broken 3.3.1 YES IP Track Broken NA NA Last.fm Broken NA YES Netflix Broken NA YES
Broken NA YES Pirates of the Caribean Broken NA YES Scrabble Free Broken 1.12.57 YES Skype Broken 3.2.0.6673 YES Spotify Broken NA YES Tango Broken NA YES Texas Poker Broken NA YES TiKL Broken 2.7 YES Tiny Towers Broken NA YES Trillian Broken NA YES TurboxTax Taxcaster Broken NA Voxer Walkie Talkie Broken NA YES Watch ESPN Broken 1.3.1 Zynga Poker Broken NA YES Xabber XMPP Broken NA
*T-Mobile
– N*65.535 flows per each IPv4 address – Network growth not tied to IPv4 availability
infrastructure
– WORKS with applications that use socket APIs and literal IPv4 addresses (Skype, etc.)
– Without deep packet inspection
– Commercial solutions and open source
CPE CLAT Internet IPv4 ISP network NAT64 PLAT 10.0.0.x/24 NAT64 PLAT CPE CLAT 10.0.0.x/24 v4 v4 v4 v4/v6 Internet IPv6 “plain” IPv6 IPv6-only access
NAT46 Public IPv4
DNS64
NAT64
CLAT PLAT
ISP + IPv6 Internet
Public IPv4 Private IPv4
IPv4 Internet IPv4 + IPv6
IPv4 IPv6
Stateless (4->6) [RFC6145] Stateful (6->4) [RFC6146]
IPv4 IPv6
ISP IPv6-only IPv6-only Internet 464XLAT ISP IPv6-only IPv4-only Internet 464XLAT
PLAT
DNS64/NAT64 ISP IPv6-only IPv4-only Internet 464XLAT
PLAT 6->4 CLAT 4->6
CLAT PLAT
ISP + IPv6 Internet
200.3.14.147 192.168.2.3
IPv4 Internet IPv4 + IPv6
IPv4 IPv6
CLAT XLATE SRC prefix [2001:db8:abcd::/96] XLATE DST prefix [2001:db8:1234::/96] PLAT IPv4 pool (192.1.0.1 – 192.1.0.250) XLATE DST prefix [2001:db8:1234::/96] IPv4 IPv6 2001:db8:abcd::ab 2001:db8:dada::bb IPv4 SRC 192.168.2.3 IPv4 DST 200.3.14.147 Stateless XLATE [RFC6145] Stateful XLATE [RFC6146] IPv6 SRC 2001:db8:abcd::192.168.2.3 IPv6 DST 2001:db8:1234::200.3.14.147 IPv4 SRC 192.1.0.1 IPv4 DST 200.3.14.147
* Dan Drown
– A10 – Cisco – F5 – Juniper – NEC – Huawei – Jool, Tayga, Ecdsys, Linux, OpenBSD, …
– Android (since 4.3) – Nokia – Windows – NEC – Linux – Jool – OpenWRT – Apple (sort-of, is Bump-in-the-Host [RFC6535] implemented in Happy Eyeballs v2) - IPv6-only since iOS 10.2
– T-Mobile US: +68 Millions of users – Orange – Telstra – SK Telecom – … – Big trials in several ISPs
detect such modifications, DNS64 can break DNSSEC
will not synthesize AAAA responses if the DNSSEC OK (DO) flag was set in the query. In this case, as only an A record is available, it means that the CLAT will take the responsibility, as in the case of literal IPv4 addresses, to keep that traffic flow end-to-end as IPv4, so DNSSEC is not broken
be ready for that
– Consider apps used by means of tethering – Very relevant for non-cellular networks
– Not implemented in smartphones – Require using lots of IPv4 addresses – Heavy setup and network overhead, require DHCP – Take less advantage of “multiplexing” IPv4 addresses & ports, than stateful NAT64
*FaceBook data
(17/3/2015)
US Mobile Performance – Dual Stack Provider iOS
v6
v4 30%
response
Time of HTTP GET completion
US Mobile Performance – Dual Stack Provider Android
v6
v4 40%
response
Time of HTTP GET completion
US Mobile Performance – Dual Stack Provider iOS
v6
v4 40%
Total Request Time
– No need to buy CGN
– No need to buy IPv4
– New phones – Not impacting existing users – Naturally increase your IPv6 traffic
– Trunking IPv6 adresses in CDRs – Hash IPv6 addresses in IPv4 records
– Depending on “roaming partner”
– Analysis of Failure Cases in IPv6 Roaming Scenarios
Packet System (EPS)
– Acts as a “switch”
– Acts as a “router”
RAN PS Domain
SGSN GGSN GTP
IPv6 ISP
NAT64
IPv4 / IPv6 Internet
DNS64 WWW Server
UE
HLR
UTRAN Core Network
User IPv6 Transport IPv6
IPv4/IPv6 Application Server GGSN Terminal
–The transport plane can run on a different IP version than the user plane
Application Server GGSN Terminal SGSN UTRAN
GTP-U GTP-U
User IPv6 (PDP type IPv6)
Radio Bearer
Management context containing information pertaining to e.g., mobility and security for the MS.
GGSN create a PDP context, containing information about the session (e.g. IP address, QoS, routing information , etc.).
different IP addresses.
GGSN Terminal SGSN GGSN PDP Context X2 (APN X, IP address X, QoS2) PDP Context X1 (APN X, IP address X, QoS1)
ISP X ISP Z ISP Y
PDP Context Z (APN Z, IP address Z, QoS) PDP Context Y (APN Y, IP address Y, QoS)
APN Y APN Z APN X
Same PDP (IP) address and APN PDP Context selection based on TFT (downstream)
(IPv4v6)
protocol, however it means 2 PDP context licenses)
also identifies an external network.
to find out the GGSN(s) serving the APN requested by the terminal.
which the SGSN selects one address in a round-robin fashion (for this APN).
– Supporting Dual-Stack and Single-Stack – Cellular IPv6 deployment is easy because the network supports whatever the UE ask. – Progressive deployment, as slow or fast as you want
– Discovery of the IPv6 Prefix Used for IPv6 Address Synthesis
RAN
GGSN
IPv6 ISP
NAT64
IPv4 / IPv6 Internet
DNS64 WWW Server
IPv4v6
IPv4v6 APN
IPv6 IPv4
– Default, /64 for each PDP context – Introduced in GPRS R’99
– DHCPv6 client in the terminal – Requires DHCPv6 relay agent in the GGSN
– Static Address Configuration
activation
– Dynamic Address Allocation
BSS/UTRAN UE SGSN GGSN
PDP address = link-local address, ...)
Neighbor Solicitation messages shall be discarded by the GGSN except if part of Neighbor Unreachability Detection The UE constructs its full IPv6 address The GGSN updates the SGSN and MT with the full IPv6 address The GGSN shall be configured to advertise only one network prefix The UE extracts the Interface-ID from the link-local address
– Extending an IPv6 /64 Prefix from a Third Generation Partnership Project (3GPP) Mobile Interface to a LAN Link – The UE is switched from an IPv6 host mode to an IPv6 router-and-host mode
BSS/UTRAN UE SGSN GGSN
PDP address = IPv6 address, ...)
For example the GGSN may use RADIUS for user authentication and IP address allocation, or it may use RADIUS for authentication and DHCP for IP address allocation. Alternatively, the address may be allocated from a local pool of addresses in the GGSN.
– Prefix Exclude Option for DHCPv6-based Prefix Delegation
*ISOC/World IPv6 Launch data
… …
464XLAT
PLAT
DNS64/NAT64
… Cellular network 464XLAT Residential network Corporate network
IPv4 + IPv6 2001:db8::/32 198.51.100.0/24 FE80::1/64 Internet LAN Eth1 192.168.1.1 2001:db8:40::41 CPE (CLAT)
Pool IPv4/NAT46: 192.0.0.1/32 Pool IPv6: 2001:db8:2::40/128
2001:db8:1::2 WAN Eth0
Node 1 192.168.1.2/24 2001:db8:40::42/64
BRAS Eth0 198.51.100.10 2001:db8::10
VM PLAT (NAT64 + DNS64)
Pool IPv4/NAT64: 198.51.100.11/32 Prefijo IPv6: 64:ff9b::/96
2001:db8:1::1 Eth1
ISP Network User Network
Traffic Legend Red: IPv6-only Blue: IPv4-only Green: Dual-stack
Node “n” 192.168.1.x/24 2001:db8:40::xx/64
– Jordi Palet: jordi.palet@theipv6company.com