bgpd.pl, a BGP daemon written in perl

A first release of bgpd.pl, a limited functionality BGP daemon written in perl is now available. This software is alpha stage. Further testing is required for: - interoperability testing with other BGP software (currently Zebra and Cisco have been tested) - testing with multiple concurrent BGP connections plus local-RIB route selection This software is not intended to be used for packet forwarding purposes, indeed functionality is missing to fullfil this role. This tool can be useful for real-time monitoring of BGP routing tables. The software can easily be extended to implement specific monitoring functions since it has been written in perl and its datatypes are well documented. Which monitoring functions could be useful I leave up to your imagination. I have attached the README of the package to the end of this mail. The software can be downloaded from: http://www.fasttracknetworks.com/software/bgpd.pl/ Bug reports are appreciated and if someone is willing to set up a eBGP connection to me then I could test the route selection code. - Steven Hessing README: bgpd.pl Version 0.01 (C)2001 Steven Hessing steven@xs4all.nl bgpd.pl is a partial implementation of the BGP protocol (RFC1771) in perl. It was written as a tool to monitor BGP routing updates. It is NOT written to be used as a BGP router in an operational network, in fact is has no support to propogate routing information because there is no code to send BGP UPDATE messages. bgpd.pl also does not touch the routing table of the host it runs on. With the constraints described in the above text, the software supports the following RFCs to the extend indicated: RFC1771 - Border Gateway Protocol version 4 adj-RIB-out not maintained, no outgoing BGP UPDATE messages, BGP TCP sessions are not initiated. No Finite State Machine support. RFC1863 - BGP Route Server Route Server client behaviour is supported. bgpd.pl can't act as a route server RFC1997 - BGP Communities attribute supported RFC2385 - Protection of BGP Sessions via the TCP MD5 Signature Option not supported RFC2439 - BGP Route Flap Damping not supported, not needed because we don't send out UPDATES RFC2545 - Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing not supported RFC2547 - BGP/MPLS VPNs not supported RFC2796 - BGP Route reflection supported RFC2842 - Capabilities Advertisement with BGP-4 We don't follow this RFC when a neighbour doesn't support a capability that we do. We keep announcing the same set of capabilities. RFC2858 - Multiprotocol Extensions for BGP-4 almost no support. We recognise the RFC2842-capability announcement RFC2918 - Route refresh capability for BGP-4 supported RFC3065 - Autonomous System Confederations for BGP supported The following RFC drafts are not yet supported: draft-ietf-id-bgp4-12 draft-ietf-id-route-filter-03 draft-ietf-id-restart-00 draft-ietf-id-as4bytes-01 draft-ietf-id-route-oscillation-00 Multiprotocol support: Although the MP capability is accepted and announced in the BGP OPEN message, all MP path attributes in BGP UPDATE messages are silently ignored. There is no support for the MPLS/BGP VPN application or IPv6. This is planned for future releases. DOWNLOAD: The home page of bgpd.pl is: http://www.fasttracknetworks.com/software/bgpd.pl/index.html INSTALLATION: - download and install Net::Patricia from http://net.doit.wisc.edu/~plonka/Net-Patricia/ - cd <parent-dir>; tar zxvf bgpd.pl.tar.gz USAGE: - cd into the bgpd.pl directory - ./bgpd.pl [--log [syslog|file|stdout] ] [ --daemon] [--debug [level] ] [ --as <asnumber> ] - There are many debugging levels, read the `LOGGING' file. If you enable full logging then prepare for a lot of logging information! For a full BGP table you'll get log file of close to 100MB - The default AS is 65100 which is a private AS. - set up a BGP session from your router to the host on which you run bgpd.pl If you use a private AS then don't forget to enable eBGP multihop on your router. If you prefer to use iBGP then I would suggest configuring your router as a route reflector for this BGP connection. - edit the bgpd.pl script to get the kind of monitoring functionality that you need. You'll mostly use the %adjRIBin, %localRIB and %peers hashes. They are described in the file DATATYPES - if you have specified `file' or `stdout' for logging then you can send the bgpd.pl process a kill -1 to get a dump of the routing table. SECURITY CONSIDERATIONS: - connecting this alpha-stage software which has undergone limited testing to your production network can result in considerable damage to your network! Use this software at your own risk! - this software runs as root because it needs to connect to the TCP/BGP port. The code does not switch back to a regular UID yet. It opens a logfile for writing in the current working directory under the name bgpd.log. Make sure that this is not a (sym-) link! INTEROPERABILITY: - bgpd.pl has succesfully maintained BGP sessions with: - Zebra 0.91A - Cisco IOS ios 12.0(14)S2 running on a Cisco 7206 WARNING: There should be no problem running a bgp connection between a router in a production network and bgpd.pl because in no circumstance will bgpd.pl propogate routing information nor will it change the routing table of the host it runs on. BUT, this is alpha code and has undergone limited testing so use it at your own risk. Better connect it to your test network for now.

On Mon, 23 Apr 2001, Steven Hessing wrote:
A first release of bgpd.pl, a limited functionality BGP daemon written in perl is now available. This software is alpha stage. Further testing is
This software is not intended to be used for packet forwarding purposes, indeed functionality is missing to fullfil this role. This tool can be
Damn, looks like I'll have to wait for the next release then before I can use my linux box for GSR.. In fact, I shouldnt even joke, if the finance people read it they'll think they can save 100k by swapping 12000s with PIIIs!! Steve -- Stephen J. Wilcox IP Services Manager, Opal Telecom http://www.opaltelecom.co.uk/ Tel: 0161 222 2000 Fax: 0161 222 2008

To Steven, The web server returning the 404 error is 64.85.73.31 I'd send it to you privately, but you have a config error with the MX records for your network... :) Eric At 02:12 PM 4/23/01 +0200, Steven Hessing wrote:
A first release of bgpd.pl, a limited functionality BGP daemon written in perl is now available. This software is alpha stage. Further testing is required for: - interoperability testing with other BGP software (currently Zebra and Cisco have been tested) - testing with multiple concurrent BGP connections plus local-RIB route selection
This software is not intended to be used for packet forwarding purposes, indeed functionality is missing to fullfil this role. This tool can be useful for real-time monitoring of BGP routing tables. The software can easily be extended to implement specific monitoring functions since it has been written in perl and its datatypes are well documented. Which monitoring functions could be useful I leave up to your imagination.
I have attached the README of the package to the end of this mail. The software can be downloaded from: http://www.fasttracknetworks.com/software/bgpd.pl/
Bug reports are appreciated and if someone is willing to set up a eBGP connection to me then I could test the route selection code.
- Steven Hessing
README: bgpd.pl Version 0.01 (C)2001 Steven Hessing steven@xs4all.nl
bgpd.pl is a partial implementation of the BGP protocol (RFC1771) in perl. It was written as a tool to monitor BGP routing updates. It is NOT written to be used as a BGP router in an operational network, in fact is has no support to propogate routing information because there is no code to send BGP UPDATE messages. bgpd.pl also does not touch the routing table of the host it runs on.
With the constraints described in the above text, the software supports the following RFCs to the extend indicated: RFC1771 - Border Gateway Protocol version 4 adj-RIB-out not maintained, no outgoing BGP UPDATE messages, BGP TCP sessions are not initiated. No Finite State Machine support. RFC1863 - BGP Route Server Route Server client behaviour is supported. bgpd.pl can't act as a route server RFC1997 - BGP Communities attribute supported RFC2385 - Protection of BGP Sessions via the TCP MD5 Signature Option not supported RFC2439 - BGP Route Flap Damping not supported, not needed because we don't send out UPDATES RFC2545 - Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing not supported RFC2547 - BGP/MPLS VPNs not supported RFC2796 - BGP Route reflection supported RFC2842 - Capabilities Advertisement with BGP-4 We don't follow this RFC when a neighbour doesn't support a capability that we do. We keep announcing the same set of capabilities. RFC2858 - Multiprotocol Extensions for BGP-4 almost no support. We recognise the RFC2842-capability announcement RFC2918 - Route refresh capability for BGP-4 supported RFC3065 - Autonomous System Confederations for BGP supported
The following RFC drafts are not yet supported: draft-ietf-id-bgp4-12 draft-ietf-id-route-filter-03 draft-ietf-id-restart-00 draft-ietf-id-as4bytes-01 draft-ietf-id-route-oscillation-00
Multiprotocol support: Although the MP capability is accepted and announced in the BGP OPEN message, all MP path attributes in BGP UPDATE messages are silently ignored. There is no support for the MPLS/BGP VPN application or IPv6. This is planned for future releases.
DOWNLOAD: The home page of bgpd.pl is: http://www.fasttracknetworks.com/software/bgpd.pl/index.html
INSTALLATION: - download and install Net::Patricia from http://net.doit.wisc.edu/~plonka/Net-Patricia/ - cd <parent-dir>; tar zxvf bgpd.pl.tar.gz
USAGE: - cd into the bgpd.pl directory - ./bgpd.pl [--log [syslog|file|stdout] ] [ --daemon] [--debug [level] ] [ --as <asnumber> ] - There are many debugging levels, read the `LOGGING' file. If you enable full logging then prepare for a lot of logging information! For a full BGP table you'll get log file of close to 100MB - The default AS is 65100 which is a private AS. - set up a BGP session from your router to the host on which you run bgpd.pl If you use a private AS then don't forget to enable eBGP multihop on your router. If you prefer to use iBGP then I would suggest configuring your router as a route reflector for this BGP connection. - edit the bgpd.pl script to get the kind of monitoring functionality that you need. You'll mostly use the %adjRIBin, %localRIB and %peers hashes. They are described in the file DATATYPES - if you have specified `file' or `stdout' for logging then you can send the bgpd.pl process a kill -1 to get a dump of the routing table.
SECURITY CONSIDERATIONS: - connecting this alpha-stage software which has undergone limited testing to your production network can result in considerable damage to your network! Use this software at your own risk! - this software runs as root because it needs to connect to the TCP/BGP port. The code does not switch back to a regular UID yet. It opens a logfile for writing in the current working directory under the name bgpd.log. Make sure that this is not a (sym-) link!
INTEROPERABILITY: - bgpd.pl has succesfully maintained BGP sessions with: - Zebra 0.91A - Cisco IOS ios 12.0(14)S2 running on a Cisco 7206
WARNING: There should be no problem running a bgp connection between a router in a production network and bgpd.pl because in no circumstance will bgpd.pl propogate routing information nor will it change the routing table of the host it runs on. BUT, this is alpha code and has undergone limited testing so use it at your own risk. Better connect it to your test network for now.
========================================================================== Eric Germann Inacom Info Systems egermann@inacomlima.com Lima, OH 45801 Ph: 419 331 9050 ICQ: 41927048 Fax: 603 825 5893 "It is so easy to miss pretty trivial solutions to problems deemed complicated. The goal of a scientist is to find an interesting problem, and live off it for a while. The goal of an engineer is to evade interesting problems :)" -- Vadim Antonov <avg@kotovnik.com> on NANOG

Hi Erik, The problem is related to DNS. It has hit you and a couple of others trying to access the page. The correct IP address is 213.84.134.138. It should be fixed now but may take a bit of time to propogate. For those that are bitten by the DNS problem, I've temporarily made the software available at: http://www.yavent.com/software/bgpd.pl/ - Steven At 09:34 23-4-01 -0400, Eric Germann wrote:
To Steven,
The web server returning the 404 error is 64.85.73.31
I'd send it to you privately, but you have a config error with the MX records for your network... :)
Eric
At 02:12 PM 4/23/01 +0200, Steven Hessing wrote:
A first release of bgpd.pl, a limited functionality BGP daemon written in perl is now available. This software is alpha stage. Further testing is required for: - interoperability testing with other BGP software (currently Zebra and Cisco have been tested) - testing with multiple concurrent BGP connections plus local-RIB route selection
This software is not intended to be used for packet forwarding purposes, indeed functionality is missing to fullfil this role. This tool can be useful for real-time monitoring of BGP routing tables. The software can easily be extended to implement specific monitoring functions since it has been written in perl and its datatypes are well documented. Which monitoring functions could be useful I leave up to your imagination.
I have attached the README of the package to the end of this mail. The software can be downloaded from: http://www.fasttracknetworks.com/software/bgpd.pl/
Bug reports are appreciated and if someone is willing to set up a eBGP connection to me then I could test the route selection code.
- Steven Hessing
README: bgpd.pl Version 0.01 (C)2001 Steven Hessing steven@xs4all.nl
bgpd.pl is a partial implementation of the BGP protocol (RFC1771) in perl. It was written as a tool to monitor BGP routing updates. It is NOT written to be used as a BGP router in an operational network, in fact is has no support to propogate routing information because there is no code to send BGP UPDATE messages. bgpd.pl also does not touch the routing table of the host it runs on.
With the constraints described in the above text, the software supports the following RFCs to the extend indicated: RFC1771 - Border Gateway Protocol version 4 adj-RIB-out not maintained, no outgoing BGP UPDATE messages, BGP TCP sessions are not initiated. No Finite State Machine support. RFC1863 - BGP Route Server Route Server client behaviour is supported. bgpd.pl can't act as a route server RFC1997 - BGP Communities attribute supported RFC2385 - Protection of BGP Sessions via the TCP MD5 Signature Option not supported RFC2439 - BGP Route Flap Damping not supported, not needed because we don't send out UPDATES RFC2545 - Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing not supported RFC2547 - BGP/MPLS VPNs not supported RFC2796 - BGP Route reflection supported RFC2842 - Capabilities Advertisement with BGP-4 We don't follow this RFC when a neighbour doesn't support a capability that we do. We keep announcing the same set of capabilities. RFC2858 - Multiprotocol Extensions for BGP-4 almost no support. We recognise the RFC2842-capability announcement RFC2918 - Route refresh capability for BGP-4 supported RFC3065 - Autonomous System Confederations for BGP supported
The following RFC drafts are not yet supported: draft-ietf-id-bgp4-12 draft-ietf-id-route-filter-03 draft-ietf-id-restart-00 draft-ietf-id-as4bytes-01 draft-ietf-id-route-oscillation-00
Multiprotocol support: Although the MP capability is accepted and announced in the BGP OPEN message, all MP path attributes in BGP UPDATE messages are silently ignored. There is no support for the MPLS/BGP VPN application or IPv6. This is planned for future releases.
DOWNLOAD: The home page of bgpd.pl is: http://www.fasttracknetworks.com/software/bgpd.pl/index.html
INSTALLATION: - download and install Net::Patricia from http://net.doit.wisc.edu/~plonka/Net-Patricia/ - cd <parent-dir>; tar zxvf bgpd.pl.tar.gz
USAGE: - cd into the bgpd.pl directory - ./bgpd.pl [--log [syslog|file|stdout] ] [ --daemon] [--debug [level] ] [ --as <asnumber> ] - There are many debugging levels, read the `LOGGING' file. If you enable full logging then prepare for a lot of logging information! For a full BGP table you'll get log file of close to 100MB - The default AS is 65100 which is a private AS. - set up a BGP session from your router to the host on which you run bgpd.pl If you use a private AS then don't forget to enable eBGP multihop on your router. If you prefer to use iBGP then I would suggest configuring your router as a route reflector for this BGP connection. - edit the bgpd.pl script to get the kind of monitoring functionality that you need. You'll mostly use the %adjRIBin, %localRIB and %peers hashes. They are described in the file DATATYPES - if you have specified `file' or `stdout' for logging then you can send the bgpd.pl process a kill -1 to get a dump of the routing table.
SECURITY CONSIDERATIONS: - connecting this alpha-stage software which has undergone limited testing to your production network can result in considerable damage to your network! Use this software at your own risk! - this software runs as root because it needs to connect to the TCP/BGP port. The code does not switch back to a regular UID yet. It opens a logfile for writing in the current working directory under the name bgpd.log. Make sure that this is not a (sym-) link!
INTEROPERABILITY: - bgpd.pl has succesfully maintained BGP sessions with: - Zebra 0.91A - Cisco IOS ios 12.0(14)S2 running on a Cisco 7206
WARNING: There should be no problem running a bgp connection between a router in a production network and bgpd.pl because in no circumstance will bgpd.pl propogate routing information nor will it change the routing table of the host it runs on. BUT, this is alpha code and has undergone limited testing so use it at your own risk. Better connect it to your test network for now.
========================================================================== Eric Germann Inacom Info Systems egermann@inacomlima.com Lima, OH 45801 Ph: 419 331 9050 ICQ: 41927048 Fax: 603 825 5893
"It is so easy to miss pretty trivial solutions to problems deemed complicated. The goal of a scientist is to find an interesting problem, and live off it for a while. The goal of an engineer is to evade interesting problems :)" -- Vadim Antonov <avg@kotovnik.com> on NANOG
participants (3)
-
Eric Germann
-
Stephen J. Wilcox
-
Steven Hessing