Over the past four or so years I’ve been researching BGP routing in Canada.
My first interest in studying Canadian BGP came as a result of studying historical BGP hijacks. I talk about this during my BSidesWpg 2013 talk:
The practical applications of my study have taken several forms as I learn what works and what doesn’t work (at all).
- v1 - direct JSON from exabgp piped into curl to store in couchdb
I talk about what I’m calling v1 in my BSidesWpg 2015 talk:
- v2 - JSON from exabgp piped into python where it is parsed and INSERTed into a mySQL table
Now that I have a database which contains the current status and number of prefixes advertised by each Canadian ASN I am able to automate the generation of various sections of my website.
Each provinces ASN status page (MB, BC, ON, etc) is now fully generated (in markdown) from a DB instead of manually. There is no human interaction or editing in the process, so ASNs which operate in other provinces aren’t manually corrected any longer. I’ve also removed the list of national/international ASNs operating in each province as that was not possible to automate.
Some human interaction was required. Several ASNs have their name in both official languages and as such they are extremely long. These are handled with a specific if line for each case that arises.
As a side effect of the pages now being generated, the on-page BGP history is gone, and the history is now in git history instead. These generated BGP pages now have last modified dates at the bottom. This is done using a git pre-commit hook.
I still need to automate the generation of the growth graphs, but that is part way there already and should be completed soon.