No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
emails
README.md
app.cfg.php
fetchAndEmailUnconfiguredPeers.php
junos.class.php
router.class.php

README.md

What Is It?

Currently peeringtools is just a single tool that logs in to a router, fetches a list of IP addresses that are "knocking" on your BGP door because they have you configured as a peer but you don't have them. Most likely because you've got an IP address on an IXP that used to belong to someone they did peer with.

What Is It Aiming To Be?

A tool for smaller providers to help setup and manage all of your peering relationships, especially tiresome jobs like requesting peering and tracking who has responded etc. and when you last emailed (if you've had no reply) and making sure your peering is in a healthy state.

Dependencies

  • PECL: ssh2
  • PEAR: Net::SMTP
  • PEAR: Mail::SMTP

Configuration

The main configuration is in app.cfg.php and should be fairly self explanatory. You'll also want to customise the email template(s) in the emails directory.

ToDo

Main thing is clean up the code a bit in to a sensible base expansion and other tools. router.php probably shouldn't contain the main SSH code.

  1. Split out LINX specifics in to a driver to modularise for other IX
  2. Support more than just JunOS logfile syntax - we don't have anything other than JunOS here, but it should be trivial to add. You can create your own router class to fetch and parse.
  3. Make the parsing a bit more intelligent so we don't have to give it an array position and separator, find the IPs automatically.
  4. Add database support for logging the emails sent and adding intelligence such as: ..1. Do not email this ASN again for 4 weeks ..2. Deal with peers with no email address, fall back to NOC contact possibly, and log and alert if no emails for that as well (record phone number?)
  5. Support methods other than SSH for getting the data from routers Via router classes you can use whatever you want to fetch the data