I’m involved in quite some Open Source Software projects, have written a number of tools by myself as well as made PRs to other projects over the years. This site contains an overview of some projects / tools which might be helpful.
Networking
bio-routing – a project to create a versatile, fast and reliable routing daemon in Golang. bio = BGP + IS-IS + OSPF
Network Automation
Freifunk Hochstift Salt Stack / “SDN”
The Freifunk Hochstift Community network is managed by a self-made SDN based on Salt Stack, Python, and NetBox as Source of Truth.
Most of the Salt configuration as well as the NetBox Abstraction and Caching Layer (NACL) are publicly available on GitHub.
NetBox
The netbox-scripts repo contains some NetBox Custom Scripts I wrote to make life of operators easier. Most scripts here were written for the Freifunk Hochstift network, and are used to provision NetBox data to be consumed by the FFHO Salt stack. Related blog posts:
- Deploying a Freifunk Hochstift backbone POP with Netbox Scripts
- NetBox scripts – now with clean error handling
When you’re starting you NetBox journey, you might find the Netbox DeviceType library useful, which contains a lot of DeviceType and ModuleType definitions which are ready-to-use.
Observability
BMP
bbmp2kafka an Open Source BGP Monitoring Protocol (BMP, RFC7854) receiver based on the Bio-Routing BGP/BMP library, designed to forward all BMP Monitoring messages, so specifically BGP UPDATEs and WITHDRAWs, onto a Kafka stream as protobuf messages.
Prometheus / node_exporter
If you’re using Prometheus for monitoring your environment you’re most likely also using node_exporter
. Since PR2515 it now also exposes the adminstate
of any interface, which might come in handy for alerting.
Icinga2
I’ve been using Icinga2 for monitoring and alerting in multiple roles and had the need to create some checks, which can be found on my GitHub profile as well as on Icinga2 Exchange.
This includes checks for
- bird (OSPF, BGP, BGP for bird2)
- DNS zone synchronization status
- netfilter conntrack size
- ifupdown2 interface state
- Isilon storage clusters (Events, StoragePools, and SyncIQ)
System software
ifupdown-ng – a network device manager that is largely compatible with Debian ifupdown, BusyBox ifupdown and Cumulus Networks’ ifupdown2.