Skip to content

bhechinger/tunnel_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HECnet Tunnel Manager

History

The HECnet Tunnel Manager is a small tool I wrote maybe 6 or so years ago to assist with configuring multiple Cisco routers. It sets up a mesh of GRE tunnels with DECnet routing enabled. It was a quick and dirty python script I wrote in an afternoon. To its credit it is still running to this day without too many problems, however it is fragile and hard to configure (configuring tunnels is literally hand writing SQL queries).

More about HECnet here: http://mim.stupi.net/hecnet.htm

The architecture is said python script using the LISTEN/NOTIFY mechanism of PostgreSQL to respond to a trigger. Once triggered it builds a Cisco config snippet that is placed on a tftp server. It then uses SNMP to instruct the router to fetch the config snippet and apply it.

This has several downsides.

The primary issue is in order to have this system configure your router you need to open SNMP to the internet. Most people firewall it so that the host that runs the python script is the only one that can talk to SNMP. That also has issues because I can't move to a new IP without orchestrating the change with everyone who uses the service.

The second largest issue is it's also not really able to tell who needs to be updated so everyone gets their config updated regardless of if they need it or not.

HECnet Tunnel Manager "2.0"

(NOTE: I'm not actually going to call or version it as such. Just gotta get with the hip kids or whatever.)

The new architecture is going to be agent/server based. An agent that you run would be notified of changes and would use the same SNMP/tftp/snippet process as before only limited to your local network. The IP address of the server would be totally irrelevant.

Components

Tunnel Engine

Back end service that handles all configuration management and GRPC generated API service. Also running grpc-gateway for RESTful access. Will push config changes to a RabbitMQ queue for agents to pick up.

Tunnel Agent

Agent that configures routers. Will connect to a RabbitMQ queue and listen for instructions.

About

Service to manage DECnet tunnels

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published