Formal Semantics and Automated Verification for the Border Gateway Protocol
Konstantin Weitz Doug Woos Michael
- D. Ernst
Arvind Krishnamurthy Zachary Tatlock Emina Torlak
Formal Semantics and Automated Verification for the Border Gateway - - PowerPoint PPT Presentation
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
Konstantin Weitz Doug Woos Michael
Arvind Krishnamurthy Zachary Tatlock Emina Torlak
AS AS
AS AS AS AS
AS
AS AS AS AS
Autonomous systems communicate routing information via the Border Gateway Protocol (RFC 4271).
AS
AS AS AS AS
Autonomous systems communicate routing information via the Border Gateway Protocol (RFC 4271).
AS
AS AS AS AS
Autonomous systems communicate routing information via the Border Gateway Protocol (RFC 4271).
AS
Bagpipe
Bagpipe
b > a a > b
X Y A a b a b a b Z
b > a a > b
X Y A a b a b a b a b Z
b > a a > b
X Y A a b Z
b > a a > b
X Y A a b
New Guideline: Preserve iBGP Preference
Z
b > a a > b
X Y A a b
New Guideline: Preserve iBGP Preference
Z
Specification Configuration
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 permitCounter Example Correctness Proof
Bagpipe
14 problems
Bagpipe
Scenarios 19 problems
Bagpipe
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 permitConfiguration
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 permitTopology 100,000x Random
A B C
Configuration
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 permitTopology
100,000x Random
A B C
Configuration
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 permitTopology
Trace
A B B C A C A
…
100,000x Random
A B C
Configuration
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 permitTopology
Trace
A B B C A C A
…
100,000x Random
A B C
Configuration
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 permitTopology
Trace
A B B C A C A
…
100,000x Random
A B C
Bagpipe