Investigating SDN Forwarding with RuleScope
Explore research presented in INFOCOM 2016 regarding the inspection of SDN forwarding with RuleScope. The study delves into ensuring that every flow is on the right track, detecting and troubleshooting forwarding/rule faults, and uncovering actual data-plane flow tables through feedback and probing mechanisms.
Uploaded on Sep 22, 2024 | 0 Views
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
INFOCOM 2016 Is Every Flow on The Right Track? Inspect SDN Fwding with RuleScope Kai Bu1, Xitao Wen2, Bo Yang1 Yan Chen2, Li Erran Li3, Xiaolin Chen4 1Zhejiang University,2Northwestern University 3Fudan University, 4Chuxiong Normal University
Is Every Flow on The Right Track? Inspect SDN Fwding RuleScope
Is Every Flow on The Right Track? Inspect SDN Fwding RuleScope
feedback probe Is Every Flow on The Right Track? Inspect SDN Fwding RuleScope
feedback feedback probe probe Is Every Flow on The Right Track? Inspect SDN Fwding RuleScope
feedback probe Is Every Flow on The Right Track? Inspect SDN Fwding RuleScope detection reveal forwarding/rule faults
feedback probe Is Every Flow on The Right Track? Inspect SDN Fwding RuleScope detection reveal forwarding/rule faults troubleshooting uncover actual data-plane flow tables
feedback probe Is Every Flow on The Right Track? Inspect SDN Fwding Inspect SDN Fwding Is Every Flow on The Right Track? RuleScope RuleScope detection reveal forwarding/rule faults troubleshooting uncover actual data-plane flow tables
Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN?
Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN Software-Defined Networking
Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN Software-Defined Networking
Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN Software-Defined Networking
Controller Controller Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN App App App Software-Defined Networking
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN App Forwarding flow
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod App Forwarding flow
Switch Rule Controller Priority Matching Action sw1 p1 src_ip=10.20.*.* fwd(sw2) Controller sw2 P2 src_ip=10.20.*.* fwd(sw3) Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod sw3 p3 src_ip=10.20.*.* fwd(out) App Forwarding sw1 sw2 sw3 flow p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod rule faults irritate App Forwarding sw1 sw2 sw3 flow p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod rule faults irritate App Forwarding missing fault sw3 sw1 sw2 flow priority fault p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod App Forwarding missing fault rule installation failure sw3 sw1 sw2 flow p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod loss App Forwarding missing fault rule installation failure sw3 sw1 sw2 bug flow p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod loss App Forwarding missing fault rule installation failure sw3 sw1 sw2 bug flow p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod App Forwarding sw4 sw1 rule update scheduling sw2 sw3 flow priority fault priority-swap between overlapping rules p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p4, src_ip=10.*.*.*, fwd(sw4) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod App Forwarding sw4 sw1 sw2 sw3 flow priority fault priority-swap between overlapping rules p4, src_ip=10.*.*.*, fwd(sw4) p1, src_ip=10.20.*.*, fwd(sw2) p3, src_ip=10.20.*.*, fwd(out) p2, src_ip=10.20.*.*, fwd(sw3)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod rule faults irritate App Forwarding sw4 missing fault rule installation failure sw3 sw1 sw2 flow priority fault priority-swap between overlapping rules p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN FlowMod rule faults troubleshoot App detect & RuleScope sw4 sw1 sw2 sw3 flow p1, src_ip=10.20.*.*, fwd(sw2) p2, src_ip=10.20.*.*, fwd(sw3) p3, src_ip=10.20.*.*, fwd(out)
Controller Controller Routing Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN App App Postcard Processor Injector/ Interceptor RuleScope Framework
Controller Controller Routing Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN augmented rules App App original rules NetSight [nsdi 14] Postcard Processor Injector/ Interceptor RuleScope Framework
Controller Controller Routing Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN augmented rules which rule App App original rules NetSight [nsdi 14] which packet is processed by Postcard Processor Injector/ Interceptor RuleScope Framework packet history
Controller Controller Routing Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe packets App App probe packets Injector/ Interceptor Postcard Processor RuleScope Framework
Controller Controller Routing Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe feedback App App probe feedback Injector/ Interceptor Postcard Processor RuleScope Framework
Controller Rule Fault Controller if Probe.MatchedRule != Probe.ExpectedRule Routing Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe feedback App App probe feedback Injector/ Interceptor Postcard Processor RuleScope Framework
Controller Flow Table Rule Fault ? Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN RuleScope Algorithms
Controller Flow Table Rule Fault ? Controller dependency graph Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r0 r1 r4 {r0, r1, r2, r3, r4, r5, r6} RuleScope Algorithms r2 r3 r5 r6 <ri, rj> if ri.matching rj.matching AND ri.priority > rj.priority
Controller Flow Table Rule Fault ? Controller dependency graph Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r0 r1 r4 {r0, r1, r2, r3, r4, r5, r6} RuleScope Algorithms r2 r3 r5 r6 <ri, rj> if smaller problem scale within each component; parallelism among different components
Controller Flow Table Rule Fault ? Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe generation Probe(ri, H): RuleScope Algorithms generate probe packets that match ribut not rules in set H
Controller Flow Table Rule Fault ? Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 probe generation Probe(ri, H): RuleScope Algorithms Is r6missing? ri= r6 H = {r4, r5} r5 r6
Controller Flow Table Rule Fault ? Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 probe generation Probe(ri, H): RuleScope Algorithms Is r6missing? ri= r6 H = {r4, r5} r5 r6 <ri, rj> if proved NP-hard by reduction from SAT; based on MiniSat, a high-performance SAT solver
Controller Flow Table Rule Fault ? Controller dependency graph probe generation Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN RuleScope Algorithms
Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN RuleScope Algorithms detection
Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 r0 r1 RuleScope Algorithms r2 r3 r5 r6 <ri, rj> if for a weakly connected component generate probes by topo order detection
Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 H = H r4; H = Probe(r4, H); RuleScope Algorithms Probe(r5, H); H = H r5; r5 Probe(r5, H); r6 <ri, rj> if for a weakly connected component generate probes by topo order detection
riis detected as faulty if ri.Probe.MatchedRule != ri Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 H = H r4; H = Probe(r4, H); RuleScope Algorithms Probe(r5, H); H = H r5; r5 Probe(r6, H); r6 <ri, rj> if for a weakly connected component generate probes by topo order detection
riis detected as faulty if ri.Probe.MatchedRule != ri example: r4.Probe.MatchedRule = r5 either r4is missing, or r4is priority-swap with r5 Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 H = H r4; H = Probe(r4, H); RuleScope Algorithms Probe(r5, H); H = H r5; r5 Probe(r6, H); r6 <ri, rj> if for a weakly connected component generate probes by topo order detection
Controller example: r4.Probe.MatchedRule = r5 either r4is missing, or r4is priority-swap with r5 Controller ? Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN r4 RuleScope Algorithms r5 r6 <ri, rj> if detection
riis detected as faulty if ri.Probe.MatchedRule != ri example: r4.Probe.MatchedRule = r5 either r4is missing, or r4is priority-swap with r5 Controller Controller ? Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN RuleScope Algorithms troubleshooting
riis detected as faulty if ri.Probe.MatchedRule != ri Input: flow table on controller Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe & feedback Output: flow table on switch RuleScope Algorithms troubleshooting
riis detected as faulty if ri.Probe.MatchedRule != ri Input: flow table on controller Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe & feedback rule.priority on sw? Output: flow table on switch RuleScope Algorithms troubleshooting
riis detected as faulty if ri.Probe.MatchedRule != ri Input: flow table on controller Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN probe & feedback Output: flow table on switch [ ].DependencyGraph RuleScope Algorithms troubleshooting
riis detected as faulty if ri.Probe.MatchedRule != ri Input: flow table on controller Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN {r0, r1, r2, r3} if (r0, r1).probe.MatchedRule = r2 probe & feedback Output: flow table on switch [ ].DependencyGraph RuleScope Algorithms r2 r0 r1 troubleshooting
riis detected as faulty if ri.Probe.MatchedRule != ri Input: flow table on controller Controller Controller Monitor Gotta Tell You Switches Only Once Toward Bandwidth-Efficient Flow Setup for SDN {r0, r1, r2, r3} if (r0, r1).probe.MatchedRule = r2 (r0, r3).probe.MatchedRule = r0 r2 probe & feedback Output: flow table on switch [ ].DependencyGraph RuleScope Algorithms r0 r1 troubleshooting r3