Transcript document
CONMAN: A STEP TOWARDS
NETWORK MANAGEABILITY
Hitesh Ballani, Paul Francis
Cornell University
Presented by Lam Chan,
Patrick Wong
CURRENT ISSUES
Network management requires detailed
knowledge of many different network components
Rising management costs, network downtime.
80% of IT budgets in various enterprises
maintenance
62% of network downtime due to configuration errors
WHY DOES IT HAPPEN?
“Protocols and devices expose their internal
details, leading to a deluge of complexity that
burdens the management plane”
Perception differs from reality
Error-prone configuration
Fragmentation of tools
Lack of dependency maintenance
WHY DOES IT HAPPEN?
Perception differs from reality
Error-prone configuration
Fragmentation of tools
Lack of dependency maintenance
WHY DOES IT HAPPEN?
Perception differs from reality
Error-prone configuration
Fragmentation of tools
Lack of dependency maintenance
WHY DOES IT HAPPEN?
Perception differs from reality
Error-prone configuration
Fragmentation of tools
Lack of dependency maintenance
WHY DOES IT HAPPEN?
Perception differs from reality
Error-prone configuration
Fragmentation of tools
Lack of dependency maintenance
SOLUTION
“The management interface of data-plane
protocols should contain as little protocol-specific
information as possible.”
Allows data-plane protocols to have a generic yet
simple interface
SOLUTION - CONMAN
Complexity Oblivious Network Management
All protocols and devices express their capabilities
and functionalities using generic expressions.
Management plane can understand potential of
underlying network from these abstractions.
Configures network in line with high-level policies
In other words, restrict protocol complexity to
their implementation.
CONMAN – ARCHITECTURE
Protocols should not expose their gory details
CONMAN – MODULE ABSTRACTION
Switching packets under performance
constraints while filtering unwanted traffic.
CONMAN – MODULE ABSTRACTION
Modules may depend on other modules for doing
their job.
CONMAN – MODULE ABSTRACTION
Abstractions model the capabilities and
dependencies of modules
Applies to almost all data plane modules.
CONMAN – NETWORK MANAGER
Network Manager (NM):
Determines the network topology
Achieve high-level network configuration goals by
creating/deleting pipes and module components
CONMAN – NETWORK MANAGER
(PRIMITIVES)
NMs use primitives to facilitate their
management
showPotential – returns a list of modules with their
abstractions (determines a device’s capabilities)
showActual – returns a state of modules in a device
(pipes, switches, filters)
create/delete – creates or deletes pipes, filter rules,
switch rules, and performance enforcement state
conveyMessage – allows modules to convey messages
through the NM – this is a ‘module’ command
listFieldsandValues – queries target module for low
level fields and values
IMPLEMENTATION
GRE Tunneling
Protocol that encapsulates a network protocol in
another network protocol
GRE TUNNELING – TODAY’S CONFIGURATION
#!/bin/bash
# Inserting the GRE-IP kernel module
insmod /lib/modules/2.6.10-1/ip_gre.ko
# Creating the GRE module with the appropriate key
ip tunnel add name greA mode remote 128.84.223.112 local \
128.84.222.111 ikey 2001 okey 1001 icsum ocsum iseq oseq
ifconfig greA 192.168.1.3
# Enable routing
echo 1 > /proc/sys/net/ipv4/ip-forward
# Create IP routing state from customer to tunnel
echo 202 tun-1-2 > /etc/iproute2/rt_tables
ip rule add iff eth0 table tun-1-2
ip route add default dev greA table tun-1-2
# Create IP routing state from tunnel to customer
echo 203 tun-2-1 > /etc/iproute2/rt_tables
ip rule add iff greA table tun-2-1
ip route add default dev eth0 table tun-2-1
GRE TUNNELING – TODAY’S CONFIGURATION
#!/bin/bash
# Inserting the GRE-IP kernel module
End point IP
insmod /lib/modules/2.6.10-1/ip_gre.ko
addresses
# Creating the GRE module with the appropriate key
ip tunnel add name greA mode remote 128.84.223.112 local \
128.84.222.111 ikey 2001 okey 1001 icsum ocsum iseq oseq
ifconfig greA 192.168.1.3
Key Values
# Enable routing
echo 1 > /proc/sys/net/ipv4/ip-forward
# Create IP routing state from customer to tunnel
echo 202 tun-1-2 > /etc/iproute2/rt_tables
ip rule add iff eth0 table tun-1-2
ip route add default dev greA table tun-1-2
# Create IP routing state from tunnel to customer
echo 203 tun-2-1 > /etc/iproute2/rt_tables
ip rule add iff greA table tun-2-1
ip route add default dev eth0 table tun-2-1
GRE TUNNELING
Human goal
Create a virtual connectivity between the customerside interface for Customer-1.
GRE TUNNELING
We translate this as a CONMan goal
CONMan goal
Configure connectivity between the customer-side
interfaces <ETH, A, e> and <ETH, B, e>
GRE TUNNELING – NM IMPLEMENTATION
NM gets CONMan abstractions from all the
modules involved < showPotential() >
NM maps a path from (1) to (11) that meets the
requirement of the high-level goals
GRE TUNNELING – NM IMPLEMENTATION
Configuration at Router A
create (pipe, e, a)
create (pipe, a, d)
create (switch-state, a, pipe-2, pipe-3)
create (pipe, d, b)
create (pipe, b, c)
Protocols incorporate the complexity of
determining the low-level parameters.
GRE TUNNELING – NM IMPLEMENTATION
NM includes a path-finder component that finds
all paths between any two modules in such a
graph
Depth-first search, cycle avoiding
Choose the path that minimizes the total number
of pipes instantiated in the routers
What about other metrics such as security or
performance capabilities of modules?
We acknowledge this as an avenue for future work
GRE TUNNELING – SOME THINGS TO
CONSIDER…
Humans need not see or write CONMan scripts
Since there is little protocol-specific information
in CONMan scripts…
…an automated NM can generate the commands
and other details algorithmically without
incorporating protocol-specific knowledge
CONMAN – FUTURE CONSIDERATIONS
Abstraction
Scalability
The abstraction provides just enough information for
the NM to build a potential path graph
NMs can specialize, thus divide and conquer.
Multiple NMs
Many NMs with specialized job that can
communicate with each other
CONMAN – FUTURE CONSIDERATIONS
(CONT’D)
Specifying high-level goals
A more systematic language to describe the goals
Deployment strategies
Relatively young project
More consideration in the future
THANK YOU