lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

network-automation.md (1746B)


      1 +++
      2 title = 'Network automation'
      3 +++
      4 
      5 ## Network automation
      6 ### Centralized control over distributed routing: fibbing
      7 Fibbing: lying to routing protocols
      8 - high-level language to specify forwarding requirements
      9     ```
     10     ((E, C, D1) and (E, G, D1);             // traffic between E and D1 load balanced on two paths
     11      ((A, *, B, * D2) or (A, *, C, *, D2)); // traffic between A and D2 should cross B or C
     12      (F, G, *, D3) as backupof ((F, H));)   // traffic between F and D3 should be reroutd via G if link (F,H) fails
     13     ```
     14 - fibbing controller computes paths and creates fake topology by sending link-state messages
     15 
     16 ### Synthesizing network configurations - Propane
     17 Compile network-wide routing objectives into low-level configurations.
     18 
     19 Main goals of Propane:
     20 - language for expressing network-wide objectives (intra- and inter-domain routing)
     21 - compiler for purely distribute implementation
     22   - generate BGP configs for each router
     23   - compiler guarantees policy compliance for all failures
     24 
     25 ### Autocompleting partial network configurations
     26 Problems:
     27 - produced configs may widely differ from human-generating ones, lowering confidence in them
     28 - can produce widely different configurations given slightly different requirements
     29 - can't flexibly adapt to operational requirements
     30 
     31 Existing synthesizers don't provide operators with fine-grained control over synthesized configurations.
     32 
     33 NetComplete: network operators can specify their intents through configuration sketches with "holes"
     34 - holes can identify specific attributes (e.g. IP addresses), link costs, BGP local preferences, or entire pieces of configuration
     35 - encodes requirements as logical formula in SMT
     36 - use solver (Z3) to find assignment that satisfies constraints