ProAc&ve ¡Rou&ng ¡In ¡Scalable ¡ Data ¡Centers ¡with ¡PARIS
Joint ¡work ¡with ¡Dushyant ¡Arora+ ¡and ¡ ¡Jennifer ¡Rexford* ¡
+Arista ¡Networks ¡
*Princeton ¡University ¡
ProAc&ve Rou&ng In Scalable Data Centers with PARIS - - PowerPoint PPT Presentation
ProAc&ve Rou&ng In Scalable Data Centers with PARIS Theophilus Benson Duke University Joint work with Dushyant Arora + and Jennifer Rexford* + Arista
Joint ¡work ¡with ¡Dushyant ¡Arora+ ¡and ¡ ¡Jennifer ¡Rexford* ¡
+Arista ¡Networks ¡
*Princeton ¡University ¡
Scalable ¡ Seamless ¡ mobility ¡ Mul8path ¡ rou8ng ¡ Layer ¡2: ¡ Flat ¡Addresses ¡ Layer ¡3: ¡ Hierarchical ¡ Addresses ¡ ¡ Overlays: ¡ VL2/Portland ¡ PARIS ¡
Not ¡scalable ¡ Seamless ¡mobility ¡ No ¡Mul8path ¡
Scalable ¡ No ¡seamless ¡mobility ¡ Mul8path ¡
Seamless ¡mobility ¡ Mul8path ¡ Not ¡scalable ¡
Flat-‑Address ¡
Hierarchical-‑ Address ¡
Resolve ¡
Scalable ¡ Seamless ¡ mobility ¡ Mul8path ¡ rou8ng ¡ Layer ¡2: ¡ Flat ¡Addresses ¡ Layer ¡3: ¡ Hierarchical ¡ Addresses ¡ ¡ Overlays: ¡ VL2/Portland ¡
Network ¡Controller ¡ End-‑Hosts: ¡
Switches: ¡
Network ¡Controller: ¡
forwarding ¡entries ¡ Overheads ¡eliminated ¡ ¡
Scalable ¡ Seamless ¡ mobility ¡ Mul8path ¡ rou8ng ¡ Layer ¡2: ¡ Flat ¡Addresses ¡ Layer ¡3: ¡ Hierarchical ¡ Addresses ¡ ¡ Overlays: ¡ VL2/Portland ¡ PARIS ¡
Network ¡Controller ¡ Pod-‑Addressing ¡ Core-‑Addressing ¡ Pod ¡switch ¡track ¡ addresses ¡for ¡all ¡VMs ¡in ¡ the ¡pod ¡ Par88on ¡IP-‑Address ¡ across ¡core ¡devices ¡
10.10.10.1 ¡ 10.10.10.2 ¡ 10.10.10.3 ¡ 10.10.10.4 ¡
10.10.10.1 ¡ 10.10.10.2 ¡ 10.10.10.3 ¡ 10.10.10.4 ¡ 10.10.10.1-‑>2 ¡ 10.10.10.2-‑>2 ¡ 10.10.10.3-‑>1 ¡ 10.10.10.4-‑>1 ¡ 10.10.10.1-‑>1 ¡ 10.10.10.2-‑>1 ¡ 10.10.10.3-‑>2 ¡ 10.10.10.4-‑>2 ¡ 10.10.10.1-‑>1 ¡ 10.10.10.2-‑>1 ¡ 10.10.10.3-‑>1 ¡ 10.10.10.4-‑>1 ¡ ¡default-‑>(2,3) ¡ default-‑>(2,3) ¡
1 ¡ 2 ¡ 3 ¡
10.3.0.0/16 ¡ 10.0.0.0/16 ¡ 10.1.0.0/16 ¡ 10.2.0.0/16 ¡
10.3.0.0/16 ¡ 10.0.0.0/16 ¡ 10.1.0.0/16 ¡ 10.2.0.0/16 ¡
1 ¡ 2 ¡ 3 ¡ 4 ¡ 1 ¡ 2 ¡ 1 ¡ 2 ¡ DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡
DIP:10.0.0.0/16-‑>{1,2} ¡ DIP:10.1.0.0/16-‑>{3,4} ¡
DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡
DIP:10.1.0.0/16-‑>3 ¡
DIP:10.0.0.3-‑>2 ¡ DIP:10.0.0.4-‑>2 ¡
DIP:10.2.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>4 ¡ DIP:10.0.0.0/16-‑>3 ¡
DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡
DIP:10.2.0.0/16-‑>3 ¡
DIP:10.3.0.3-‑>2 ¡ DIP:10.3.0.4-‑>2 ¡
DIP:10.0.0.0/16-‑>4 ¡ DIP:10.1.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>3 ¡
DIP:10.3.0.2-‑>1 ¡ 10.3.0.1 ¡ 10.0.0.1 ¡
DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡
DIP:10.2.0.0/16-‑>3 ¡
DIP:10.3.0.3-‑>2 ¡ DIP:10.3.0.4-‑>2 ¡
DIP:10.0.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>{1,2} ¡ DIP:10.1.0.0/16-‑>4 ¡ DIP:10.2.0.0/16-‑>{3,4} ¡
1 ¡ 2 ¡ 3 ¡ 4 ¡ 1 ¡ 2 ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡
DIP:10.1.0.0/16-‑>3 ¡
DIP:10.0.0.3-‑>2 ¡ DIP:10.0.0.4-‑>2 ¡
DIP:10.2.0.0/16-‑>4 ¡ DIP:10.0.0.0/16-‑>{1,2} ¡ DIP:10.3.0.0/16-‑>4 ¡ DIP:10.1.0.0/16-‑>{3,4} ¡ DIP:10.0.0.0/16-‑>3 ¡ DIP:10.3.0.0/16-‑>3 ¡
DIP:10.3.0.2-‑>1 ¡ Limita&ons ¡
DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡
DIP:10.2.0.0/16-‑>3 ¡
DIP:10.3.0.3-‑>2 ¡ DIP:10.3.0.4-‑>2 ¡
DIP:10.0.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>{1,2} ¡ DIP:10.1.0.0/16-‑>4 ¡ DIP:10.2.0.0/16-‑>{3,4} ¡
1 ¡ 2 ¡ 3 ¡ 4 ¡ 1 ¡ 2 ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡
DIP:10.1.0.0/16-‑>3 ¡
DIP:10.0.0.3-‑>2 ¡ DIP:10.0.0.4-‑>2 ¡
DIP:10.2.0.0/16-‑>4 ¡ DIP:10.0.0.0/16-‑>{1,2} ¡ DIP:10.3.0.0/16-‑>4 ¡ DIP:10.1.0.0/16-‑>{3,4} ¡ DIP:10.0.0.0/16-‑>3 ¡ DIP:10.3.0.0/16-‑>3 ¡
DIP:10.3.0.2-‑>1 ¡ Limita&ons ¡
Not ¡u8lized ¡ Highly ¡u8lized ¡
DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡
DIP:10.2.0.0/16-‑>3 ¡
DIP:10.3.0.3-‑>2 ¡ DIP:10.3.0.4-‑>2 ¡
DIP:10.0.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>{1,2} ¡ DIP:10.1.0.0/16-‑>4 ¡ DIP:10.2.0.0/16-‑>{3,4} ¡
1 ¡ 2 ¡ 3 ¡ 4 ¡ 1 ¡ 2 ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡
DIP:10.1.0.0/16-‑>3 ¡
DIP:10.0.0.3-‑>2 ¡ DIP:10.0.0.4-‑>2 ¡
DIP:10.2.0.0/16-‑>4 ¡ DIP:10.0.0.0/16-‑>{1,2} ¡ DIP:10.3.0.0/16-‑>4 ¡ DIP:10.1.0.0/16-‑>{3,4} ¡ DIP:10.0.0.0/16-‑>3 ¡ DIP:10.3.0.0/16-‑>3 ¡
DIP:10.3.0.2-‑>1 ¡
DIP:10.0.0.0/14-‑>{3,4} ¡ DIP:10.0.0.0/14-‑>{3,4} ¡
High-‑BW ¡PARIS: ¡
across ¡core ¡nodes ¡
DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡
DIP:10.2.0.0/16-‑>3 ¡
DIP:10.3.0.3-‑>2 ¡ DIP:10.3.0.4-‑>2 ¡
DIP:10.0.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>{1,2} ¡ DIP:10.1.0.0/16-‑>4 ¡ DIP:10.2.0.0/16-‑>{3,4} ¡
1 ¡ 2 ¡ 3 ¡ 4 ¡ 1 ¡ 2 ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡
DIP:10.1.0.0/16-‑>3 ¡
DIP:10.0.0.3-‑>2 ¡ DIP:10.0.0.4-‑>2 ¡
DIP:10.2.0.0/16-‑>4 ¡ DIP:10.0.0.0/16-‑>{1,2} ¡ DIP:10.3.0.0/16-‑>4 ¡ DIP:10.1.0.0/16-‑>{3,4} ¡ DIP:10.0.0.0/16-‑>3 ¡ DIP:10.3.0.0/16-‑>3 ¡
DIP:10.3.0.2-‑>1 ¡
DIP:10.0.0.0/14-‑>{3,4} ¡ DIP:10.0.0.0/14-‑>{3,4} ¡
High-‑BW ¡PARIS: ¡
across ¡core ¡nodes ¡
DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.3.0.2-‑>1 ¡
DIP:10.2.0.0/16-‑>3 ¡
DIP:10.3.0.3-‑>2 ¡ DIP:10.3.0.4-‑>2 ¡
DIP:10.0.0.0/16-‑>4 ¡ DIP:10.3.0.0/16-‑>{1,2} ¡ DIP:10.1.0.0/16-‑>4 ¡ DIP:10.2.0.0/16-‑>{3,4} ¡
1 ¡ 2 ¡ 3 ¡ 4 ¡ 1 ¡ 2 ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡ DIP:*.*.*.*-‑>{2,3} ¡ DIP:10.0.0.1-‑>1 ¡ DIP:10.0.0.2-‑>1 ¡
DIP:10.1.0.0/16-‑>3 ¡
DIP:10.0.0.3-‑>2 ¡ DIP:10.0.0.4-‑>2 ¡
DIP:10.2.0.0/16-‑>4 ¡ DIP:10.0.0.0/16-‑>{1,2} ¡ DIP:10.3.0.0/16-‑>4 ¡ DIP:10.1.0.0/16-‑>{3,4} ¡ DIP:10.0.0.0/16-‑>3 ¡ DIP:10.3.0.0/16-‑>3 ¡
DIP:10.3.0.2-‑>1 ¡ DIP:10.3.0.1-‑>{7,8} ¡ DIP:10.3.0.1-‑>1 ¡ DIP:10.3.0.1-‑>1 ¡
– Link ¡capacity: ¡
0 ¡ 200000 ¡ 400000 ¡ 600000 ¡ 800000 ¡ 1000000 ¡ 1200000 ¡ 4000 ¡ 16000 ¡ 32000 ¡ 64000 ¡
Hosts ¡ Flow ¡table ¡size ¡
128 ¡ports* ¡
[1] ¡ ¡NoviFlow. ¡1248 ¡Datasheet. ¡hpp://bit.ly/1baQd0A. ¡ ¡
Communica&on ¡Pa^ern ¡ Latency ¡ Inter-‑pod ¡ 61us ¡ Intra-‑pod ¡ 106us ¡
¡
– Flat ¡layer ¡3 ¡network ¡ ¡ – Pre-‑posi8oning ¡forwarding ¡state ¡in ¡switches ¡ ¡ – Using ¡topological ¡knowledge ¡to ¡par88on ¡forwarding ¡state ¡
– Scales ¡to ¡large ¡data-‑centers ¡ – Can ¡be ¡implemented ¡using ¡exis8ng ¡commodity ¡devices ¡