gobgp
exabgp
Our great sponsors
gobgp | exabgp | |
---|---|---|
6 | 7 | |
3,468 | 2,024 | |
1.4% | 0.4% | |
8.3 | 8.1 | |
5 days ago | 13 days ago | |
Go | Python | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gobgp
-
Project reading tools
I am thinking about following some Go projects like GoBGP or hugo. What tools should I use for navigating the source tree and cross reference them? I have some vim/ctag files experiences on some C projects.
- BGP Implemented in Go
- BGP implemented in Go
-
lab env getting the full route table.
Inject it into GoBGP: https://github.com/osrg/gobgp/blob/master/docs/sources/mrt.md
exabgp
-
How to analyze a package/library?
I'm curious how ExaBGP works. In particular:
-
Java Library for BGP Peering?
I don’t know of a specific Java implementation but https://github.com/Exa-Networks/exabgp might fit in ok. Use exa to talk bgp but write java applets to “do things” with what exa hands you.
-
BGP Implemented in Go
> not to be tenable in Python
https://github.com/Exa-Networks/exabgp is written in python
- Has anyone worked with exabgp? Have question regarding return path traffic
-
More details about the October 4 outage
"Those translation queries are answered by our authoritative name servers that occupy well known IP addresses themselves, which in turn are advertised to the rest of the internet via another protocol called the border gateway protocol (BGP)."
"To ensure reliable operation, our DNS servers disable those BGP advertisements if they themselves can not speak to our data centers, since this is an indication of an unhealthy network connection."
Correct me if I am wrong, but here "DNS servers" means the computers, not the software running on them, i.e., each computer is running both DNS server software and a BGP daemon.
For example, with a BGP daemon like ExaBGP the output of a DNS query can be checked and routes could be removed if the query fails.
https://github.com/Exa-Networks/exabgp
-
Tools to Explore BGP
13 years ago I wrote a nice reference implementation for BGP "client" use - I just treated it as an API onto Cisco routers: https://github.com/BytemarkHosting/bgpfeeder is 1300 lines of Ruby, one file, no dependencies, and quite verbose.
At the time I was running a hosting company & wanted to feed updates to our IP lists from a web-based database into our routers (e.g. a customer wants a new IP to their servers, or moves their VPS images between physical hosts). But I couldn't understand how to get tight control of quagga, or the Ciscos and wondered how how to speak it directly?
It took about a week poring over the RFCs and the Net::BGP Perl module, but I can go back to it now for some useful revision. It brought a lot of disparate BGP knowledge together in one place, and re-expressed it in a language I still know. So if you know Ruby and are curious about BGP it might help you see what you can do with it.
Though if you want to use BGP to control your network devices today, you'd use https://github.com/Exa-Networks/exabgp instead. It can pull every trick you could possibly want with BGP - e.g. DDoS mitigation, anycast, and generally letting you mess with BGP via JSON. There are lots of extensions to BGP, and I only cared about the ones to send v4 & v6 routes around. Also I only wanted to write it all in one file :)
- lab env getting the full route table.
What are some alternatives?
jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet.
bgpsimple - simple BGP peering and route injection script
gobetween - :cloud: Modern & minimalistic load balancer for the Сloud era
Ryven - Flow-based visual scripting for Python
canopus - CoAP Client/Server implementing RFC 7252 for the Go Language
rustybgp - BGP implemented in the Rust Programming Language
dns - DNS library in Go
Cloudmare - Cloudflare, Sucuri, Incapsula real IP tracker.
sslb - Golang Super Simple Load Balance
netflix-proxy - Smart DNS proxy to watch Netflix
pydexcom - A simple Python API to interact with Dexcom Share service