0% found this document useful (0 votes)
248 views25 pages

MPLS in An IPv6-Only Network PDF

This document discusses challenges with supporting MPLS in an IPv6-only network core. It describes how MPLS was originally developed assuming an IPv4 network core and how label signaling protocols like LDP and RSVP-TE currently rely on IPv4. Transitioning to an IPv6 core would require updating these control plane protocols to operate over IPv6. The document also examines implications for MPLS services like L3 VPNs and L2 VPNs in an IPv6 environment. Overall, it raises questions about whether supporting full MPLS functionality in an IPv6 network core is feasible or remains an unsolved problem.

Uploaded by

User Name
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
248 views25 pages

MPLS in An IPv6-Only Network PDF

This document discusses challenges with supporting MPLS in an IPv6-only network core. It describes how MPLS was originally developed assuming an IPv4 network core and how label signaling protocols like LDP and RSVP-TE currently rely on IPv4. Transitioning to an IPv6 core would require updating these control plane protocols to operate over IPv6. The document also examines implications for MPLS services like L3 VPNs and L2 VPNs in an IPv6 environment. Overall, it raises questions about whether supporting full MPLS functionality in an IPv6 network core is feasible or remains an unsolved problem.

Uploaded by

User Name
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Doable or a “Bridge Too Far”?

Berislav Todorovic, Juniper Networks


[email protected]
Agenda
• Intro – the IPv6 prelude and the MPLS fugue ...
• IPv6 and MPLS – current solutions for the IPv6 edge of an IPv4 core:
• 6PE, 6VPE, IPv6-over-TE tunnels ... or native IPv6
• MPLS over an IPv6-only core – MPLS transport challenges:
• LDPv6, RSVP-TEv6, BGP-LU(v6), SPRINGv6
• MPLS service challenges in an IPv6 core:
• L3 VPN
• L2 VPN – VPLS/VPWS/EVPN
• MVPN

Can we get rid of IPv4


actually ???
Prelude – IPv6 Takes up ...
• SPs introduce IPv6 to please the nerds because they have no other choice (out of “v4 stock”)
• RFC 6540 - IPv6 Support Required for All IP-Capable Nodes (2012!)
• ripe-554 - Requirements for IPv6 in ICT Equipment (2010-2012)
• IAB Statement on IPv6 (2016):
• We recommend that all (future) networking standards assume the use of IPv6,
and be written so they do not require IPv4.

Will the Internet world


(eventually?) default
to IPv6?
Fugue - MPLS is Still Out There ...
• MPLS - invented in the late 1990s
• Envisaged for an odd use case (ATM/IP interworking).
• But we use it for other reasons today:
• MPLS VPN
• Traffic Engineering
• Fast traffic restoration (FRR)
• Can’t we do it with: overlays, underlays ... ^.*lays$ ...
• MPLS doesn’t give up that easy, like its A** predecessor:
• Mobile operators just love it! 
• Reason – SDH-grade fast restoration, TE ...
Problem – it was developed assuming an IPv4 core
as its foundation!
Prelude Again –IPv4 Packet Forwarding
Although, IPv6 is the same thing ... Destination Intf
10.1.1.1 11
Destination Intf 11.2.2.2 21
14.3.3.3 1 14.3.3.3 31
11.2.2.2 2
10.1.1.1 3 11
IP 10.1.1.1 31
3
1
Destination Intf 21
10.1.1.1 1 2
11.2.2.2 2 IP 10.1.1.1
14.3.3.3 3

1 11.2.2.2
14.3.3.3 3
2
IP 10.1.1.1
Prelude Again –IPv6 Packet Forwarding
Destination Intf
Destination Intf 2001:a:b::/48 11
2a01:c::/32 2 2a01:c::/32 21
2b01:80:1::/56 1 2b01:80:1::/56 31
2001:a:b::/48 3 11
IP 2001:a:b:8::1 31
3
1
Destination Intf 21
2001:a:b::/48 1 2
2a01:c::/32 2 IP 2001:a:b:8::1
2b01:80:1::/56 3

1 11.2.2.2
14.3.3.3 3
2
IP 2001:a:b:8::1
Interlude – The Label ... RFC3031 just says “IP Packet”
Can be BOTH v4/v6 ...
Add a 4 byte tag to each IP packet ... ... or even an Ethernet frame (L2 packet)!

L2 Header IP Packet

Label (20 bits) CoS S TTL

L2 Header MPLS Header IP Packet

4 bytes
Fugue – MPLS Label Switching
Classical IP Forwarding (again IPv4 or IPv6 – doesn’t matter ... yet ...)
50 10.1.1.1
20
IFin LB-in IFout Destination
31 20 11 10.1.1.1
IFin LB-in IFout LB-out
1 50 3 20 11
31
3
1
Can this be IPv6 too? 21
Of course, but ... 2

1 11.2.2.2
14.3.3.3 3
50
2
10.1.1.1
Destination Intf Lb-Out
10.1.1.1 1 50
11.2.2.2 2 52
14.3.3.3 3 57
Label Stacking
Adding more labels to the packets ...

L2 Header
L2 Header IPPacket
Packet IPPacket
Packet

Label (20 bits) CoS S TTL

Label (20 bits) CoS S TTL


L2 Header MPLS Header Packet

4 bytes

L2 Header
L2 Header MPLSL3Header
Ln L2 L1 Packet
Packet

4 bytes
4*n bytes
Label Stack
Coda - MPLS L3 VPNs – Forwarding Plane
Using the label-stacking technique to create VPNs
11 10.1.1.1 51 11 10.1.1.1
VPN A VPN B
VPN A 51 12 10.1.1.1 Site2
Site 1 Site2
CE – A2
CE1 – A2
Service P P
Label CE – A1
PE 2 CE – B2
VPN B PE 1
Site 1 Transport VPN A
Service Label Site 3
Label P PE 3

CE – B1
12 10.1.1.1 CE – A3
MPLS L2 VPNs – Forwarding Plane
Pushing Ethernet frames from A to B (“pseudowires”)
Problem – Label Signaling (Control Plane)!
Unsolicited Downstream Label Distribution Label signaling
uses IPv4 !!!
50 10.1.1.1
20
IFin LB-in IFout Destination
31 20 11 10.1.1.1
IFin LB-in IFout LB-out
1 50 3 20 11
31
3
1
21
2
IFin Dest IFout LB-out
3 10.1.1.1 1 50
2 11.2.2.2 2 52
1 11.2.2.2
14.3.3.3 3
50
2

Destination Intf
10.1.1.1 1
11.2.2.2 2
14.3.3.3 3
MPLS VPN Site Signalling (Control Plane)
Exchanging IP network information among VPN sites

? RR
CE
CE
192.0.3.0
/24 A
PE1 PE2 A 192.0.4.0
/22

IP/MPLS
Backbone
MP-BGP
(over IPv4)
CE
100.64.32.0/
24 B PE3 PE4 CE
100.71.0.0
B /23

?
MPLS Control Plane – Signaling ...
• MPLS Transport Signaling – determines transport label values:
• LDP
• RSVP-TE
• BGP-LU
• SPRING (Segment Routing)
• Service Signaling – determines service label values and routing:
• Depends on service
• MPLS L3 VPNs – use MP-BGP
• MPLS L2 VPNs – can use either MP-BGP or LDP
• 6PE / 6VPE (IPv6-over-MPLS) – uses MP-BGP

Problem – most of those protocols assume an IPv4 core!


Even IPv6 services running over MPLS ... WHY?
IPv6 in MPLS Networks – Solutions So Far
• MPLS was created based assuming an underlying IPv4 infrastructure!
• Remember, this was in 1998: <sarcasm>
• No IPv4 address space issues How could we ever live
• No widespread broadband Internet connectivity. without those ... ???
• No smartphones, tables, phablets ... .*blets$ </sarcasm>
• No Instagram, Facebook, Linkedin, Snapchat ...

• Still, MPLS operators pushed to provide IPv6 connectivity since Day 1.


• Standard industry solutions based on an IPv6-agnostic core.
“Do not touch the (IPv4) core, run IPv6 on the edge only!”
• Options:
• Native IPv6 in the core (non-label switched)
• 6PE (RFC4798)
• 6VPE (RFC4659)
6PE (IPv6 Provider Edge) Architecture
(RFC4798)
IPv6-agnostic area

Forwarding plane
MPLS
IPv6 IPv6
IPv4

IPv6
customer MPLS IPv6
core customer

IPv6 Edge (6PE)


Control plane

IGPv4 (OSPF, IS-IS etc.)


EBGP EBGP
between betwen
IPv6 LDP (or RSVP) - between IPv4 endpoints IPv6
endpoints endpoints

MP-iBGP - between IPv4 endpoints


But what if we pull the IPv4 plug ???

IPv4
Why Pull the IPv4 Plug?
• Running an IPv6-only core – why not?
• IPv4 can move to the edges (4PE instead of 6PE).
• Trials done in the past – e.g. Peter Lothberg’s TeraStream:
• https://ripe67.ripe.net/presentations/131-ripe2-2.pdf
• Operationally simple:
• Maintain only one set of ACLs.
• Manage it only via IPv6
• Avoid overlaps on management IP addresses – e.g. for zillions CPEs ...
• Nice thought ... but nightmare for MPLS!
Test Topology
n = circuit number r = router number
IPv6 P2P: 2001:8:8:hex(n)::/64 IPv6 P2P: 2001:8:0::hex(r)/128

1 4 6 r 10 12
cpe1 pre1 n cr1 pre3 cpe3
3 8 18

5 8 9
rr1 rr2

2 7 17 20
6 10 11

4 9 19
cpe2 pre2 cr2 pre4 cpe4
2 5 7 11 13

with permission of the author Krzysztof Szarkowicz, this example was taken from the book (with slight modifications):
A. Sánchez-Monge and K. Szarkowicz, MPLS in the SDN era, 1st ed. O'Reilly Media Inc, 2015.
Traceroute – IPv6 in Global Routing Table
beri@cpe2> show route table inet6.0 terse
A V Destination P Prf Metric 1 Metric 2 Next hop AS path
* ? 2001:8::/32 B 170 100 65000 I
>2001:8:8:2::2
* ? 2001:222::1/128 D 0 >lo0.0
* ? 2001:444::/32 B 170 100 65000 65444 I
>2001:8:8:2::2

beri@cpe2> traceroute 2001:444::1 source 2001:222::1


traceroute6 to 2001:444::1 (2001:444::1) from 2001:222::1, 64 hops max, 12 byte packets
1 pre2 (2001:8:8:2::2) 141.331 ms 99.055 ms 129.311 ms
2 pre1 (2001:8:8:5::1) 89.134 ms 81.426 ms 56.412 ms
MPLS Label=300160 CoS=0 TTL=1 S=0
3 cr1 (2001:8:8:6::2) 198.055 ms 172.842 ms 184.104 ms
MPLS Label=300448 CoS=0 TTL=1 S=0
4 pre3 (2001:8:8:10::1) 6.077 ms 7.645 ms 5.673 ms
5 2001:444::1 (2001:444::1) 15.286 ms 8.099 ms 10.956 ms
Traceroute – IPv6 in a VPN
beri@cpe1> show route table inet6.0 terse
A V Destination P Prf Metric 1 Metric 2 Next hop AS path
* ? 2001:db9::1/128 D 0 >lo0.0
* ? 2001:dba::/32 B 170 100 65000 65002 I
>2001:8:f:1::

beri@cpe1> traceroute 2001:dba::1 source 2001:db9::1


traceroute6 to 2001:dba::1 (2001:dba::1) from 2001:db9::1, 64 hops max, 12 byte packets
1 2001:8:f:1:: (2001:8:f:1::) 84.542 ms 87.228 ms 70.557 ms
2 pre1 (2001:8:8:5::1) 83.897 ms 57.609 ms 150.652 ms
MPLS Label=300160 CoS=0 TTL=1 S=0
MPLS Label=16 CoS=0 TTL=1 S=1
3 cr1 (2001:8:8:6::2) 105.846 ms 110.714 ms 107.287 ms
MPLS Label=300448 CoS=0 TTL=1 S=0
MPLS Label=16 CoS=0 TTL=2 S=1
4 2001:8:f:2:: (2001:8:f:2::) 190.653 ms 190.920 ms 67.796 ms
5 2001:dba::1 (2001:dba::1) 35.943 ms 20.132 ms 11.525 ms
However ...
• Many things still rely on IPv4
• Transport signaling (LDPv6) is resolved, however ...
• Service signaling is not:
• None of the vendors support MP-BGP over IPv6 endpoints
• Even for VPNv6 (IPv6 VPN) address family BGP requires IPv4 endpoints!
• L2VPN – both LDP- and BGP-signaled L2VPNs can run over IPv6 infra
• However, most vendors mostly implemented the IPv4-only version.
• MVPN using P2MP LSPs – will require updates for IPv6 ...
• Implementation or standards issue?
• Well ...
RFC7439

[RFC7439] George, W., Ed., and C. Pignataro, Ed.,


"Gap Analysis for Operating IPv6-Only MPLS Networks",
RFC 7439, DOI 10.17487/RFC7439, January 2015,
<http://www.rfc-editor.org/info/rfc7439>.
+---------+---------------------------------------+-----------------+
| Item | Gap | Addressed in |
RFC7439 +---------+---------------------------------------+-----------------+
| LDP | LSP mapping, LDP identifiers, LDP | [LDP-IPv6] |
Gap Summary | S.3.2.1 | discovery, LDP session establishment, |
| | next-hop address, and LDP TTL |
|
|
| | security | |
+---------+---------------------------------------+-----------------+
| mLDP | Inherits gaps from LDP, RFC 6512 | Inherits |
| S.3.2.2 | [RFC6512] | [LDP-IPv6], |
| | | additional |
| | | fixes TBD |
+---------+---------------------------------------+-----------------+
| GMPLS | RFC 6370 [RFC6370] Node ID derivation | TBD |
| S.3.2.6 | | |
+---------+---------------------------------------+-----------------+
| L2VPN | RFC 6074 [RFC6074] discovery, | TBD |
| S.3.3.1 | signaling | |
+---------+---------------------------------------+-----------------+
| L3VPN | RFC 4659 [RFC4659] does not define a | TBD |
| S.3.3.2 | method for 4PE/4VPE | |
+---------+---------------------------------------+-----------------+
| OAM | RFC 4379 [RFC4379] No IPv6 multipath | [IPv6-RAO] |
| S.3.4 | support, no IPv6 RAO, possible | |
| | dropped messages in IP version | |
| | mismatch | |
+---------+---------------------------------------+-----------------+
| MIB | RFC 3811 [RFC3811] no IPv6 textual | [MPLS-TC] |
| Modules | convention | |
| S.3.5 | | |
+---------+---------------------------------------+-----------------+
Conclusion
• If you run MPLS, you’ll still need IPv4 ...
• Standards will fill the gaps to run MPLS in IPv6-only networks.
• Implementations will certainly follow, but not that quickly.
• Will newer technologies (e.g. SPRINGv6 w/ overlay VPNs) phase out
MPLS?
• Possibly ... but not that fast either ...

You might also like