[Infrastructures] using IA methodologies to build network element
configuration
Andrew Fort
afort@choqolat.org
Wed, 06 Apr 2005 10:51:49 +1000
Brent Chapman wrote in response to Daniel Hagerty,
>> If the world was perfect, you could write down a language that
>> described your entire distributed system, and produce all the other
>> configuration aspects of it from this one uber language. In practice,
>> there's some getting there from here to achieve this. People are able
>> to do it now to more or lesser extents, but we're still producing
>> these languages in an ad hoc fashion.
>
>
> I've been toying with the idea of creating a system (database, language,
> etc.) for describing networks in enough detail that you could build
> various tools on top of the system to produce configurations for
> particular devices. So, for instance, you would describe your network
> in this system, and then run one tool against that description to
> generate a Cisco config for a particular router, another tool to
> generate a Juniper config for another router, yet another tool to
> generate an Alteon config for a particular load balancer, etc. And
> still another tool to generate Cricket config files to do SNMP
> performance monitoring of all the devices in your network, and another
> tool to generate Nagios configurations for SNMP status monitoring, and
> another tool to generate Snort configs for sensors in particular
> locations, and so forth. All running against a common, shared
> description of your network.
>
>
> -Brent
We've been going in this direction at my employer. Since we're
multi-vendor, we need to approach this problem intimately, and this
approach seems the most valid to us.
As discussed, the big problems are: configuration 'push' sucks (badly),
and the initial configuration management of some devices (cough cisco
non-modular switches) sucks even harder: "oh, you can load your
configuration into startup, reload the switch.. but those VLAN
definitions in your configuration won't be there till you reload twice",
or "Oh, you want to boot the device via TFTP? Or you just want to get
your netconfig via TFTP (from BOOTP/DHCP instructions) at startup?
Well, hey you're right! It doesn't work! Wow, no customer has ever
complained about that"... oops. :/
For the routing policy example Daniel gave, this problem is "solved" in
terms of building multi-vendor configuration. It amazes me that only 1
in 20 network engineers I talk to have heard of it (or 'have heard about
it' but have no idea what it is).
RPSL (see rfc 2622, 2650) is the policy language.
IRRToolSet is the toolset for configuration building and data management
(originally a ISI/Merit? development, then RIPE, now ISC)..
However, IRRToolSet doesn't give you any way to upload your
configurations, and as of RtConfig (the config builder) v4.7, it still
doesn't support some of the most useful abstractions in RPSL (such as as
router objects properly). Also, some problems are most easily handled
by simply awk'ing the output of it..
Still, if you have a complex policy (read, you provide BGP communities
to your customers to modify their routing configuration in ways more
complex than "lower your local preference"), which is actually almost
all large ISPs), you are already going to be using some form of
configuration automation. Either that, or the straightjacket is
beginning to chafe.
-andrew