:::::::::::::::::: :: PROGRAM INFO :: :::::::::::::::::: Program Name........: RouteCollector for MPLS/VPLS based VPNs based on BGP Signaling Version.............: 1.0 Author..............: Giuseppe Di Battista - Massimo Rimondini - Giorgio Sadolfo License Type........: GPL Paid................: N/A OS..................: Linux Ubuntu 10.04 LTS Release Date........: 25/01/2013 Languages...........: English ::::::::::::: :: CONTACT :: ::::::::::::: Website.............: http://www.dia.uniroma3.it/~compunet/www/view/group-topics.php?id=compunet Email...............: sadolfo@dia.uniroma3.it ::::::::::::::::::::::::::::: :: DESCRIPTION or/and USES :: ::::::::::::::::::::::::::::: This RouteCollector software permits to collect BGP Updates about the MPLS/VPLS VPNs deployed into your network. In order to operate, the RouteCollector requires establishing iBGP peerings with Provider Edge (PE) and/or Route Reflector (RR) routers inside your network. Even a single peering is enough for the software to collect information, but it is in general advised to have multiple peerings with routers placed in different portions of the network to have a better visibility of network events. The RouteCollector never produces or forwards BGP announcements on its own: it just listens for incoming announcements. The full architecture and operation of the RouteCollector software (and of some additional components that are required to provide an effective visualization of the current network status), together with a discussion about the benefits of establishing multiple peerings, can be found in the following paper: Giuseppe Di Battista, Massimo Rimondini, Giorgio Sadolfo. Monitoring the Status of MPLS VPN and VPLS Based on BGP Signaling Information. In Proc. IEEE/IFIP Network Operations and Management Symposium (NOMS 2012), 2012. :::::::::::::::::: :: REQUIREMENTS :: :::::::::::::::::: To deploy the route collector you could 1) Deploy a prepared Virtual Machine into your network, or 2) Install the collector manually. The RouteCollector stores collected data (BGP updates) in a MySql server. Therefore, in both cases it is required to have a MySql Server installation up and running and accessible through the network. For the first possibility, a virtualization software is required. VMware, VirtualBox, and Hyper-V are all good choices. :::::::::::::::: :: WHAT'S NEW :: :::::::::::::::: This software is based on the same principles and components of the RIPE RIS Route Collector (http://www.ripe.net/data-tools/projects/faqs/faq-ris). However, this version extends the capabilities of the RIS route collector by enabling the Quagga daemon to receive and store MPLS and L2VPN signaling information sent on a BGP peering. Further improvements have been applied to other software components to be able to process the stored information for insertion in the database. ::::::::::: :: HOWTO :: ::::::::::: To deploy the Route Collector you can proced in two ways, depending on the kind of deployment you have chosen. VIRTUAL MACHINE DEPLOYMENT -------------------------- After you have deployed the virtual machine into your host you can log in using: Username: collector Password C0ll3ct0r NOTE: The virtual machine is designed to be equipped with a single network card, which should be ok for most deployments. In case you need any other additional network interfaces, you need to configure and connect them in your virtualization enviroment. The Ubuntu Server distro should recognize the new LAN card, but you still need to set it up by editing the /etc/network/interfaces file. Example: Setting the new card eth1 to obtain an IP from the DHCP Server auto eth1 iface eth1 inet dhcp Now the route collector needs to be configured according to your network setup. To setup the RouteCollector some configuration files must be edited inside the guest VM. The virtual machine contains a Quagga installation that must be configured as follows. 1) SETUP QUAGGA TO ESTABLISHING BGP PEERINGS To setup BGP peerings, edit file /home/collector/CollectorVPN/bgp/bgpd.conf according to the example below: ! Put your own AS number in the following line router bgp 12345 ! The following configuration statements must be instantiated for each ! router with which a BGP peering is to be established ! Specify the IP address of the remote BGP router and your local AS number neighbor 10.40.0.41 remote-as 12345 ! The following lines enable collection of BGP updates for MPLS VPNs address-family vpnv4 unicast neighbor 10.40.0.41 activate ! The following lines enable collection of BGP updates for VPLS VPNs address-family l2vpn neighbor 10.40.0.41 activate BGP peerings must of course also be configured on the side of your own routers. The setup must be such that the Quagga instance run by the RouteCollector presents itself as a route-reflector-client. You must therefore add the IP address of the virtual machine to a (possibly new) cluster of route reflectors. Example: Setup of a BGP peering on a Juniper router group rr2-clients{ type internal; family inet { unicast;} family inet-vpn {unicast;} family l2vpn {signaling;} cluster 10.40.0.41; allow 10.40.0.0/24 neighbor 10.55.60.3; } After the configuration the RouteCollector software needs to be restarted: sudo /etc/init.d/init_routeserver_ibgplay_CollectorVPN.sh stop sudo /etc/init.d/init_routeserver_ibgplay_CollectorVPN.sh start To check that BGP sessions are properly working: telnet localhost 30002 Enter the password specified in the Quagga configuration (default: C0ll3ct0r) and issue command: sh ip bgp summary You should see, in the rightmost column, the number of prefixes learned via the iBGP session. If you see "Active", "Connect" or "Idle" check you router configuration, IP connectivity, firewalls (on your server and on the network), etc. 2) SETUP CONNECTION WITH THE MYSQL SERVER By default the router collector dumps the information every minute and puts them into a specified database after two more minutes. To collect the information the route collector needs an installed MySQL Server that is accessible through the network. Configuration settings are stored into /home/collector/CollectorVPN/config/retriever_ibgp.cfg. In particoular, you should specify: DB_USER=<> DB_NAME=<> DB_PASSWORD=<> DB_HOST=<> Before being able to store collected information into the database. you need to manually create a DataBase on DB_HOST with the same DB_NAME and configure user DB_USER to have full privileges on that database, with password DB_PASSWORD. Now all settings are specified and the tools should work properly. MANUAL INSTALLATION ------------------- The installation requires a MySql Server up and running in your network. As a preliminary step, the target host that will run the RouteCollector installation requires to have a MySql client available. Example: Install a MySql client in Ubuntu: apt-get install mysql-client Now you can proced with the installation. Copy file Install-VPN_Collector.tar.gz into your system, extract it, and modify file cfg/install.conf. 1. Edit file cfg/install.conf so that it matches with your needs. In particular, you should specify - your ORGANIZATION_NAME (a single word identifying your organization) - one IP address for each BGP router you want to establish a peering with (you have to start with at least one router, more can be added later) - your own AS number - a password that will be used for the route collector terminal, accessible via telnet on the default port 30002; the same password will be used for accessing the MySql database. 2. Run as root: ./install.sh install To further edit the configuration and test the route collector follow the istructions specified for the virtual machine deployment above. NOTE: In the x86 architecture you have to copy /InstallDir/tools/quaggax86/libzebra.so.0 in the /usr/lib directory.