+ All Categories
Home > Documents > MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS...

MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS...

Date post: 16-May-2018
Category:
Upload: dophuc
View: 224 times
Download: 1 times
Share this document with a friend
24
v MPLS tutorial Roopa Prabhu— Cumulus Networks Feb 12 th , 2016 Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)
Transcript
Page 1: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

v

MPLS tutorial

Roopa Prabhu— Cumulus Networks

Feb 12th, 2016

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 2: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Agenda

● Brief introduction to MPLS● History● Linux kernel MPLS LSR support● MPLS LSR multipath support● Linux MPLS IP tunnels● Futures

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 3: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

What is MPLS (multiprotocol label switching) ?

● MPLS is a protocol-independent transport

● Packets are assigned labels

● Packet forwarding decisions are made solely on the basis of labels

● MPLS operates at a layer between data link layer (layer 2) and network layer (layer 3) and is refered to 2.5 layer

● Mainly used in service provider networks: Can carry IP, ATM, frame relay traffic

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 4: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

History

● MPLS evolved as a solution to integrate IP over ATM

● The success of MPLS is a result of the fact that it enables the network to carry all kinds of traffic

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 5: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Benefits

● unified network infrastructure: many technologies can be transported over it

● the service provider needs only one unified network infrastructure to carry all kinds of customer traffic

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 6: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Routers in a MPLS domain

● First router (Label Edge router or LER)○ IP routing lookup○ Attaches labels ○ Forwards based on label

● Future routers (Label switching routers or LSR)○ Use label to route

● Final destination router (Label Edge router or LER)○ Removes label ○ Packet is delivered using normal routing

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 7: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS Router Domains

LER LSR LSR LERIP IPPush label swap label swap label Pop label

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 8: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

cumulusnetworks.com

MPLS Deployment example

8

P

CA-E1

CB-E1

CA-E2

CB-E2provider backbone

PE2LER LER

PE1

customer edge router

LSR

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 9: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS label stack entry

cumulusnetworks.com

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Label| Label | Exp |S| TTL | Stack+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Entry

Label: Label Value, 20 bits Exp: Experimental Use, 3 bits S: Bottom of Stack, 1 bit TTL: Time to Live, 8 bits

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 10: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

cumulusnetworks.com

Linux MPLS Label switching router

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 11: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS Label switching router

cumulusnetworks.com

● CONFIG_MPLS, CONFIG_MPLS_ROUTING○ driver: net/mpls/af_mpls.c

● UAPI: ○ new route netlink attributes: RTA_NEWDST , RTA_VIA

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 12: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS LSR: add mpls route

cumulusnetworks.com

● enable mpls on a network interface○ echo 1 > /proc/sys/net/mpls/conf/swp1/input

● iproute2:

$ip -f mpls route add 100 as 200/300 via inet 10.1.1.2 dev swp1

$ip -f mpls route show

100 as to 200/300 via inet 10.1.1.2 dev swp1

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 13: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS LSR: add mpls multipath route

$ip -f mpls route add 100 \nexthop as 200 via inet 10.1.1.2 dev swp1 \nexthop as 300 via inet 10.1.1.6 dev swp2

$ip -f mpls route show100

nexthop as to 200 via inet 10.1.1.2 dev swp1nexthop as to 300 via inet 10.1.1.6 dev swp2

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 14: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

cumulusnetworks.com

Linux MPLS Label Edge router

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 15: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Light weight tunnel infrastructure (LWT)

● Attach tunnel attributes to routes● New tunneling abstraction API:

○ Register/Unregister lwtunnel encap ops○ lwtunnel ops

■ parse/dump encap attributes into per route nexthop lwtunnel state

■ Redirect output to tunnel output handler during packet forwarding

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 16: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Light weight tunnel infrastructure (LWT) Contd ..

● CONFIG_LWTUNNEL○ net/core/lwtunnel.c

● New netlink attributes: ○ RTA_ENCAP, RTA_ENCAP_TYPE

● iproute2:$ip route add help[..snip..]NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]

[ dev STRING ] [ weight NUMBER ] NHFLAGSENCAPTYPE := [ mpls ]ENCAPHDR := [ MPLSLABEL ]

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 17: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS tunnels using LWT infrastructure

● Implements MPLS ingress LER function

● CONFIG_MPLS_IPTUNNEL

● MPLS ip tunnel driver○ net/mpls/mpls_iptunnel.c

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 18: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS tunnel routes: iproute2

$ip route add 10.1.1.0/30 encap mpls 200 via inet 10.1.1.1 dev swp1$ip route show10.1.1.0/30 encap mpls 200 via 10.1.1.1 dev swp1

$ip route add 10.1.1.0/30 nexthop encap mpls 200/300 via 10.1.1.1 dev swp1 \nexthop encap mpls 700/800 via 40.1.1.2 dev swp3

$ip route show10.1.1.0/30 nexthop encap mpls 200/300 via 10.1.1.1 dev swp1 nexthop encap mpls 700/800 via 40.1.1.2 dev swp3

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 19: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

MPLS tunnel routes: iproute2 (IPV6)

$ ip -6 route add 2001:10:2::/64 encap mpls 300/400 dev swp1

$ip -6 route show2001:10:2::/64 encap mpls 300/400 via 2001:10:3::/64 dev swp1

$ip -6 route add 2001:10:2::/64 nexthop encap mpls 200 via 2001:10:3::/64 dev swp1 \nexthop encap mpls 700 via 2001:10:4::/64 dev swp3

$ip -6 route show2001:10:2::/64 nexthop encap mpls 200 via 2001:10:3::/64 dev swp1 nexthop encap mpls 700 via 2001:10:4::/64 dev swp3

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 20: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Next things

● MPLS stats (in progress)● MPLS L3-VPN support● MPLS switchdev offload support

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 21: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

kernel versions

● MPLS LSR support: v4.1● lwt and MPLS ip tunnel: v4.3● MPLS multipath: v4.5

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 22: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

References

● MPLS Architecture: http://tools.ietf.org/html/rfc3031● MPLS label stack encoding: http://tools.ietf.

org/html/rfc3032● Carrying label information in BGP-4 : http://tools.ietf.

org/html/rfc3107

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 23: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

Questions

?cumulusnetworks.com

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)

Page 24: MPLS tutorial - NetDev: The Technical Conference On Linux ... · Agenda Brief introduction to MPLS History Linux kernel MPLS LSR support MPLS LSR multipath support Linux MPLS IP tunnels

CUMULUS, the Cumulus Logo, CUMULUS NETWORKS, and the Rocket Turtle Logo (the “Marks”) are trademarks and service marks of Cumulus Networks, Inc. in the U.S. and other countries. You are not permitted to use the Marks without the prior written consent of Cumulus Networks. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. All other marks are used under fair use or license from their respective owners.

▪Thank You!

cumulusnetworks.com

Bringing the Linux Revolution to Networking

Proceedings of NetDev 1.1: The Technical Conference on Linux Networking (February 10th-12th 2016. Seville, Spain)


Recommended