07 Oct 2015

PGA: Using Graphs to Express and Automatically Reconcile Network Policies

Shadowed Smiley face

diverse parties (networking operators, application admins, tenants/end-users) and control programs (SDN Apps, network services) … generate network policies independently and dynamically … large organizations, multiple policy sub-domains exist (e.g., server admin, network engineers, DNS admins, different departments) … applied to the network components they own or manage. Admins and users who share a network have to manually coordinate … → eagerly and automatically detect and resolve conflicts between individual policies and compose them into a coherent conflict-free policy set

1 contribution

2.2 Challenges in policy composition

(Pyretic composition) cannot directly compose P1 and P2: e.g., P1 » P2 composition fails … a correct composition requires carefully decomposing each of P1 and P2 into ACL and service requirements and recomposing them into a single program.

order of the FW-LB chain is chosen using the operator’s interal knowledge of the service functions.

System overview

resolving or flagging conflicts/errors and reporting them to users, possibly with suggested fixes … PGA’s eager policy composition is orthogonal to the lower-level compilation methodology …

6. PROTOTYPE

Our prototype implementation contains ≈2.5K SLOC in Python, including the following Pyretic extensions.

6.1 Abstractions

To support policy graph specification, we extend Pyretic with three primitives: EPGs, Function boxes and Whitelists.

Function boxes
expressed in our extended Pyretic programming language
this expression is required for analyzing dependencies and conflicts between function boxes to determine their intermixed order when merging edges …

6.2 System operation

a composer module takes all the graphs and any auxiliary inputs and generates a composed graph by implementing the algorithm of §5 … the composed graph is stored as an in-memory hash table keyed with the source and destination EPGs for fast lookup of policies at runtime.

8. SYSTEM EVALUATION

three data sets
D1: the synthetic running example from §4 and §5.
D2: the large enterprise dataset §7.2.
D3: D2 with randomly added function boxes.

analyze and compose thousands of policies producing nearly a million edges in under 600s when considering only ACLs and 800s in most cases for policy graphs with both ACLs and service chains .

emulate switches and hosts with mininet 2.1.0 and openvswitch 2.0.2 on the server in order to create a topology and generate packets between hosts in different EPGs

Runtime Overhead

graph composition

PGA composes input graphs eagerly … still needs to be able to handle very large inputs in a reasonable amount of time and with practical consumption of resources.

randomly selected different sets of compartments, composed their input graphs and measured the composition time as well as memory consumption.

Fig... shows the measures plotted against number of EPGs in input graphs, edges in input graphs, and edges in the composed graph.

reference