Forwarding Plane Correctness Nick ¡McKeown ¡ Stanford ¡University ¡ ¡
App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ Specialized Open Interface Applications Windows ¡ Mac ¡ Specialized or or Linux ¡ (OS) ¡ OS ¡ Operating System Open Interface Specialized Hardware Microprocessor Horizontal Vertically integrated Open interfaces Closed, proprietary Rapid innovation Slow innovation Huge industry Small industry
App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ Open Interface Specialized Features Control ¡ Control ¡ Control ¡ or or Plane ¡ Plane ¡ Plane ¡ Specialized Control Open Interface Plane Specialized Merchant Hardware Switching Chips Horizontal Vertically integrated Open interfaces Closed, proprietary Rapid innovation Slow innovation
What ¡is ¡SDN? ¡ (when ¡we ¡clear ¡away ¡all ¡the ¡hype) ¡
A ¡network ¡in ¡which ¡the ¡control ¡plane ¡is ¡ ¡ physically ¡separate ¡from ¡the ¡forwarding ¡plane. ¡ ¡ and ¡ ¡ A ¡single ¡control ¡plane ¡controls ¡ ¡ several ¡forwarding ¡devices. ¡ (That’s ¡it) ¡
How ¡do ¡other ¡industries ¡ ¡ check ¡for ¡correctness? ¡
Making ¡ASICs ¡Work ¡ SpecificaTon ¡ $10B ¡tool ¡business ¡ FuncTonal ¡ Testbench ¡& ¡ supports ¡a ¡ DescripTon ¡(RTL) ¡ Vectors ¡ $250B ¡chip ¡industry ¡ ¡ FuncTonal ¡ VerificaTon ¡ Logical ¡Synthesis ¡ 100s ¡of ¡Books ¡ StaTc ¡Timing ¡ >10,000 ¡Papers ¡ Place ¡& ¡Route ¡ 10s ¡of ¡Classes ¡ Design ¡Rule ¡ Checking ¡(DRC) ¡ Layout ¡vs ¡ SchemaTc ¡(LVS) ¡ Layout ¡ParasiTc ¡ Manufacture ¡ ExtracTon ¡(LPE) ¡ & ¡Validate ¡
Making ¡So\ware ¡Work ¡ SpecificaTon ¡ $10B ¡tool ¡business ¡ supports ¡a ¡ FuncTonal ¡ Testbench ¡ $300B ¡S/W ¡industry ¡ ¡ DescripTon ¡(Code) ¡ StaTc ¡Code ¡ Invariant ¡ ¡ Model ¡ Analysis ¡ Checker ¡ Checking ¡ 100s ¡of ¡Books ¡ >100,000 ¡Papers ¡ InteracTve ¡ Run-‑Tme ¡Checker ¡ Debugger ¡ 10s ¡of ¡Classes ¡
Making ¡Networks ¡Work ¡(Today) ¡ traceroute, ping, tcpdump, SNMP, Netflow ¡ …. ¡er, ¡that’s ¡about ¡it. ¡
Networks ¡are ¡kept ¡working ¡by ¡ ¡ ¡ “Masters ¡of ¡Complexity” ¡ ¡ ¡ A ¡handful ¡of ¡books ¡ Almost ¡no ¡papers ¡ No ¡classes ¡
Philosophy ¡of ¡Making ¡Networks ¡Work ¡ YoYo ¡ ¡ “You’re ¡On ¡Your ¡Own” ¡
Even ¡simple ¡quesTons ¡are ¡hard ¡ 1. Can ¡host ¡A ¡talk ¡to ¡host ¡B? ¡ ¡ 2. What ¡are ¡all ¡the ¡packet ¡headers ¡from ¡A ¡that ¡ can ¡reach ¡B? ¡ ¡ 3. Are ¡there ¡any ¡loops ¡in ¡the ¡network? ¡ ¡ 4. Is ¡Group ¡X ¡provably ¡isolated ¡from ¡Group ¡Y? ¡ 5. What ¡happens ¡if ¡I ¡remove ¡a ¡line ¡in ¡the ¡config ¡ file? ¡ 12
A ¡Bug ¡Story ¡ Tue, ¡Oct ¡2, ¡2012 ¡at ¡7:54 ¡PM: ¡ ¡ “Between ¡18:20-‑19:00 ¡tonight ¡we ¡experienced ¡a ¡ complete ¡network ¡outage ¡in ¡the ¡building ¡when ¡a ¡ loop ¡was ¡accidentally ¡created ¡by ¡CSD-‑CF ¡staff. ¡We're ¡ invesTgaTng ¡the ¡exact ¡circumstances ¡to ¡understand ¡ why ¡this ¡caused ¡a ¡problem, ¡since ¡automaTc ¡ protecTons ¡are ¡supposed ¡to ¡be ¡in ¡place ¡to ¡prevent ¡ loops ¡from ¡disabling ¡the ¡network.” ¡ 13 ¡
Why ¡TroubleshooTng ¡is ¡Hard ¡ ¡ ¡ ¡ ¡ ¡ ¡ 14 ¡
Why ¡TroubleshooTng ¡is ¡Hard ¡ ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ State ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ ¡ State ¡ ¡ Forwarding ¡State ¡ L3 ¡Router ¡ L2 ¡Switch ¡ Firewall ¡ Forwarding ¡ ¡ State ¡ Decrement ¡TTL, ¡ Send ¡out ¡port ¡1 ¡ Drop ¡packet ¡ AcTon ¡ If ¡dst ¡IP ¡address ¡ ¡ If ¡dst ¡MAC ¡ ¡ If ¡dst ¡port ¡ Match ¡ Update ¡checksum, ¡ address ¡is ¡X ¡ is ¡22 ¡ is ¡Y ¡ Modify ¡dst ¡MAC, ¡ Send ¡out ¡port ¡2 ¡ 15 ¡
Why ¡TroubleshooTng ¡is ¡Hard ¡ Control ¡Plane ¡ ¡ Forwarding ¡ Control ¡Plane ¡ ¡ State ¡ Forwarding ¡ State ¡ Control ¡Plane ¡ Control ¡Plane ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ ¡ Control ¡Plane ¡ State ¡ ¡ Forwarding ¡ ¡ State ¡ 16 ¡
Why ¡TroubleshooTng ¡is ¡Hard ¡ ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ State ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ ¡ State ¡ ¡ Forwarding ¡ ¡ State ¡ 17 ¡
TroubleshooTng ¡Today ¡ ¡ Forwarding ¡ ping ¡ Forwarding ¡ State ¡ State ¡ ¡ Forwarding ¡ State ¡ Forwarding ¡ ¡ ¡ State ¡ traceroute Forwarding ¡ ¡ State ¡ SNMP tcpdump • Tedious ¡and ¡ad ¡hoc ¡ • Requires ¡skill ¡and ¡experience ¡ • Not ¡guaranteed ¡to ¡provide ¡helpful ¡answers ¡ 18 ¡
Neither ¡observe ¡or ¡control ¡ Complex ¡interacTon ¡ ¡ – Between ¡mulTple ¡protocols ¡on ¡a ¡switch/router. ¡ – Between ¡state ¡on ¡different ¡switches/routers. ¡ MulTple ¡uncoordinated ¡writers ¡of ¡state. ¡ ¡ Operators ¡can’t… ¡ – Observe ¡all ¡state. ¡ – Control ¡all ¡state. ¡
How ¡SDN ¡helps ¡
Scoo ¡Shenker ¡at ¡1 st ¡ONS ¡in ¡2011 ¡ ¡ ¡ “The ¡Future ¡of ¡Networking ¡and ¡the ¡Past ¡of ¡Protocols” ¡
So\ware ¡Defined ¡Network ¡(SDN) ¡ ( ( ) ( ) ) f View f View f View Control Control Control Programs Programs Programs Abstract Network View Network ¡VirtualizaTon ¡ Global Network View Network ¡OS ¡ Packet ¡ Abstract Forwarding ¡ ¡ Packet ¡ Forwarding ¡ Forwarding ¡ ¡ Model ¡ (e.g. OpenFlow) Packet ¡ Forwarding ¡ ¡ Packet ¡ ¡ Forwarding ¡ ¡ Packet ¡ ¡ Forwarding ¡ ¡ ¡
The ¡Technical ¡Benefits ¡of ¡SDN ¡ ¡ 1. Well-‑defined ¡control ¡abstracTon ¡ 2. Well-‑defined ¡forwarding ¡abstracTon ¡ 3. Well-‑defined ¡forwarding ¡behavior ¡
The ¡Technical ¡Benefits ¡(1) ¡ Well-‑defined ¡control ¡abstracTon ¡ – Control ¡plane ¡can ¡run ¡on ¡modern ¡servers ¡ – Can ¡adopt ¡so\ware ¡engineering ¡best-‑pracTces ¡ – Easier ¡to ¡add ¡new ¡control ¡programs ¡ – …or ¡customize ¡locally ¡ – Solve ¡distributed ¡systems ¡problem ¡once, ¡rather ¡ than ¡for ¡every ¡protocol ¡
OSPF ¡ ¡ OSPF ¡ Dijkstra ¡ ¡ Dijkstra ¡ 5% ¡ Global Network Map ¡ ¡ Network ¡OS ¡ Network ¡ 95% ¡ ¡ Map ¡ ¡ ¡ OS ¡ Specialized Packet ¡ Hardware Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ Packet ¡ ¡ Forwarding ¡ ¡ Packet ¡ ¡ Forwarding ¡ ¡ ¡
The ¡Technical ¡Benefits ¡of ¡SDN ¡ ¡ 1. Well-‑defined ¡control ¡abstracTon ¡ 2. Well-‑defined ¡forwarding ¡abstracTon ¡ 3. Well-‑defined ¡forwarding ¡behavior ¡
The ¡Technical ¡Benefits ¡(2) ¡ Well-‑defined ¡forwarding ¡abstracTon ¡ – e.g. ¡OpenFlow ¡ – Vendor-‑agnosTc ¡interface ¡to ¡forwarding ¡plane ¡ – Simpler, ¡lower-‑cost, ¡lower-‑power ¡hardware ¡
Match-‑AcTon ¡Forwarding ¡AbstracTon ¡ ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ State ¡ Forwarding ¡ ¡ State ¡ Forwarding ¡ ¡ State ¡ ¡ Forwarding ¡State ¡ L3 ¡Router ¡ L2 ¡Switch ¡ Firewall ¡ Forwarding ¡ ¡ State ¡ Decrement ¡TTL, ¡ Send ¡out ¡port ¡1 ¡ Drop ¡packet ¡ AcTon ¡ If ¡dst ¡IP ¡address ¡ ¡ If ¡dst ¡MAC ¡ ¡ If ¡dst ¡port ¡ Match ¡ Update ¡checksum, ¡ address ¡is ¡X ¡ is ¡22 ¡ is ¡Y ¡ Modify ¡dst ¡MAC, ¡ Send ¡out ¡port ¡2 ¡ 28 ¡
Match-‑AcTon ¡Forwarding ¡AbstracTon ¡ “Plumbing ¡primiTves” ¡ Ac<on ¡Primi<ves ¡ 1. “Forward ¡to ¡ports ¡4 ¡& ¡5” ¡ 2. “Push ¡header ¡Y ¡a\er ¡bit ¡12” ¡ 3. “Pop ¡header ¡bits ¡8-‑12” ¡ 4. “Decrement ¡bits ¡13-‑18” ¡ 5. “Drop ¡packet” ¡ 6. … ¡ H H’ Match Action F Action(F) G Action(G) H Action(H)
MulTple ¡Table ¡Match-‑AcTon ¡ H n H 1 H’ Match Action Match Action F 1 Action(F) F n Action(F) G 1 Action(G) G n Action(G) H 1 Action(H) H n Action(H)
Recommend
More recommend