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 …
a high-level Policy Graph Abstraction (PGA) for sub-domain (diverse source) to separately express networking policies on endpoints, … naturally incorporates network middleboxes
besides ACL policies, PGA models and composes service chaining policies, i.e., the sequence of middleboxes to be traversed
policies for arbitrary selection of endpoints based on logical endpoint properties
algorithms … automatically and scalably compose multiple policy graphs. The composition maintains the individually specified invariants from each policy graph … determines an appropriate service order when merging service chains
merging multiple service chain requirements into conflict-free composed chains
implementation of PGA … uses Pyretic to represent middlebox functionality and analyze service chains. … can compose over 20K ACL policies from a real policy dataset under 600s, while incurring sub-millisecond latency for the first packet of a flow when running reactively.
PGA treats the underlying network as “one big switch”, which … may not reflect all the low level policy requirements: e.g., traffic engineering decisions regarding specific switches/routers/network path 32
We also do not focus on run-time network state conflicts 33, 39 local, 13.
(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.
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 …
Our prototype implementation contains ≈2.5K SLOC in Python, including the following Pyretic extensions.
To support policy graph specification, we extend Pyretic with three primitives: EPGs, Function boxes and Whitelists.
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.
analyze and compose
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
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.