Speaker

NAME

SYNOPSIS

use Net::BGP::Speaker;
$speaker = Net::BGP::Speaker.new(
        allow-unknown-peers => False,
        asn-filter => 65000,
        cidr-filter => "10.0.0.0/16,192.168.0.0/16",
        colored => True,
    )

TYPES

our subset Asn of Int:D where ^2³²

Defines a subset covering legal ASN numbers.

our subset Port of Int:D where ^2¹⁶

Defines a subset covering legal TCP/IP port numbers.

ATTRIBUTES

allow-unwanted-peers

Allow unknown peers to be able to connect without having been pre-configured.

colored

Note that this attribute can't be set directly except at construction time, however it can be changed via a helper method:

say "Colored!" if $speaker.colored;
  $speaker.colored(True);  # Make colored

If this is set to true, log messages will be displayed using ANSI-compatible colored text.

communities

A list of communities to use when advertising routes. Communities are specified in string form (I.E. "65000:1000").

display

This is a Net::BGP::Speaker::Display object. It's intended to be created during object construction, but it can be overriden by a subclass of this object during construction.

listen-host

The host to listen on for BGP connections on (defaults to 0.0.0.0). This is a string.

listen-port

The port number to listen for BGP connections on (defaults to 179).

my-asn

Our Autonymous System Number.

my-domain

Domain name of local system, to be sent in FQDN capability during OPEN. Can be undefined, which will result in Net::BGP attempting to guess the domain name.

my-hostname

Hostname of local system, to be sent in FQDN capability during OPEN. Can be undefined, which will result in Net::BGP attempting to guess the host name.

my-asn

Our Autonymous System Number.

wanted-asn

A list of Asn objects that we are interested in observing. This can also be set by passing the constructor a comma-seperated string of ASNs the :asn-filter pseudo-attribute.

wanted-cidr

A list of Net::BGP::CIDR objects that we are interested in observing. This can also be set by passing the constructor a comma-seperated string of CIDRs as the :cidr-filter pseudo-attribute.

METHODS

peer-add

$bgp.peer-add(
      :peer-asn(65001),
      :peer-ip("192.0.2.1"),
      :peer-port(179),
      :passive(False),
      :ipv4(True),
      :ipv6(False),
      :md5($key),
  );

Add a new peer to the BGP server.

Provide the peer information (peer-asn, peer-ip, and peer-port), along with whether this should be a passive session, whether the ipv4 and ipv6 address families should be negotiated, and, if necessary, an md5 key.

AUTHOR

Joelle Maslak <[email protected]>

COPYRIGHT AND LICENSE

Copyright © 2018-2019 Joelle Maslak

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

Net::BGP v0.9.0

BGP Server Support

Authors

  • Joelle Maslak

License

Artistic-2.0

Dependencies

ifDateTime::MonotonicDigestNativeHelpers::BlobOO::MonitorsStrictClassSys::DomainnameSys::HostAddrTCP::LowLevelTerminal::ANSIColor

Test Dependencies

Provides

  • Net::BGP
  • Net::BGP::AFI
  • Net::BGP::AFI-SAFI
  • Net::BGP::AS-List
  • Net::BGP::CIDR
  • Net::BGP::Capability
  • Net::BGP::Capability::ASN32
  • Net::BGP::Capability::Deprecated-Dynamic-Capability
  • Net::BGP::Capability::FQDN
  • Net::BGP::Capability::Generic
  • Net::BGP::Capability::Graceful-Restart
  • Net::BGP::Capability::Graceful-Restart::Per-AF
  • Net::BGP::Capability::MPBGP
  • Net::BGP::Capability::Route-Refresh
  • Net::BGP::Capability::Route-Refresh-Cisco
  • Net::BGP::Command
  • Net::BGP::Command::BGP-Message
  • Net::BGP::Command::Dead-Child
  • Net::BGP::Command::Stop
  • Net::BGP::Connection
  • Net::BGP::Connection-List
  • Net::BGP::Connection-Role
  • Net::BGP::Controller
  • Net::BGP::Controller-Handle-BGP
  • Net::BGP::Conversions
  • Net::BGP::Conversions-Post201812
  • Net::BGP::Conversions-Pre201812
  • Net::BGP::Error
  • Net::BGP::Error::Bad-Option-Length
  • Net::BGP::Error::Bad-Parameter-Length
  • Net::BGP::Error::Hold-Time-Too-Short
  • Net::BGP::Error::Length-Too-Long
  • Net::BGP::Error::Length-Too-Short
  • Net::BGP::Error::Marker-Format
  • Net::BGP::Error::Unknown-Version
  • Net::BGP::Event
  • Net::BGP::Event::BGP-Message
  • Net::BGP::Event::Closed-Connection
  • Net::BGP::Event::New-Connection
  • Net::BGP::IP
  • Net::BGP::Message
  • Net::BGP::Message::Generic
  • Net::BGP::Message::Keep-Alive
  • Net::BGP::Message::Notify
  • Net::BGP::Message::Notify::Cease
  • Net::BGP::Message::Notify::Cease::Administrative-Reset
  • Net::BGP::Message::Notify::Cease::Administrative-Shutdown
  • Net::BGP::Message::Notify::Cease::Connection-Rejected
  • Net::BGP::Message::Notify::Cease::Generic
  • Net::BGP::Message::Notify::Cease::Peer-Deconfigured
  • Net::BGP::Message::Notify::Generic
  • Net::BGP::Message::Notify::Header
  • Net::BGP::Message::Notify::Header::Connection-Not-Syncronized
  • Net::BGP::Message::Notify::Header::Generic
  • Net::BGP::Message::Notify::Hold-Timer-Expired
  • Net::BGP::Message::Notify::Open
  • Net::BGP::Message::Notify::Open::Bad-Peer-AS
  • Net::BGP::Message::Notify::Open::Generic
  • Net::BGP::Message::Notify::Open::Unsupported-Optional-Parameter
  • Net::BGP::Message::Notify::Open::Unsupported-Version
  • Net::BGP::Message::Open
  • Net::BGP::Message::Update
  • Net::BGP::Parameter
  • Net::BGP::Parameter::Capabilities
  • Net::BGP::Parameter::Generic
  • Net::BGP::Path-Attribute
  • Net::BGP::Path-Attribute::AS-Path
  • Net::BGP::Path-Attribute::AS4-Aggregator
  • Net::BGP::Path-Attribute::AS4-Path
  • Net::BGP::Path-Attribute::Aggregator
  • Net::BGP::Path-Attribute::Atomic-Aggregate
  • Net::BGP::Path-Attribute::Cluster-List
  • Net::BGP::Path-Attribute::Community
  • Net::BGP::Path-Attribute::Extended-Community
  • Net::BGP::Path-Attribute::Generic
  • Net::BGP::Path-Attribute::Local-Pref
  • Net::BGP::Path-Attribute::Long-Community
  • Net::BGP::Path-Attribute::MED
  • Net::BGP::Path-Attribute::MP-NLRI
  • Net::BGP::Path-Attribute::MP-Unreachable
  • Net::BGP::Path-Attribute::Next-Hop
  • Net::BGP::Path-Attribute::Origin
  • Net::BGP::Path-Attribute::Originator-ID
  • Net::BGP::Peer
  • Net::BGP::Peer-List
  • Net::BGP::SAFI
  • Net::BGP::Speaker
  • Net::BGP::Speaker::Display
  • Net::BGP::Time
  • Net::BGP::Validation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.