causal reasoning in sdns (netkat) · 2019. 7. 4. · causal reasoning in sdns (netkat) georgiana...

31
Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems” 24-27 June, 2019 1

Upload: others

Post on 01-Apr-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Causal Reasoning in SDNs (NetKAT)

Georgiana Caltais, University of KonstanzShonan Seminar -“Causal Reasoning in Systems”

24-27 June, 2019

�1

Page 2: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Outline1. NetKAT - the Language

2. Reasoning & Verification

3. Towards a Framework for Causality

Sources:

“Programming, Modeling & Reasoning about Networks” (online tutorial by S.Smolka)

“NetKAT: Semantic Foundation for Networks” [C.J.Anderson et. al.], POPL’14

“A Fast Complier for NetKAT” [S.Smolka et. al.], ICFP’15

!2

Page 3: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

1. NetKAT - the Language

!3

Page 4: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

NetKAT Program - Example

!4

Page 5: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

NetKAT Syntax & Semantics

Page 6: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Switch Forwarding Tables

!6

Page 7: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Network Topologies (I)

!7

Page 8: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Network Topologies (II)

!8

Page 9: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Networks

!9

Page 10: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Networks

!10

Page 11: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Networks

!11

Page 12: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Networks

!12

Page 13: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Encoding Networks

!13

Page 14: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

2. Reasoning & Verification

!14

Page 15: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Network Verification

!15

• Sound & Complete Axiomatisation [C.J.Anderson et. al.]

Page 16: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Network Verification

!16

• Sound & Complete Axiomatisation [C.J.Anderson et. al.]

Page 17: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Network Verification

!17

• Sound & Complete Axiomatisation [C.J.Anderson et. al.]

Page 18: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Network Verification

!18

• Sound & Complete Axiomatisation [C.J.Anderson et. al.]

[[p]] = [[q]] iff |— p = q

• E.g., Reachability:

“Does the network forward from ingress (in) to egress (out)”?

NO iff |— in . (switch.topology)* . out = 0

YES iff |— in . (switch.topology)* . out =/= 0

Page 19: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Reasoning About Correctness of NetKAT Programs

• Programmer 1 has to implement a switch policy s.t.:

“H1 can only forward to H2”

• Correctness:

• H1 can forward to H2 (H1 —>> H2)

• H1 cannot forward to H3 or H4 (H1 -/->> H3,4)!19

Page 20: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Reasoning About Correctness of NetKAT Programs

“H1 can only forward to H2”

• Policy p1 : (pt = 1 . pt <— 5) + (pt = 6 . pt <— 2)

H1 can forward to H2 (H1 —>> H2)

• |— (pt = 1) . (p1 . t)* . (pt = 2) =/= 0

H1 cannot forward to H3 or H4 (H1 -/->> H3,4)

• |— (pt = 1) . (p1 . t)* . (pt = 3 + pt = 4) = 0!20

H1 —>> H2 H1 -/->> H3,4

Proven correct based on the axioms!

Page 21: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Reasoning About Correctness of NetKAT Programs

• Programmer 2 has to implement a switch policy s.t.:

“H3 can only forward to H4”

• Correctness:

• H3 can forward to H4 (H3 —>> H4)

• H3 cannot forward to H1 or H2 (H3 -/->> H1,2)!21

… shown in a similar fashion…

Page 22: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Reasoning About Correctness of NetKAT Programs

• Programmer 1: “H1 can only forward to H2” / switch policy p1

• Programmer 2: “H3 can only forward to H4” / switch policy p2

• Assume Programmer 3 implements p as the union of the two correct policies p1 and p2

p = p1 + p2

• Network becomes (p . t)* = ((p1 + p2) . t)*

• Does H1 -/->> H3,4 still hold?!22

Page 23: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Reasoning About Correctness of NetKAT Programs

H1 -/->> H3,4 holds iff

|— pt = 1 . ((p1 + p2) . t)* . (pt = 3 + pt = 4) = 0 iff

(acc. to NetKAT axioms)

|— pt = 1 . pt <— 4 + P = 0 !23

What is the cause?

Page 24: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

3. Towards a Framework for Causality

!24

Page 25: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

What Is the Cause? - Obvious Challenges -

H1 -/->> H3,4 holds iff

|— pt = 1 . ((p1 + p2) . t)* . (pt = 3 + pt = 4) = 0 iff

(acc. to NetKAT axioms)

|— pt = 1 . pt <— 4 + P = 0

provides too little information contains *

!25

Page 26: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

What Is the Cause? - Obvious Challenges -

H1 -/->> H3,4 holds iff

|— pt = 1 . ((p1 + p2) . t)* . (pt = 3 + pt = 4) = 0 iff

(acc. to NetKAT axioms)

|— pt = 1 . pt <— 4 + P = 0

provides too little information

“Star Elimination” in [C.J.Anderson et. al]

assumption: no dup, no sw <— uses all axioms to build the Normal Form of P, NF (P)

|— P ~ NF(P) … provides too little information as well…

!26

Page 27: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

What Is the Cause? - Possible Solution -

|— pt = 1 . ((p1 + p2) . t)* . (pt = 3 + pt = 4) = 0 iff (… axioms)

|— pt = 1 . pt <— 1 . pt <— 5 . pt <— 6 . pt <— 4 + Psf = 0

Inhibit some of the axioms, e.g.: f <— n . f <— n’ = f <— n’ [PA-MOD-MOD] “Approximate” *

(p.t)* = (1 + p.t)^n for some n…

and remove *-unfolding axioms

!27

Page 28: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

* “Approximation”

!28

Page 29: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Some Terminology…

!29

Page 30: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

!30

Page 31: Causal Reasoning in SDNs (NetKAT) · 2019. 7. 4. · Causal Reasoning in SDNs (NetKAT) Georgiana Caltais, University of Konstanz Shonan Seminar -“Causal Reasoning in Systems”

Questions?• Current & Future Work:

• Trace back the cause into the original code

• How does the counterfactual look like?

• Handling other interesting network properties

• E.g., waypointing…

• Responsibility, blame

!31