Skip to content

asgamb/netphony-topology

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

netphony-topology v1.3.0

Repository branch build status:

Master Develop
Build Status Build Status

Latest Maven Central Release:

Maven Central

Netphony-topology is a BGP-LS Speaker and a Java based Traffic Engineering Database.

BGP-LS is used for distributing Network Topologies to external elments, for example, a Path Computation Element.

The BGP-LS speaker can be run as a standalone application, or as a module attached to other software.

Traffic Engineering Database

The traffic Engineering Database (TED) is a collection of nodes and links, each of them with Traffic Engineering Attributes. The TED has as an attribute a domain identifier and a network layer.

Compilation and use

The library can be built using the maven tool. Thus, all the dependencies are included in the pom.xml file. There is a Junit test included that performs the following tests:

  • Buils two BGP-LS Speakers, one acting as sender of topology, and the other as consumer. A small topology is loaded from an xml file in BGP-LS Speaker #1. This topology is sent to BGP-LS Speaker #2.
  • Contributions on expanding the test suite are welcomed!!

To build the .jar file and run the tests, first you need to install the netphony-network-protocols (the upload process to maven central is in progress)

   git clone https://github.com/telefonicaid/netphony-network-protocols.git
   cd netphony-network-protocols
   git checkout tags/v1.3.0
   mvn package
   mvn install

Then, once the netphony-network-protocols is installed, you can proceed with the netphony-topology.

  cd ..
  git clone https://github.com/telefonicaid/netphony-topology.git
  cd netphony-topology
  mvn package
  mvn install

BGP-LS Speaker

The BGPPeer is the principal class to run a BGP Speaker. It represents a BGP4 peer. It launches the BGP connections with its peers and waits for incoming connections.

To run the BGP Peer as a standalone application use the class BGPPeerMain. You can use maven to create an autoexecutable jar that includes all dependencies in a single file. Plase be aware that if you use the real BGP port (179) you need to start as root.

  git clone https://github.com/telefonicaid/netphony-topology.git
  cd netphony-topology
  mvn clean compile assembly:single
  cd target
  sudo java -jar topology-1.3.0-jar-with-dependencies.jar 

Before running, you should configure the parameteres. The parameters are configured in an xml file. By default, if used with BGPPeerMain, or it is not specified a file name, BGP4Parameters.xml should be used. An example of the file is located in examples/BGP4Parameters.xml (and with the maven assembly build, it is copied in the target directory).

Configuration parameters

The parameters to be configured are:

  • BGP4Port: TCP port where the BGP is listening for incoming bgp4 connections. Optional Parameter. Default value: 179 (BGP Port)
  • localBGPAddress: IP where the BGP is listening for incoming bgp4 connections. Default value: localhost
  • BGPIdentifier: 32 Bit ID. Write it like an IP address (e.g. 10.0.0.1) See section 3.2.1.4 of https://datatracker.ietf.org/doc/draft-ietf-idr-ls-distribution/?include_text=1
  • BGP4ManagementPort: TCP port to connect to manage the BGP connection. Default value: 1112
  • configPeer: Peers to which this Peer is going to establish connection. One entry per peer.
    • peer: IP Address of the peer
    • export: If we need to export the topology to this peer. False by default
    • import: If we are going to import topology from this peer. True by default
  • setTraces: true/false if the traces (detailed logs) are active or inactive.
  • BGP4LogFile: File where the logs are dumped
  • delay: Waiting Time to re-connect to clients. Default value: 6000 ms.
  • myAutonomousSystem: RFC 4271. This 2-octet unsigned integer indicates the Autonomous System number of the sender

About

BGP-LS Speaker and Traffic Engineering Database

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%