Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu,...

16
Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs America

Transcript of Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu,...

Page 1: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN

Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang

NEC Labs America

Page 2: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

2

Path Tracing in SDN

1. Correctness:Trackdown the real path in the data plane

1. Correctness: Passively monitor the real packets

2. Scalability: Minimal operational, configuration cost

Page 3: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

3

Challenges from Accuracy and Scalability

Correctness vs. Complexity Scalability vs. Flexibility

Complexity

Corr

ect

ness

Configuration

@controller

Flow tables@switches

Flexibility

Sca

lab

ility

Probe packetsChosen paths

Real packetsReal paths

VeriFlow

ndb

OFRewind

Anteater

Anteater

Page 4: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

4

Reducing Tracing Space

• Monitoring pathlets–# of pathlets is less than # of flows

• Tagging packets to differentiate pathlets– Precise calling context encoding (PCCE) is

utilized

Page 5: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

5

Precise Calling Context Encoding1

1. for s in switches:PP[s] =

calculatedPossiblePaths(s, A)

2. for s in switches:for l = <p, s> in getIncomingEdges(s):

if l is the first:continue

else:PN[l] = PP[s]

Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177.

A

BC

D

E F

G

1 1

2

22

4

1

+1

+2

Page 6: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Precise Calling Context Encoding1

1. for s in switches:PP[s] =

calculatedPossiblePaths(s, A)

2. for s in switches:for l = <p, s> in getIncomingEdges(s):

if l is the first:continue

else:PN[l] = PP[s]

3. for p in DepthFirstSearchPaths(G):ID[p] = sum(PN[l] for l in p)

Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177.

A

BC

D

E F

G

0

5

+1

+2

Page 7: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Precise Calling Context Encoding1

1. for s in switches:PP[s] =

calculatedPossiblePaths(s, A)

2. for s in switches:for l = <p, s> in getIncomingEdges(s):

if l is the first:continue

else:PN[l] = PP[s]

3. for p in DepthFirstSearchPaths(G):ID[p] = sum(PN[l] for l in p)

Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177.

A

BC

D

E F

G

1

5

+1

+2

Page 8: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Precise Calling Context Encoding1

1. for s in switches:PP[s] =

calculatedPossiblePaths(s, A)

2. for s in switches:for l = <p, s> in getIncomingEdges(s):

if l is the first:continue

else:PN[l] = PP[s]

3. for p in DepthFirstSearchPaths(G):ID[p] = sum(PN[l] for l in p)

Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177.

A

BC

D

E F

G

2

5

+1

+2

Page 9: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Precise Calling Context Encoding1

1. for s in switches:PP[s] =

calculatedPossiblePaths(s, A)

2. for s in switches:for l = <p, s> in getIncomingEdges(s):

if l is the first:continue

else:PN[l] = PP[s]

3. for p in DepthFirstSearchPaths(G):ID[p] = sum(PN[l] for l in p)

Sumner, William N., Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. "Precise Calling Context Encoding." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1160-1177.

A

BC

D

E F

G

3

5

+1

+2

Page 10: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Codebook of Path IDs

ID site path

0 G ABDEG

2 G ABDFG

1 G ACDEG

3 G ACDFG

A

B C

D

E F

G

+1

+2

6

Page 11: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Codebook of Path IDs

ID dst path

0 G ABDEG

2 G ABDFG

1 G ACDEG

3 G ACDFG

0 B GEDB

• `ID` + `dst` can uniquely identify a path– as long as `ID`s can be imprinted into packets, the

paths can be determined

A

B C

D

E F

G

+1

+2

B

D

E

G

6

Page 12: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Tagging Flows with Path IDs

• Encoding path IDs– 8bit ToS– 16bit IPID – 20bit flow label in IPv6

• Enabling actions of ID = ID + X – Enumerate ingress ports and paths

A

B C

D

E F

G

+1

+2

7

Page 13: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Enabling actions of ID=ID+X

• Enumerate ingress ports and paths– Port with no path, e.g., port ‘a’– Port with one path, e.g., port ‘b’– Port with multiple paths, e.g., port ‘c’

switch

path Ypath Zpath Xno path

a b c

flow table

IPsrc

…… IPToS

switchport

action

*port amod_nw_tos:ID(NULL)

* ……

*port bmod_nw_tos:ID(X)

* ……

*port cmod_nw_tos:ID(Y)

u ……

*port cmod_nw_tos:ID(Z)

v ……

8

Page 14: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Path Tracing System

flow tableIPsrc

…… IPtos

switchport

action

*port c mod_nw_tos:10 ……

flow tableIPsrc

…… IPtos

switchport

action

*port c mod_nw_tos:10 ……

flow tableIPsrc

…… IPtos

switchport

action

*port c mod_nw_tos:10 ……

PathletTracer

ID site

path

0 G ABDEG

2 G ABDFG

1 G ACDEG

3 G ACDFG

0 B GEDB

ID site

path

0 G ABDEG

2 G ABDFG

1 G ACDEG

3 G ACDFG

0 B GEDB

ID site

path

0 G ABDEG

2 G ABDFG

1 G ACDEG

3 G ACDFG

0 B GEDB

path

ABDEG

ABDFG

ACDEG

ACDFG

GEDBOpenFlo

wControlle

r

9

Page 15: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Conclusions

• A scalable data-plane path tracing application for SDN networks– Accuracy: data plane tracing• Tagging flows with path identifiers

– Scalability: calling context encoding• Tracing more than 2K paths by re-using K bits

in packet headers

10

Page 16: Enabling Layer 2 Pathlet Tracing through Context Encoding in SDN Hui Zhang, Cristian Lumezanu, Junghwan Rhee, Nipun Arora, Qiang Xu, Guofei Jiang NEC Labs.

Thank You! Questions?