Formal Semantics and Automated Verification for the Border Gateway Protocol Konstantin Doug Emina Michael Arvind Zachary Weitz Woos Torlak D. Ernst Krishnamurthy Tatlock
The Border Gateway Protocol
The Border Gateway Protocol AS AS
The Border Gateway Protocol AS AS AS AS AS
The Border Gateway Protocol Autonomous systems communicate routing information via the Border Gateway Protocol (RFC 4271) . AS AS AS AS AS
The Border Gateway Protocol Autonomous systems communicate routing information via the Border Gateway Protocol (RFC 4271) . AS AS AS AS AS
The Border Gateway Protocol Autonomous systems communicate routing information via the Border Gateway Protocol (RFC 4271) . AS AS AS AS AS
BGP Semantics Evaluation
Evaluation 1. Gao & Rexford Proof BGP Semantics
Evaluation 1. Gao & Rexford Proof BGP Semantics 2. Configuration Verification Bagpipe
Evaluation 1. Gao & Rexford Proof BGP Semantics 2. Configuration Verification Bagpipe 3. Differential Testing
1. Gao & Rexford Proof Guidelines → BGP Converges!
1. Gao & Rexford Proof Guidelines → BGP Converges! ?
1. Gao & Rexford Proof Guidelines → BGP Converges! ? b > a a > b X Y a a b b a b A Z
1. Gao & Rexford Proof Guidelines → BGP Converges! ? b b > a a > b X Y b a b a a a b A Z
1. Gao & Rexford Proof Guidelines → BGP Converges! ? b > a a > b X Y a b A Z
1. Gao & Rexford Proof Guidelines → BGP Converges! ? b > a a > b X Y a b New Guideline: A Z Preserve iBGP Preference
1. Gao & Rexford Proof Guidelines → BGP Converges! ? b > a a > b X Y a b New Guideline: A Z Preserve iBGP Preference
2. Configuration Verification Bagpipe Specification Correctness Proof Bagpipe configure terminal router bgp 1 Counter neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 Example ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Configuration
2. Configuration Verification Bagpipe GaoRexford • Bagpipe 14 problems Internet2 >100K •
2. Configuration Verification Bagpipe • GaoRexford • NoMaritan • BlockToExternal Bagpipe • 10 Juniper Scenarios 19 problems configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit • Internet2 >100K • BelWü >200K • Selfnet >50
3. Differential Testing 100,000x Random C A B Topology configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Configuration
3. Differential Testing 100,000x Random C A B Topology C-BGP Simulator configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Configuration
3. Differential Testing 100,000x Random C A A B A B Topology C-BGP B C Simulator A C configure terminal router bgp 1 … neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Trace Configuration
3. Differential Testing 100,000x Random C A A B A B Topology C-BGP B C Simulator A C configure terminal router bgp 1 … neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Trace Configuration
3. Differential Testing 100,000x Random C A A B A B Topology C-BGP B C Simulator A C configure terminal router bgp 1 … neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Trace Configuration • Resends Identical Announcements • Modifies AdjRIBsIn
Related Work • Simple Path-Vector Protocol Griffin, et al. TON’10 • Gao & Rexford’s Semantics Gao, Rexford, SIGMETRICS’00 • Isabelle Semantics Voellmy, SafeConfig’09
Related Work • Simple Path-Vector Protocol Griffin, et al. TON’10 • Gao & Rexford’s Semantics Gao, Rexford, SIGMETRICS’00 • Isabelle Semantics Voellmy, SafeConfig’09 Simplified: iBGP, Tie-Breaking, Withdrawals, …
Thank You 1. Gao & Rexford Proof BGP Semantics 2. Configuration Verification Bagpipe 3. Differential Testing weitzkon@cs.uw.edu / bagpipe.uwplse.org
Recommend
More recommend