"Shortest path forwarding using OpenFlow" Iwan - - PowerPoint PPT Presentation

shortest path forwarding using openflow
SMART_READER_LITE
LIVE PREVIEW

"Shortest path forwarding using OpenFlow" Iwan - - PowerPoint PPT Presentation

"Shortest path forwarding using OpenFlow" Iwan Hoogendoorn & Joris Soeurt Supervisor: Ronald van der Pol Wednesday 8 February 2012 1/29 Research


slide-1
SLIDE 1

1/29 ¡

"Shortest ¡path ¡forwarding ¡using ¡OpenFlow" ¡

Iwan ¡Hoogendoorn ¡& ¡Joris ¡Soeurt ¡ Supervisor: ¡Ronald ¡van ¡der ¡Pol ¡

Wednesday ¡8 ¡February ¡2012 ¡

slide-2
SLIDE 2

2/29 ¡

Research ¡Ques/on ¡

In ¡what ¡way ¡can ¡shortest ¡ path ¡bridging ¡be ¡ implemented ¡using ¡ OpenFlow? ¡

slide-3
SLIDE 3

3/29 ¡

Agenda ¡

Approach ¡ Spanning ¡Tree ¡ TRILL ¡/ ¡802.1aq ¡(SPB) ¡differences ¡ TRILL ¡-­‑ ¡specific ¡ 802.1aq ¡(SPB) ¡-­‑ ¡specific ¡ OpenFlow ¡ Rou/ng ¡module ¡

Iwan ¡Hoogendoorn ¡ Part-­‑Time ¡UvA ¡student ¡ Full-­‑Time ¡Cisco ¡Employee ¡ Joris ¡Soeurt ¡ Full-­‑Time ¡UvA ¡student ¡

slide-4
SLIDE 4

4/29 ¡

Approach ¡

  • Implement ¡a ¡(basic) ¡shortest ¡path ¡bridging ¡

algorithm ¡using ¡OpenFlow ¡

– First ¡see ¡how ¡TRILL ¡/ ¡802.1aq ¡implement ¡this ¡

  • Discovered ¡exis/ng ¡rou/ng ¡module ¡

– No ¡annota/on ¡in ¡code ¡(wriUen ¡in ¡C) ¡ – Very ¡liUle, ¡outdated ¡documenta/on ¡ ¡

  • Explored ¡and ¡tested ¡this ¡module ¡
  • Created ¡improvement ¡proposal ¡
slide-5
SLIDE 5

5/29 ¡

Spanning ¡Tree ¡– ¡Why ¡– ¡What ¡does ¡it ¡ do? ¡ ¡

“The ¡Spanning ¡Tree ¡Protocol ¡(STP) ¡is ¡a ¡network ¡ protocol ¡that ¡ensures ¡a ¡loop-­‑free ¡topology ¡for ¡ any ¡bridged ¡Ethernet ¡local ¡area ¡network.” ¡

Wikipedia ¡ Radia ¡Perlman ¡

slide-6
SLIDE 6

6/29 ¡

Spanning ¡Tree ¡

slide-7
SLIDE 7

7/29 ¡

TRILL/802.1aq ¡– ¡Why ¡beUer? ¡

TRILL ¡à ¡IETF ¡& ¡802.1aq ¡à ¡IEEE ¡ ¡ IS-­‑IS ¡topology ¡discovery ¡ ¡TRILL ¡– ¡unicast ¡traffic ¡– ¡hop ¡by ¡hop ¡ TRILL ¡– ¡broadcast, ¡mul/cast, ¡unknown ¡– ¡pre-­‑calculated ¡distribu/on ¡ trees ¡ 802.1aq ¡(SPB) ¡– ¡all ¡traffic ¡– ¡trees ¡calculated ¡up ¡front ¡ ¡

slide-8
SLIDE 8

8/29 ¡

TRILL ¡-­‑ ¡concept ¡

RBridges ¡+ ¡addi/onal ¡TRILL ¡headers ¡ IS-­‑IS ¡topology ¡discovery ¡ ¡4 ¡MAC ¡learning ¡techniques ¡ Unicast ¡vs. ¡mul/cast, ¡broadcast, ¡unknowns ¡

slide-9
SLIDE 9

9/29 ¡

TRILL ¡-­‑ ¡diagram ¡

FRAME

A3 C1

FRAME E Outer MAC TRILL Header A

C3 D3

FRAME E A

D2 E2

FRAME E A FRAME

slide-10
SLIDE 10

10/29 ¡

802.1aq ¡(SPB) ¡-­‑ ¡Types ¡

SPB-­‑V ¡ SPB-­‑M ¡ SPB ¡

Enterprise ¡Network ¡

  • Plug ¡& ¡Play ¡
  • Easy ¡to ¡operate ¡
  • Unknown ¡addresses ¡ ¡

Access ¡Network ¡

  • Reliability ¡
  • Bandwidth ¡efficiency ¡ ¡
  • Unknown ¡or ¡managed ¡ ¡

¡ ¡addresses ¡ Metro ¡Core ¡Network ¡

  • Reliability ¡
  • Auto-­‑discovery ¡
  • Load ¡sharing ¡
  • Managed ¡addresses ¡ ¡

MAC ¡learning ¡ ¡ in ¡control ¡plane ¡ MAC ¡learning ¡ ¡ in ¡data ¡plane ¡

(MAC-­‑in-­‑MAC) ¡ (Q-­‑in-­‑Q) ¡

slide-11
SLIDE 11

11/29 ¡

802.1aq ¡(SPB) ¡-­‑ ¡concept ¡

Root A ¡ B ¡ D ¡ G ¡ C ¡ F ¡ E ¡ Blocked Ports

Ø

Each ¡bridge ¡is ¡the ¡“root” ¡of ¡a ¡separate ¡shortest ¡path ¡tree ¡instance ¡

Ø

Bridge ¡G ¡is ¡the ¡root ¡of ¡the ¡green ¡tree ¡

Ø

Bridge ¡E ¡is ¡the ¡root ¡of ¡the ¡blue ¡tree ¡

Ø

Both ¡trees ¡are ¡ac/ve ¡AND ¡symmetric ¡at ¡all ¡/mes ¡ A ¡ B ¡ D ¡ G ¡ C ¡ F ¡ E ¡ Root Root Root Root Root Root Root E ¡ A ¡ B ¡ D ¡ G ¡ C ¡ F ¡ E ¡ A ¡ B ¡ D ¡ G ¡ C ¡ F ¡ Root Root A ¡ B ¡ D ¡ G ¡ C ¡ F ¡ E ¡ Root Blocked Ports

slide-12
SLIDE 12

12/29 ¡

Introduc/on ¡to ¡OpenFlow ¡

  • Vendors ¡generally ¡don’t ¡like ¡to ¡make ¡their ¡

firmware ¡open ¡to ¡outsiders. ¡

  • No ¡possibility ¡to ¡test ¡new ¡algorithms ¡
  • Stanford ¡computer ¡scien/st ¡Nick ¡McKeown ¡

and ¡colleagues ¡developed ¡a ¡standard ¡called ¡ OpenFlow ¡ ¡

slide-13
SLIDE 13

13/29 ¡

Introduc/on ¡to ¡OpenFlow ¡

  • Control ¡and ¡dataplane ¡completely ¡seperated ¡
  • Control ¡plane: ¡Controller ¡

– NOX ¡

  • Open ¡source ¡
  • Python ¡programmable ¡
  • Data ¡plane: ¡OpenFlow ¡aware ¡switches ¡
  • Communica/on ¡via ¡standardized ¡API. ¡
slide-14
SLIDE 14

14/29 ¡

Opera/on ¡of ¡OpenFlow ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡00-­‑00-­‑02 ¡

Src ¡MAC ¡ Dst ¡MAC ¡ Src ¡IP ¡ Dst ¡IP ¡ In ¡port ¡ AcAon ¡ Src ¡MAC ¡ Dst ¡MAC ¡ Src ¡IP ¡ Dst ¡IP ¡ In ¡port ¡ AcAon ¡

00-­‑00-­‑01 ¡ 00-­‑00-­‑02 ¡ 1 ¡ Out ¡2 ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡00-­‑00-­‑02 ¡

What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡out ¡port ¡2 ¡

Flow ¡table ¡on ¡switch ¡

slide-15
SLIDE 15

15/29 ¡

Key ¡features/advantages ¡

  • You ¡are ¡not ¡limited ¡by ¡the ¡func/onality ¡of ¡the ¡

proprietary ¡firmware ¡of ¡vendors. ¡

  • Compu/ng ¡power ¡of ¡a ¡server ¡ ¡
  • Strength ¡of ¡a ¡programming ¡language ¡
  • You ¡can ¡implement ¡any ¡forwarding ¡algorithm ¡

you ¡want. ¡

slide-16
SLIDE 16

16/29 ¡

Tes/ng… ¡

  • ¡ ¡ ¡6 ¡OpenWrt ¡switches ¡with ¡custom ¡firmware ¡
  • Data ¡gathered ¡

– Wireshark ¡on ¡controller ¡ – Tcpdump ¡on ¡hosts ¡ – NOX ¡console ¡output ¡

  • Informa/on ¡deduced ¡

– Communica/on ¡ – Innerworking ¡ – Link ¡failover ¡ – Path ¡determina/on ¡

slide-17
SLIDE 17

17/29 ¡

Parts ¡of ¡“rou/ng” ¡module ¡

  • Discovery ¡module ¡

– Controller ¡learns ¡topology ¡

  • Spanning ¡tree ¡module ¡

– For ¡broadcast/mul/cast/unknown ¡unicast ¡frames ¡ – Frames ¡are ¡flooded ¡

  • Shortest ¡path ¡module ¡

– For ¡unicast ¡frames ¡ – Frames ¡are ¡“routed” ¡

slide-18
SLIDE 18

18/29 ¡

Opera/on ¡of ¡discovery ¡(1) ¡

LLDP ¡ ¡

Sent ¡on: ¡SW5, ¡port ¡1 ¡

LLDP ¡ ¡

Sent ¡on: ¡SW5, ¡port ¡1 ¡ Received ¡on: ¡SW6, ¡port ¡3 ¡

Switch ¡5 ¡ Switch ¡6 ¡

slide-19
SLIDE 19

19/29 ¡

Spanning ¡tree ¡module ¡

port-­‑mod ¡ port ¡1, ¡flood ¡= ¡1 ¡ port ¡2, ¡flood ¡= ¡1 ¡ port ¡3, ¡flood ¡= ¡0 ¡ port ¡4, ¡flood ¡= ¡0 ¡ port-­‑mod ¡ port ¡1, ¡flood ¡= ¡1 ¡ port ¡2, ¡flood ¡= ¡1 ¡ port ¡3, ¡flood ¡= ¡0 ¡ port ¡4, ¡flood ¡= ¡1 ¡ port-­‑mod ¡ port ¡1, ¡flood ¡= ¡1 ¡ port ¡2, ¡flood ¡= ¡0 ¡ port ¡3, ¡flood ¡= ¡1 ¡ port ¡4, ¡flood ¡= ¡1 ¡ port-­‑mod ¡ port ¡1, ¡flood ¡= ¡0 ¡ port ¡2, ¡flood ¡= ¡0 ¡ port ¡3, ¡flood ¡= ¡1 ¡ port ¡4, ¡flood ¡= ¡0 ¡ port-­‑mod ¡ port ¡1, ¡flood ¡= ¡1 ¡ port ¡2, ¡flood ¡= ¡1 ¡ port ¡3, ¡flood ¡= ¡0 ¡ port ¡4, ¡flood ¡= ¡1 ¡ port-­‑mod ¡ port ¡1, ¡flood ¡= ¡1 ¡ port ¡2, ¡flood ¡= ¡0 ¡ port ¡3, ¡flood ¡= ¡0 ¡ port ¡4, ¡flood ¡= ¡1 ¡ port ¡mod ¡ port ¡mod ¡ port ¡mod ¡ port ¡mod ¡ port ¡mod ¡ port ¡mod ¡

slide-20
SLIDE 20

20/29 ¡

Broadcast ¡/ ¡mul/cast ¡/ ¡unknown ¡

  • Rule ¡with ¡ac/on ¡= ¡flood ¡
  • Frames ¡are ¡flooded ¡out ¡all ¡ports, ¡except ¡for…. ¡ ¡

– Origina/ng ¡port ¡ – Port ¡with ¡flood ¡flag ¡set ¡to ¡disabled ¡

¡

slide-21
SLIDE 21

21/29 ¡

Opera/on ¡of ¡flooding ¡(first ¡frame) ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡

What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡Flood ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡

What ¡should ¡I ¡do? ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡

What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡Flood ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡Flood ¡ What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡Flood ¡ What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡Flood ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡

What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡Flood ¡

slide-22
SLIDE 22

22/29 ¡

Opera/on ¡of ¡flooding ¡(next ¡ frames) ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡ Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡ Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡ Src: ¡00-­‑00-­‑01 ¡ Dst: ¡FF-­‑FF-­‑FF ¡

slide-23
SLIDE 23

23/29 ¡

Unicast ¡

  • Controller ¡knows ¡loca/on ¡of ¡hosts ¡(registered ¡

by ¡authen/cator ¡module) ¡

  • Can ¡program ¡complete ¡path ¡in ¡advance ¡
slide-24
SLIDE 24

24/29 ¡

Opera/on ¡of ¡unicast ¡(first ¡frame) ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡00-­‑00-­‑04 ¡

What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡port ¡2 ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡port ¡4 ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡port ¡1 ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡00-­‑00-­‑02 ¡

What ¡should ¡I ¡do? ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡port ¡3 ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡port ¡2 ¡ Create ¡rule, ¡ ¡ acAon ¡= ¡port ¡1 ¡

slide-25
SLIDE 25

25/29 ¡

Opera/on ¡of ¡unicast ¡(next ¡frames) ¡

Src: ¡00-­‑00-­‑01 ¡ Dst: ¡00-­‑00-­‑04 ¡ Src: ¡00-­‑00-­‑01 ¡ Dst: ¡00-­‑00-­‑02 ¡

slide-26
SLIDE 26

26/29 ¡

Shortcomings ¡& ¡improvement ¡

  • “Rou/ng” ¡module ¡

– Loadbalancing ¡algorithm ¡not ¡op/mal ¡ – Link ¡failover ¡not ¡op/mal ¡ – Instable ¡(loops) ¡

  • Improvement ¡proposal ¡

– Pseudocode ¡

¡

slide-27
SLIDE 27

27/29 ¡

Comparison ¡

  • Centralized ¡instead ¡of ¡distributed ¡

– No ¡IS-­‑IS ¡needed ¡ – But, ¡shortest ¡path ¡algorithm ¡needed ¡

  • No ¡standard ¡(like ¡IETF ¡/ ¡IEEE) ¡
  • Spanning ¡tree ¡programmed ¡to ¡port ¡property ¡
slide-28
SLIDE 28

28/29 ¡

Conclusion ¡

  • Powerful ¡but ¡not ¡yet ¡powerful ¡enough? ¡

– S/ll ¡in ¡development ¡(1.2 ¡in ¡March, ¡1.3 ¡in ¡April) ¡ – Version ¡1.2: ¡

  • failover ¡group ¡
  • master/slave ¡controller ¡
  • OpenFlow ¡is ¡generic, ¡802.1aq ¡/ ¡TRILL ¡are ¡

specific ¡

slide-29
SLIDE 29

29/29 ¡

Ques/ons? ¡