Rand Stats




Net::BGP - BGP Server Support


use Net::BGP

my $bgp = Net::BGP.new( port => 179 );  # Create a server object


This provides framework to support the BGP protocol within a Raku application.

This is a pre-release of the final version, and as such the interface may change. The best way of seeing how this module works is to look at bin/bgpmon.pl6 and examining it. If you are interested in using this module, and have any suggestions at all, please let me know!



The port attribute defaults to 179 (the IETF assigned port default), but can be set to any value between 0 and 65535. It can also be set to Nil, meaning that it will be an ephimeral port that will be set once the listener is started.


The host to listen on (defaults to the IPv4 any-host IP,


Returns the channel communicate to command the BGP server process. This will not be defined until listen() is executed. It is intended that user code will send messages to the BGP server.


Returns the channel communicate for the BGP server process to communicate to user code.


If this is True (default is False), connections from unknown peers are allowed. When they first connect, a new peer is added to the peer list using the remote address and the ASN sent in the peer's OPEN message.




Starts BGP listener, on the port provided in the port attribute.

For a given instance of the BGP class, only one listener can be active at any point in time.



Add a new peer to the BGP server.

Providing peer-asn and peer-ip is required. However, if the peer-port is not provided, 179 will be used. If passive is not used, the connection will not be configured as a passive connection. If ipv4 is not provided, it defaults to True (enabling the IPv4 address family), while ipv6 defaults to False (disabling the IPv6 address family). If an md5 parameter is provided, this is used to set up MD5 associations (on OSes that support this via the TCP::LowLevel module).


Mythic Beasts, a managed and unmanaged VPS, dedicated server, web and email hosting company (among many other services) generously donated the use of a VPS host with IPv4 and IPv6 BGP feeds for the development of this module. Check them out at https://www.mythic-beasts.com/.


Joelle Maslak jmaslak@antelope.net


Copyright © 2018-2020 Joelle Maslak

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.