Skip to content

Commit ad189ae

Browse files
committed
Addressed Ratul's feedback
1 parent 339bb28 commit ad189ae

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

_posts/2020-07-20-the-verification-synthesis-spectrum.md

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ On the far left are configuration verifiers that take a networks’ current conf
3737

3838
However, some verifiers provide more than a simple yes/no answer for each forwarding requirement. For example, [Minesweeper](https://ratul.org/papers/sigcomm2017-minesweeper.pdf) and [ARC](http://aaron.gember-jacobson.com/docs/gember-jacobson2016arc.pdf) both produce a concrete counterexample---e.g., a failure scenario and resulting forwarding path---for each violated requirement. Going a step further, [Batfish](https://www.usenix.org/system/files/conference/nsdi15/nsdi15-paper-fogel.pdf) and [Plankton](https://www.usenix.org/system/files/nsdi20-paper-prabhu.pdf) produce complete forwarding information bases (FIBs), and Batfish tracks the provenance of each FIB entry, such that a network engineer can trace the sequence of events and set of configuration statements that led to the FIB entry’s existence.
3939

40-
Similarly, not all synthesizers produce configurations entirely from scratch. For example, [Zeppelin](http://pages.cs.wisc.edu/~sskausik08/papers/sigmetrics18zeppelin.pdf) allows a network engineer to specify policies regarding configuration structure---e.g., which routers should run BGP? how many OSPF areas should there be?---which inform the structure of the synthesized configurations. Going a step further, [NetComplete](https://vanbever.eu/pdfs/vanbever_netcomplete_nsdi_2018.pdf) requires network engineers to provide a configuration template with holes for key parameters---e.g., link costs, route filter match criteria, etc.---and synthesizes values for these holes, rather than the complete configuration.
40+
Similarly, not all synthesizers produce configurations entirely from scratch.
41+
For example, [Propane/AT](https://ratul.org/papers/pldi2017-propaneat.pdf)
42+
synthesizes abstract templates based on device roles (e.g., _core_ and
43+
_border_ routers) and generates/updates concrete configurations as the
44+
topology grows. Similarly, [Zeppelin](http://pages.cs.wisc.edu/~sskausik08/papers/sigmetrics18zeppelin.pdf) allows a network engineer to specify policies regarding configuration structure---e.g., which routers should run BGP? how many OSPF areas should there be?---which inform the structure of the synthesized configurations. Going a step further, [NetComplete](https://vanbever.eu/pdfs/vanbever_netcomplete_nsdi_2018.pdf) requires network engineers to provide a configuration template with holes for key parameters---e.g., link costs, route filter match criteria, etc.---and synthesizes values for these holes, rather than the complete configuration.
4145

4246
(We’ll discuss the middle of the spectrum, which includes [CPR](https://aaron.gember-jacobson.com/docs/gember-jacobson2017cpr.pdf) and [Jinjing](https://dlnext.acm.org/doi/abs/10.1145/3341302.3342088), later in this article.)
4347

@@ -51,7 +55,30 @@ The spectrum of configuration verifiers and synthesizers that exist today raises
5155

5256
One way to approach this is to ask a slightly different question: _are you working with a greenfield or a brownfield network?_ A greenfield (i.e., brand new) network is a perfect opportunity to employ configuration synthesis, because a greenfield network does not have any existing configurations. There may be configuration templates that were used in other (similar) networks, which could motivate choosing a partial configuration synthesizer (e.g., [NetComplete](https://vanbever.eu/pdfs/vanbever_netcomplete_nsdi_2018.pdf)) as opposed to a complete configuration synthesizer (e.g., [Propane](https://ratul.org/papers/sigcomm2016-propane.pdf) and [SyNET](https://vanbever.eu/pdfs/vanbever_synet_cav_2017.pdf)). In contrast, network verifiers are often better suited for a brownfield (i.e., partially existing) network, because configurations already exist, changes are often small, and network engineers already have established network management practices. (These observations are supported by studies of configuration changes in [large university campus networks](https://conferences.sigcomm.org/imc/2011/docs/p499.pdf) and [large data center networks](https://conferences2.sigcomm.org/imc/2015/papers/p395.pdf).)
5357

54-
A different way is to ask: _how much automated change are you willing to tolerate?_ Complete configuration synthesizers (e.g., [Propane](https://ratul.org/papers/sigcomm2016-propane.pdf) and [SyNET](https://vanbever.eu/pdfs/vanbever_synet_cav_2017.pdf)) completely ignore a network’s current configurations and synthesize brand-new configurations. This requires wholesale replacement of a network’s configurations each time forwarding policies change. Moreover, any hand-tuning of configurations may be wiped out. Partial configuration synthesizers (e.g., [NetComplete](https://vanbever.eu/pdfs/vanbever_netcomplete_nsdi_2018.pdf)) allow some aspects of a network’s configurations to remain fixed. However, it’s up to network engineers to determine how much of a configuration to manually specify (in a template) and how much to synthesize. More manual specification means more work for network engineers and a relaxation of the "correct-by-construction" guarantees provided by configuration synthesizers. In contrast, configuration verifiers are "read-only" insofar as they flag configuration errors but do not generate any part of the configurations. This allows network engineers to have complete control over configuration changes, which enables engineers to hand-tune changes according to existing network management practices and preserve their networks’ configuration "style."
58+
A different way is to ask: _how much automated change are you willing to
59+
tolerate?_ Clean-slate configuration synthesizers (e.g.,
60+
[Propane](https://ratul.org/papers/sigcomm2016-propane.pdf) and
61+
[SyNET](https://vanbever.eu/pdfs/vanbever_synet_cav_2017.pdf)) completely
62+
ignore a network’s current configurations and synthesize brand-new
63+
configurations. This requires wholesale replacement of a network’s
64+
configurations each time forwarding policies change, which is a risky and
65+
potentially disruptive operation---e.g., network engineers from a regional
66+
research and education network reported that flash reliability problems
67+
cause some routers in their network to crash when the configuration is
68+
updated. Moreover, any hand-tuning of configurations may be wiped out. Partial
69+
configuration synthesizers (e.g.,
70+
[NetComplete](https://vanbever.eu/pdfs/vanbever_netcomplete_nsdi_2018.pdf) and
71+
[PropaneAT](https://ratul.org/papers/pldi2017-propaneat.pdf))
72+
allow some aspects of a network’s configurations to remain fixed. However,
73+
it’s up to network engineers to determine how much of a configuration to
74+
manually specify (in a template) and how much to synthesize. More manual
75+
specification means more work for network engineers and a relaxation of the
76+
"correct-by-construction" guarantees provided by configuration synthesizers.
77+
In contrast, configuration verifiers are "read-only" insofar as they flag
78+
configuration errors but do not generate any part of the configurations. This
79+
allows network engineers to have complete control over configuration changes,
80+
which enables engineers to hand-tune changes according to existing network
81+
management practices and preserve their networks’ configuration "style."
5582

5683
## A middle ground: configuration repair
5784

572 Bytes
Loading

0 commit comments

Comments
 (0)