bgpexplorer ==================== ## Description This is a BGP route explorer for RIB (routing information database) with ability to drill-down routes change history. It can be a BGP speaker (only listener exact) or BMP monitoring station. bgpexplorer supports many NLRI types and path attribute kinds and intened to be a looking glass and "show route" replacement. It is replacement for old BGPHist (https://sourceforge.net/projects/bgphist/). bgpexplorer is much more fast, beacause it store RIBs with history in the RAM. RIB can be accessed via http protocol in JSON format. For your convinience bgpexplorer serves bundled files to provide basic web service, which can be used as backend for front web server (nginx or apache for example) with AAA. All json endpoints located under /api/ URI. ## Quick start At first you will need at least a BGP router to monitor :-). And some PC with Linux/FreeBSD (although Windows or Mac will work too, I hope). At second you should configure your router to accept bgp connections from your PC. For example, router you have has IP 10.0.0.1, AS 65535. PC with bgpexplorer has IP 10.1.1.1. In Cisco dialect it will be something like: ``` router bgp 65535 ! create a neighbor with your own AS, so it will be IBGP neighbor 10.1.1.1 remote-as 65535 ! specify source IP neighbor 10.1.1.1 update-source Loopback0 ! do not attempt to connect from router to PC, only from PC to router neighbor 10.1.1.1 transport connection-mode passive address-family ipv4 ! it has ipv4 unicast address family neighbor 10.1.1.1 activate ! send all routing information to PC neighbor 10.1.1.1 route-reflector-client ! activate ipv4 labeled-unicast address family neighbor 10.1.1.1 send-label address-family vpnv4 ! activate vpnv4 unicast address family neighbor 10.1.1.1 activate neighbor 10.1.1.1 send-community extended ``` Now on PC with Linux or FreeBSD: ``` $ git clone https://github.com/wladwm/bgpexplorer ... git messages $ cd bgpexplorer $ cargo build ... cargo messages $ cat > bgpexplorer.ini <?... * RIB - ipv4u, ipv4m ... URL parameters: * limit - maximum items count in response * skip - how many items to skip for paging * filter - textual filter * /api/whois/?query= Whois public service query * ObjectType - object type to query from public whois: * as - Autonomous system number * route - route object * route6 - route6 object * /api/dns/ Reverse DNS lookup ## Crates.io https://crates.io/crates/bgpexplorer ## Documentation https://docs.rs/bgpexplorer ## License [MIT OR Apache-2.0](LICENSE)