Error

Unknown error.

2007 09 01 quelea cable modems and cmts

2007-09-01

Quelea

This project is shut down.

Remaining resources

Project description

The idea was a system which could monitor and provision a variety of network equipment.
The primary target was cable modems and CMTS, but to do that the project had to contain
more functionality

A DHCP server

The cable modem and customer computer equipment need IP addresses. I decided to use
ISC DHCPd for this purpose, because
it can dynamically serve config files based on MAC address (option 82).
In addition, it’s a very stable and capable DHCP server for all other equipment,
beside cable modems.

A TFTP server

After a cable modem has received a response from the DHCP server, it will try to
download a config file from a TFTP server. I decided to write this TFTP server in
pure perl, because I could then build the config files dynamically from profiles
stored in a backend. The profiles would be split into different segments, which
mostly should default to a “most common” profile and then the bandwidth profile
would be applied on top of that.

I started out with Net::TFTPd
but realized that it was not easy to hook into and it wasn’t all that effective.
I then decided to write my own implementation called POE::Component::TFTPd,
which I was quite pleased with. Even so it tried to make it even faster, which
resulted in AnyEvent::TFTPd,
but the module was shut down by the project owner of AnyEvent. If I was continuing
the development, I would probably write a Mojo::IOLoop based version instead, since
Mojolicious is a fantastic framework.

A collector daemon

I wanted the system to be plug and play, so the collector daemon would start out
by probing the computers in the same network, checking if they could respond
on SNMP requests. If they could they would automatically be added to the Quelea
frontend, where the credentials (if any) would have to be added before the
collector again started getting information from the various equipment. The
collector would in the first place be “limited” to only supporting SNMP.

The most important data (imo) to collect would be: