97
Ahmed El-Hassany Petar Tsankov Laurent Vanbever Martin Vechev NetComplete: Practical Network-Wide Configuration Synthesis with Autocompletion

New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Ahmed El-Hassany Petar Tsankov Laurent Vanbever Martin Vechev

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

Page 2: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Ahmed El-Hassany

I shouldn’t be the one giving this talk…

Third year PhD student @ETH Zürich

Papers at NSDI, SIGCOMM, PLDI, CAV, SOSR, …

Check him out at hassany.ps

Page 3: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Ahmed El-Hassany Petar Tsankov Laurent Vanbever Martin Vechev

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

Page 4: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich
Page 5: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich
Page 6: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich
Page 7: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Yes. The Internet seems to be better off during week-ends…

Page 8: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Yes. The Internet seems to be better off during week-ends…

Page 9: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

“Human factors are responsible

for 50% to 80% of network outages”

Juniper Networks, What’s Behind Network Downtime?, 2008

Page 10: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

https://www.theregister.co.uk/2017/08/27/google_routing_blunder_sent_japans_internet_dark/

Page 11: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Someone in Google fat-thumbed a

Border Gateway Protocol (BGP) advertisement

and sent Japanese Internet traffic into a black hole.

In August 2017

Page 12: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Someone in Google fat-thumbed a

Border Gateway Protocol (BGP) advertisement

and sent Japanese Internet traffic into a black hole.

Traffic from Japanese giants like NTT and KDDI was sent to Google on the expectation

it would be treated as transit.

[…]

In August 2017

Page 13: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Someone in Google fat-thumbed a

Border Gateway Protocol (BGP) advertisement

and sent Japanese Internet traffic into a black hole.

The outage in Japan only lasted a couple of hours

but was so severe that […] the country's

Internal Affairs and Communications ministries 

want carriers to report on what went wrong.

[…] Traffic from Japanese giants like NTT and KDDI was sent to Google on the expectation

it would be treated as transit.

In August 2017

Page 14: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Configuration synthesis addresses this problem by derivinglow-level configurations from high-level requirements

Page 15: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

!ipmulticast-routing!interfaceLoopback0ipaddress120.1.7.7255.255.255.255ipospf1area0!!interfaceEthernet0/0noipaddress!interfaceEthernet0/0.17encapsulationdot1Q17ipaddress125.1.17.7255.255.255.0ippimbsr-borderippimsparse-mode!!

!ipmulticast-routing!interfaceLoopback0ipaddress120.1.7.7255.255.255.255ipospf1area0!!interfaceEthernet0/0noipaddress!interfaceEthernet0/0.17encapsulationdot1Q17ipaddress125.1.17.7255.255.255.0ippimbsr-borderippimsparse-mode

routerospf1router-id120.1.7.7redistributebgp700subnets

Network model

Physical topology

High-level requirements

!!!!routerospf1router-id120.1.7.7redistributebgp700subnets!routerbgp700neighbor125.1.17.1remote-as100!address-familyipv4redistributeospf1matchinternalexternal1external2neighbor125.1.17.1activate!address-familyipv4multicastnetwork125.1.79.0mask255.255.255.0redistributeospf1matchinternalexternal1external2neighbor125.1.17.1activate!

Inputs Outputs

Synthesizer

Configuration synthesis addresses this problem by derivinglow-level configurations from high-level requirements

given by the operator

Page 16: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Configuration synthesis:

a booming research area!

Propane [SIGCOMM’16]

PropaneAT [PLDI’17]

SyNET [CAV’17]

Genesis [POPL’17] forwarding rules

BGP configurations

OSPF + BGP configurations

Out of high-level requirements,

automatically derive…

Zeppelin [SIGMETRICS’18]

Page 17: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Synthesizing configuration is great, but comes with

challenges preventing a wide adoption

Page 18: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Existing synthesizers…

Page 19: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Problem #1interpretability

can produce configurations that widely differ from humanly-generated ones

Existing synthesizers…

Page 20: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Problem #1interpretability

can produce configurations that widely differ from humanly-generated ones

Problem #2

continuity

can produce widely different configurationsgiven slightly different requirements

Existing synthesizers…

Page 21: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Problem #1interpretability

can produce configurations that widely differ from humanly-generated ones

Problem #2

continuity

can produce widely different configurationsgiven slightly different requirements

Problem #3

deployability

cannot flexibly adapt to operational requirements,

requiring configuration heterogeneity

Existing synthesizers…

Page 22: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

A key issue is that synthesizers do not provide operators

with a fine-grained control over the synthesized configurations

Page 23: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Introducing…

NetComplete

Page 24: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

A configuration with “holes”

NetComplete allows network operators to flexibly express

their intents through configuration sketches

Page 25: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

route-mapimp-p1permit10?

route-mapexp-p1?10matchcommunityC2route-mapexp-p2?20matchcommunityC1...

interfaceTenGigabitEthernet1/1/1ipaddress??ipospfcost10<?<100

routerospf100?...

routerbgp6500...

neighborAS200importroute-mapimp-p1neighborAS200exportroute-mapexp-p1...

ipcommunity-listC1permit?ipcommunity-listC2permit?

Page 26: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

interfaceTenGigabitEthernet1/1/1ipaddress??ipospfcost10<?<100

routerospf100?...

routerbgp6500...

neighborAS200importroute-mapimp-p1neighborAS200exportroute-mapexp-p1...

ipcommunity-listC1permit?ipcommunity-listC2permit?

Holes can identify

specific attributes such as:

IP addresses

link costs

BGP local preferences

Page 27: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

interfaceTenGigabitEthernet1/1/1ipaddress??ipospfcost10<?<100

routerospf100?...

routerbgp6500...

neighborAS200importroute-mapimp-p1neighborAS200exportroute-mapexp-p1...

ipcommunity-listC1permit?ipcommunity-listC2permit?

Holes can also identify

entire pieces of the configuration

route-mapimp-p1permit10?

route-mapexp-p1?10matchcommunityC2route-mapexp-p2?20matchcommunityC1...

Page 28: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

NetComplete “autocompletes” the holes such that

the output configuration complies with the requirements

Page 29: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

route-mapimp-p1permit10?

route-mapexp-p1?10matchcommunityC2route-mapexp-p2?20matchcommunityC1...

interfaceTenGigabitEthernet1/1/1ipaddress??ipospfcost10<?<100

routerospf100?...

routerbgp6500...

neighborAS200importroute-mapimp-p1neighborAS200exportroute-mapexp-p1...

ipcommunity-listC1permit?ipcommunity-listC2permit?

Page 30: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

route-mapimp-p1permit10setcommunity6500:1setlocal-pref50route-mapexp-p1permit10matchcommunityC2route-mapexp-p2deny20matchcommunityC1...

interfaceTenGigabitEthernet1/1/1ipaddress10.0.0.1255.255.255.254ipospfcost15

routerospf100network10.0.0.10.0.0.1area0.0.0.0

routerbgp6500...

neighborAS200importroute-mapimp-p1neighborAS200exportroute-mapexp-p1...

ipcommunity-listC1permit6500:1ipcommunity-listC2permit6500:2

Page 31: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

NetComplete reduces the autocompletion problem

to a constraint satisfaction problem

Page 32: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Encode the as a logical formula (in SMT)

protocol semantics

high-level requirements

partial configurations

First

Page 33: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Use a solver (Z3) to find an assignment for the undefined

configuration variables s.t. the formula evaluates to True

Then

Encode the as a logical formula (in SMT)

protocol semantics

high-level requirements

partial configurations

First

Page 34: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Main challenge:

Scalability

network-specific

heuristics

Insight #1 Insight #2

partial evaluation

search space navigation search space reduction

Page 35: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

optimized encodingBGP synthesis1

OSPF synthesiscounter-examples-based

2

Evaluationflexible, yet scalable

3

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

?

?

Page 36: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

optimized encodingBGP synthesis1

OSPF synthesiscounter-examples-based

Evaluationflexible, yet scalable

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

?

?

Page 37: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

NetComplete autocompletes router-level BGP policies by

encoding the desired BGP behavior as a logical formula

Page 38: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

Page 39: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

how should the network forward traffic

concrete, part of the input

Page 40: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

R1.BGPselect(A1,A2) ∧

R1.BGPselect(A2,A3) ∧ …

Page 41: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

how do BGP routers select routes

concrete, protocol semantic

Page 42: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

BGPselect(X,Y)⇔(X.LocalPref>Y.LocalPref)∨…

Page 43: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

how routes should be modified

symbolic, to be found

M⊨Reqs∧BGPprotocol ∧Policies

Page 44: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

R1.SetLocalPref(A1) = VarX

R1.SetLocalPref(A2) = 200

Page 45: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

R1.SetLocalPref(A1) = VarX

R1.SetLocalPref(A2) = 200

R1.BGPselect(A1,A2) ∧

R1.BGPselect(A2,A3) ∧ …

BGPselect(X,Y)⇔(X.LocalPref>Y.LocalPref)∨…

Solving this logical formula consists in assigning

each symbolic variable with a concrete value

Page 46: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

M⊨Reqs∧BGPprotocol ∧Policies

R1.SetLocalPref(A1) = VarX

R1.SetLocalPref(A2) = 200

R1.BGPselect(A1,A2) ∧

R1.BGPselect(A2,A3) ∧ …

BGPselect(X,Y)⇔(X.LocalPref>Y.LocalPref)∨…

Page 47: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

VarX := 250 M⊨Reqs∧BGPprotocol ∧Policies

R1.SetLocalPref(A1) = VarX

R1.SetLocalPref(A2) = 200

R1.BGPselect(A1,A2) ∧

R1.BGPselect(A2,A3) ∧ …

BGPselect(X,Y)⇔(X.LocalPref>Y.LocalPref)∨…

Page 48: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Naive encodings lead to complex constraints

that cannot be solved in a reasonable time

Page 49: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Naive encodings lead to complex constraints

that cannot be solved in a reasonable time

M⊨Reqs∧BGPprotocol ∧Policies

BGP x OSPF huge search spacechallenges

Page 50: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Naive encodings lead to complex constraints

that cannot be solved in a reasonable time

M⊨Reqs∧BGPprotocol ∧Policies

BGP x OSPF huge search space

partial evaluationiterative synthesis

challenges

solutions

Page 51: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Naive encodings lead to complex constraints

that cannot be solved in a reasonable time

M⊨Reqs∧BGPprotocol ∧Policies

BGP x OSPF huge search space

partial evaluationiterative synthesis

challenges

solutions

Page 52: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

NetComplete encodes reduced policies by relying

on the requirements and the sketches

Page 53: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Capture how announcements should propagate

using the requirements

Step 1

Output BGP propagation graph

NetComplete encodes reduced policies by relying

on the requirements and the sketches

Page 54: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Capture how announcements should propagate

Combine the graph with constraints imposed by sketches

using the requirements

via symbolic execution

Step 1

Step 2

Output BGP propagation graph

Output partially evaluated formulas

NetComplete encodes reduced policies by relying

on the requirements and the sketches

Page 55: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

NetComplete relies on the requirements to figure out

where BGP announcements should (not) propagate

Page 56: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Requirement

Only customers should be able to

send traffic to Provider #2

Provider 2Provider 1

Provider 3

Customer

NetComplete relies on the requirements to figure out

where BGP announcements should (not) propagate

Page 57: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Requirement

Only customers should be able to

send traffic to Provider #2

Provider 2Provider 1

Provider 3

Customer

NetComplete relies on the requirements to figure out

where BGP announcements should (not) propagate

Page 58: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

B C

A D

P1 P2

P3

Cust

blocked

blocked

NetComplete computes one BGP propagation graph

per equivalence class

Provider 2Provider 1

Provider 3

Customer

Page 59: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

B C

A D

P1 P2

P3

Cust

Encode BGP policies as SMT formulas

Result is a partially evaluated formula

permitted=Truelocal_pref=?communities=?…

Inject symbolic announcement

ForallanninAnnouncements:ann.communities=[External,Var1]ann.local_pref=100

permitted=Truelocal_pref=100communities=[External,Var1]…

NetComplete concretizes symbolic announcements

by propagating them through the graph and sketches

Page 60: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

optimized encodingBGP synthesis

OSPF synthesiscounter-examples-based

2

Evaluationflexible, yet scalable

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

?

?

Page 61: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

As for BGP, Netcomplete phrases the problem of finding weights

as a constraint satisfaction problem

Page 62: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

A D

CB

Consider this initial configuration in which

the (A,C) traffic is forwarded along the direct link

150

1

10

10

1501

Page 63: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

For performance reasons,

the operators want to enable load-balancing

A D

CB

Page 64: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

What should be the weights for this to happen?

A D

CB

Page 65: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

input requirements

DA

B C

Page 66: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

input requirements synthesis procedure

DA

B C

Page 67: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ Paths(A,C)\Reqs

input requirements

Cost(A→C) = Cost(A→D→C) < Cost(X)

synthesis procedure

DA

B C

Page 68: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ Paths(A,C)\Reqs

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

synthesis procedureinput requirements

DA

B C

Page 69: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ Paths(A,C)\Reqs

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

synthesis procedureinput requirements

DA

B C

Page 70: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ Paths(A,C)\Reqs

input requirements

150 150300

200

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

synthesis procedure

150

Synthesized weights

DA

B C

150

Page 71: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

This was easy, but…

it does not scale

∀X ∈ Paths(A,C)\Reqs

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

Page 72: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

∀X ∈ Paths(A,C)\Reqs

There can be an exponential number of paths between A and C…

Page 73: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

An contemporary approach to synthesis where

a solution is iteratively learned from counter-examples

To scale, NetComplete leverages

Counter-Example Guided Inductive Synthesis (CEGIS)

Page 74: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

While enumerating all paths is hard,

computing shortest paths given weights is easy!

Page 75: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

D

input requirements

A

B C

Page 76: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

input requirements synthesis procedure

DA

B C

Page 77: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

input requirements synthesis procedure

DA

B C

Page 78: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

input requirements synthesis procedure

Sample: { [A,B,D,C] }

DA

B C

Page 79: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

input requirements

Cost(A→C) = Cost(A→D→C) < Cost(X)

synthesis procedure

DA

B C

Page 80: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

synthesis procedureinput requirements

DA

B C

Page 81: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

synthesis procedureinput requirements

DA

B C

Page 82: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

input requirements

150 150300

100

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

synthesis procedure

150

Synthesized weights

DA

B C

300

Page 83: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

150 150300

100

Cost(A→C) = Cost(A→D→C) < Cost(X)

Solve

150

DA

B C

300

The synthesized weights are incorrect:

cost(A → B → C]) = 250 < cost(A → C) = 300

actual path

Page 84: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

∀X ∈ SamplePaths(A,C)\Reqs

Sample: { [A,B,D,C] } U { [A,B,C] }

DA

B C

We simply add the counter example to SamplePaths and repeat the procedure

Page 85: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

The entire procedure usually converges in few iterations

making it very fast in practice

Page 86: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

optimized encodingBGP synthesis

OSPF synthesiscounter-examples-based

Evaluationflexible, yet scalable

3

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

?

?

Page 87: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Can NetComplete synthesize large-scale configurations?

How does the concreteness of the sketch influence the running time?

Question #1

Question #2

Page 88: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Code ~10K lines of Python

SMT-LIB v2 and Z3

Input OSPF, BGP, static routes

Output Cisco-compatible configurations

as partial and concrete configs

validated with actual Cisco routers

We fully implemented NetComplete

and showed its practicality

Page 89: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Methodology

15 topologies from Topology Zoo

small, medium, and large

Simple, Any, ECMP, and ordered (random)

Built from a fully concrete configuration

using OSPF/BGP

from which we made a % of the variables symbolic

Topology

Requirement

Sketch

Page 90: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

NetComplete synthesizes configurations

for large networks in few minutes

Page 91: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Network size

Reqs.

type

Synthesis

time

OSPF synthesis time (sec)

NetComplete synthesizes configurations

for large networks in few minutes

16 reqs, 50% symbolic, 5 repet.

CEGIS enabled

settings

Large Simple

ECMP

Ordered

14s

13s

249s

~150 nodes

Page 92: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Without CEGIS, OSPF synthesis is

>100x slower and often timeouts

Page 93: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

0 20 40 60 80 100

Percentage of symbolic edge costs

0

500

1000

1500

2000

Tim

e[s

]

% of nodes changing next-hop0 20 60 10040

% of weights left symbolic in the sketch60

0

0.1

2000

1000

1500

OSPF synthesis time (sec)

NetComplete synthesis time increases

as the sketch becomes more symbolic

16 reqs

large topos.

settings

Page 94: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

0 20 40 60 80 100

Percentage of symbolic edge costs

0

500

1000

1500

2000

Tim

e[s

]

% of nodes changing next-hop0 20 60 10040 60

0

0.1

2000

1000

1500

NetComplete synthesis time increases

as the sketch becomes more symbolic

% of weights left symbolic in the sketch

OSPF synthesis time (sec)

16 reqs

large topos.

settings

Page 95: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

optimized encodingBGP synthesis

OSPF synthesiscounter-examples-based

Evaluationflexible, yet scalable

?

?

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

Page 96: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Autocompletes configurations with “holes”

synthesizes configurations for large network in minutes

Phrases the problem as constraints satisfaction

Scales to realistic network size

leaving the concrete parts intact

scales using network-specific heuristics & partial evaluation

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion

Page 97: New NetComplete: Practical Network-Wide Configuration Synthesis … · 2018. 4. 26. · Ahmed El-Hassany I shouldn’t be the one giving this talk… Third year PhD student @ETH Zürich

Ahmed El-Hassany Petar Tsankov Laurent Vanbever Martin Vechev

NetComplete: Practical Network-Wide

Configuration Synthesis with Autocompletion