The Problem

When you connect to an internet peering exchange, the IP addresses you’re given for your interfaces will most likely have been used by someone else prior to you, that has left the exchange.

This means, because we’re not all good at housekeeping, that you’ll end up with ISPs trying to open up BGP sessions with your routers and if you’re not firewalling them out then you’ll end up with a lot of messages about BGP Opens being received from unconfigured neighbours. If you’re firewalling (and you should be) and you’re logging you’ll end up with a lot of hits logged against port 179.

The Solution

Ideally you’d like everyone to keep their peering neat and tidy, but we’re not in an ideal world unfortunately. So I came up with a tool that will:

This catches most instances and you end up with a list of IP address, the system then:

What It Supports Right Now

What It Can Support Right Now If You Want To Write a Module?

The router code is modularised and self contained, so any router or switch can be supported.

The router class includes what commands to execute to fetch and parse the data in to an IP address. Additional commands are added in to an array.

The Future

The aim is to make a simple suite of tools for small ISPs without their own staff to better manage their peering relationships. The next evolution will hopefully add tracking support, so it will log when you last emailed a given peer and allow you to set a time period for them to respond before it emails again.

Where Can I Find It?

https://github.com/KarlAustin/peertools

The code is currently still a little rough in places, as it was quickly built to deal with the 30 or so IPs hitting our peering routers every few seconds. So far we’ve had a couple of ISPs stop and several agree to peer with us. Please feel to contribute or comment.