Great Circle Associates Network-Automation
(April 2005)
 

Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: objects and relationships
From: Andrew Fort <andrew . fort @ gmail . com>
Date: Fri, 22 Apr 2005 16:04:23 +1000
To: Network Automation List <network-automation @ greatcircle . com>
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=C/386jDOg7JVuRIVGzJIMeevTKuKWcAREYz7+Ojxyuc6qfwk1Mvh1RyGcHUV84FgKbUsUEgooZJ0hj7WQO9UmIRdW7ob92p7D9arBVNEzUKDv0Mb5TDraeFPZHCNyC8LHCYjVcus0JM7aDm1PZVwh75f6u+8yH3NGkYZsPATAuA=
Reply-to: Andrew Fort <andrew . fort @ gmail . com>

Essentially, what I want to see is the ability to define a service on
the network, from port A to port B.

We run a metro ethernet network.  It's a simple one, there a little
EoMPLS, there is some 1483-bridging for some ATM paths.  As we also do
IP offerings, I'd like to be able to say "build an IP (static) service
terminating on switch X, port Y.  add block blah of address space",
which would then bring along with it the commands necessary to build
the layer 2 service across the network, and then build the IP
interface and necessary static routes.

So, I see we need the following in such a specification:

 - Objects (switches, ports, routes, BGP neighbors, etc).  
 - Relationships between these objects.
 - Identifying what a service means in terms of relationships between objects.
 - A way of instantiating the commands used to make the service active
on each device involved (lets avoid the use of the word
"configuration").  This last point has been largely covered with the
exception of some of the particulars of rollback.

So, as Daniel Hagerty suggests, this is largely the problem of
knowledge representation.

The relationships between the objects will end up defining the
commands for each device that cause them to either establish a
connection to share state (say, an IGP) or pass traffic due to implied
state (VLANs attached to a tagged interface at either end). 
Explicitly, services have pre-requisite services (service objects are
related to other service objects, in a precedence order?), e.g. I need
a tail to build that IP interface.

At the present I've been playing with the idea of building this with
template manipulation and pre-requisites built by make (so I have a
target which requires pre-requisites which are built using m4).  This
is a straight-forward way to build lists of vendor specific commands
(configuration files), but it is a per-device approach.  For
individual devices, it works well (dependencies are handled, so things
work).   I think this should work well where some of the state is
managed by network protocols (RADIUS, for example), because in that
case the service is defined by AAA configuration along with an account
on the server.

I'm fairly clear on an approach for the bits other than the low level
model to create network services out of individual devices and their
connections.  I think an ER type of approach would be general enough
to solve the problem.  What material should I be reading to get a
better handle on this? :-)

-andrew


Follow-Ups:
Indexed By Date Previous: Re: Magic, Oracles, tomatos, and meaning questions not to ask
From: Tim Nelson <architect@webalive.biz>
Next: Basics of router automation.
From: "Michael T. Halligan" <mhalligan@bitpusher.com>
Indexed By Thread Previous: Re: CLI transactions
From: Andrew Fort <andrew.fort@gmail.com>
Next: objects and relationships
From: Daniel Hagerty <hag@linnaean.org>

Google
 
Search Internet Search www.greatcircle.com