Checking Beliefs in Dynamic Networks
Introduction
- 当前方法的缺点:
- lack a general specification language and hardcode the network model.
- can not model dynamic networks
- 网络验证两大难题
- Lack of knowledge:determining what specification to check
- Network Churn
- 本文工作的关键
- General specification language to specify beliefs
- General modeling language to model networks
- General specification language to specify beliefs
Datalog model
Why Datalog
网络验证工具应该具有的特性:
- All Solutions
- Packet Rewrites
- Large Header Spaces
- General Specification Language
- General Modeling Language
Modeling Reachability in NoD
- NoD是一个针对大型标头空间优化的数据日志实现
- 相关的操作
- guard
- Example
Beliefs and Dynamism in NoD
Protection sets
Fabric managers are not reachable from guest virtual machines.
Reachability sets
All Fabric managers are reachable from jump boxes (internal management devices)
Equivalence of Load Balanced Paths
Load Balancer ACL Bug
- 将选择的方案编码为
h
h
h,
S
e
l
e
c
t
Select
Select为选择性启用谓词,
G
12
G_{12}
G12和
G
13
G_{13}
G13分别保护
R
1
R1
R1到
R
2
,
R
3
R2, R3
R2,R3的流量,则建模为:
R 2 ( d s t , h ) : − G 12 ∧ R 1 ( d s t , h ) ∧ S e l e c t ( h , d s t ) , R 3 ( d s t , h ) : − G 13 ∧ R 1 ( d s t , h ) ∧ S e l e c t ( h , d s t ) R2(dst,h) :- G_{12} \land R1(dst,h) \land Select(h,dst), R3(dst,h) :- G_{13} \land R1(dst,h) \land Select(h,dst) R2(dst,h):−G12∧R1(dst,h)∧Select(h,dst),R3(dst,h):−G13∧R1(dst,h)∧Select(h,dst) - 检查: ? A ( d s t , h 1 ) ∧ ¬ A ( d s t , h 2 ) ? A(dst,h_1) \land \lnot A(dst,h_2) ?A(dst,h1)∧¬A(dst,h2)
Locality
Cluster reachability
- 定义谓词
D
S
P
DSP
DSP总结到达路由的数据包
D S P ( d s t ) : − R 2 ( d s t ) , D S P ( d s t ) : − R 3 ( d s t ) , D S P ( d s t ) : − R 5 ( d s t ) DSP(dst) :- R2(dst), DSP(dst) :- R3(dst), DSP(dst) :- R5(dst) DSP(dst):−R2(dst),DSP(dst):−R3(dst),DSP(dst):−R5(dst) - 定义谓词
L
R
1
L_{R1}
LR1 代表可以到达
R
1
R1
R1的地址
L R 1 ( d s t ) : − d s t = 125.55.10.0 / 24. L_{R1}(dst) :- dst = 125.55.10.0/24. LR1(dst):−dst=125.55.10.0/24. - 检查:
S ( d s t ) : − L R 1 ( d s t ) , ? D S P ( d s t ) S(dst) :- L_{R1}(dst), ? DSP(dst) S(dst):−LR1(dst),?DSP(dst)
Dynamic Packet Headers
MPLS
Middleboxes and Backup Routers
- Incorrect Middlebox traversal
- Backup Non-equivalence
Network Optimized Datalog
- μ Z \mu Z μZ (the Datalog framework in Z3)