implementing mpls services using openflow

19
Eric Choi [email protected] Product Management and Strategy, March 2015 Implementing MPLS Services using Openflow

Upload: apnic

Post on 17-Jul-2015

206 views

Category:

Internet


3 download

TRANSCRIPT

Page 1: Implementing MPLS Services using Openflow

Eric Choi

[email protected]

Product Management and Strategy,

March 2015

Implementing MPLS Services

using Openflow

Page 2: Implementing MPLS Services using Openflow

Why MPLS and Openflow for SP ?

Telcos are

struggling with

long lead-times for

their core services

Source: http://www.t1shopper.com/carriers/sla/#

Source :

https://www.nanog.org/sites/default/files/wednesday_general_migrating_be

zerra_63.10.pdf

1• Breaking Silo

2•Openness

•Open-source

•Programmability

3•Agility

•New Services

•Better tie to application

•Analytics

Source: https://www.opennetworking.org/images/stories/downloads/sdn-

resources/customer-case-studies/cs-googlesdn.pdf

ENABLING SDN WAN VIRTUALIZATION FOR SP with Openflow MPLS

Page 3: Implementing MPLS Services using Openflow

EMS, NMS, CLI and APIs specific to the switch or router vendor

Proprietary control plane per device

Communication protocols standardized for interoperability© 2014 BROCADE COMMUNICATIONS SYSTEMS, INC. COMPANY PROPRIETARY

INFORMATION 3

SDN Architecture for SPSoftware Defined Networking Logically Centralizes the Control Plane

3/2/2015

CLI/API

EMS/NMS

Vendor A

CLI/API

EMS/NMS

Vendor BVendor

Specific

Management

Captive

Control

Plane

Industry

Standard

Protocols

Vendor C

CLI/API

EMS/NMS

Monitoring

Management

Operation

Vendor A Vendor B Vendor C

Open Source SDN

Controller (ODL,

Ryu)

Northbound APIIndustry Standard

Control Protocols

Standard

Modeling

Languag

e

• Logically centralized open control plane, non-vendor specific

• Normalized programming interface

• Standard control protocols and modeling language

Page 4: Implementing MPLS Services using Openflow

Implementing MPLS Services using OF1.3

Openflow

Controller

Page 5: Implementing MPLS Services using Openflow

Implementing MPLS Services using OF1.3Match L2/L3

Push two Tags

Match on Outer

Tag

Rewrite and Fwd

Match on Outer

Tag

Pop and Fwd

Match on Inner

Tag

Pop and Fwd

• Inserting and removing label works the same way for single label and double label cases

Page 6: Implementing MPLS Services using Openflow

Implementing MPLS Services using OF1.3

Ethertype changed to 0x8847. Label

matching can take place in subsequent

nodes

Ethertype

rewrite

• Ethernet Type cannot be retained across the network

Page 7: Implementing MPLS Services using Openflow

Implementing MPLS Services using OF1.3

Workaround

Implement MPLS label per Ethernet Type

Matching EthernetTypeon the ingress side and place them in different circuit

Not scalable .

impossible from service provider point of view

Page 8: Implementing MPLS Services using Openflow

How can we transport the user frame without altering the ethernet type?

Advertise labels Y from label range for L2VPN

2. Pop the label and restore frame

How is it done today with L2VPN?

A B

Page 9: Implementing MPLS Services using Openflow

How can it be achieved it with standard openflow controller?1. Push Inner label from label range for

L2VPN

2. Push outer label from default label

range

Pop the label and restore frame

MPLS

APP

Openflow

Controller

How can we transport the user frame without altering the ethernet type?

A B

Page 10: Implementing MPLS Services using Openflow

Ryu

Openflow

Controller

Openflow

Device

App

Flow

table

restapi

An Example on

NTTCom Ryu

ControllerIngress Node

curl -X POST -d '{ "dpid":

"10195376623583232",

"priority": "23997", "match": {"in_port": "50",

"dl_vlan": "100" },

"actions": [{"type": "PUSH_MPLS",

"ethertype":34887},

{"type":"SET_FIELD","field":"mpls_label","va

lue":368929}, {"type": "PUSH_MPLS",

"ethertype":34887},

{"type":"SET_FIELD","field":"mpls_label","va

lue":499999},{"type": "OUTPUT", "port":

"50"}]}'

http://127.0.0.1:8080/stats/flowentry/add

Flow ID: 11 Priority: 23997 Status: Active

Rule:

In Port: e2/2

In Vlan: Tagged[100]

..

Instructions: Apply-Actions

Action: FORWARD

Out Port: e2/2

PUSH MPLS TAG: Label 368929, EXP 0,

BOS 0, TTL 0

PUSH MPLS TAG: Label 499999, EXP 0,

BOS 0, TTL 0

Transit Nodecurl -X POST -d '{ "dpid":

"10195376623583232",

"priority": "23994",

"match": {"in_port": "50", "eth_type":

"34887", "mpls_label": “368929" },

"actions": [{"type": "POP_MPLS",

"ethertype":34887}, {"type": "OUTPUT",

"port": "50"}]}'

http://127.0.0.1:8080/stats/flowentry/add

Flow ID: 14 Priority: 23994 Status: Active

Rule:

In Port: e2/2

Ether type: 0x00008847

MPLS Label: 368929

Instructions: Apply-Actions

Action: FORWARD

Out Port: e2/2

POP MPLS TAG

Egress Nodecurl -X POST -d '{ "dpid":

"10195376623583232",

"priority": "23996",

"match": {"in_port": "50", "eth_type":

"34887", "mpls_label": “499999" },

"actions": [{"type": "POP_MPLS",

"ethertype":34887}, {"type": "OUTPUT",

"port": "50"}]}'

http://127.0.0.1:8080/stats/flowentry/add

Flow ID: 12 Priority: 23996 Status: Active

Rule:

In Port: e2/2

Ether type: 0x00008847

MPLS Label: 499999

Instructions: Apply-Actions

Action: FORWARD

Out Port: e2/2

POP MPLS TAG

How can we transport the user frame without altering the ethernet type?

Page 11: Implementing MPLS Services using Openflow

Frequently Ask Questions

Flow Table Matching

search

Ingres

sEgressR1

R2User Circuit

Ingres

sEgressR1

R2

Fast reroute on transit node and link.e1/1

e1/2

e1/1

e1/2

PriorityMatching Fields ActionCounters

100Match LBL 1000 Forward 1/11000/1000

101Match LBL 1000 Forward 1/20/0

R1 needs to report e1/1 link down and App/Controller

will remove the rule 100 and therefore slow

convergence

Page 12: Implementing MPLS Services using Openflow

Frequently Ask Questions

Flow Table Matching

search

Ingres

sEgressR1

R2User Circuit

Ingres

sEgressR1

R2

Fast reroute on transit node and link.e1/1

e1/2

e1/1

e1/2

PriorityMatching Fields ActionCounters

100Match LBL 1000Forward

Port-Group 11000/1000

Output e 1/1GID 1 Mode

Failover Output e 1/2

Group Table

After link e1/1 went down, traffic will forward to e1/2 without

waiting for controller instruction. Fast convergence

Page 13: Implementing MPLS Services using Openflow

Frequently Ask Questions

Integrating with Existing MPLS Network

13

Data Center

L2/L3 MPLS/VPN L2/L3

OpenFlow MPLS

Separate MPLS Label

RangeTransport Label LBL A > LBL B

L3VPN Label LBL B > LBL C

L2VPN Label LBL C > LBL D

OF Transport LBL D > LBL E

OF L2VPN Label LBL E > LBL F

Data Center

OpenFlow L2/L3OpenFlow L2/L3

Page 14: Implementing MPLS Services using Openflow

Reducing Operational Complexity NSR and ISSU

How is it done using routing protocol within the device?

Master

Control

Forwarding

Standby

Control Protocol

Routing

DB Sync so as to

maintain

persistence

topology view

across controller

Page 15: Implementing MPLS Services using Openflow

Reducing Operational Complexity NSR and ISSU

Old

Release

Forwarding

OF

Client

Openflow

Controller

cluster

OF

C

OF

C

OF

C

OF

C

Forwarding

OF

Client

OF

C

OF

C

OF

C

OF

C

New

Release

Forwarding

OF

Client

Flow

table

sync

Modify

If needed

OF

C

OF

C

OF

C

OF

C

Page 16: Implementing MPLS Services using Openflow

Reducing Operational Complexity

E-OAM – complexity grows exponentially as more devices are added to the E-OAM domain

Page 17: Implementing MPLS Services using Openflow

Reducing Operational Complexity

OAM for both Ethernet and MPLS domain using Openflow

Data Center Data Center

OAM

APP

Openflow

Controller

Packet out

Action:

forward e1/1

Push label 1000,2000(TTL=1)

Full probe messageFlow table

…Match MPLS TTL=1, for-controller

A B C D

Page 18: Implementing MPLS Services using Openflow

•How Openflow MPLS work

•How some of the difficult problem in service provider network can be addressed with Openflow

•Network is no longer a standalone resources

Implementing MPLS

using Openflow

Page 19: Implementing MPLS Services using Openflow