All Projects → rtrlib → rtrlib

rtrlib / rtrlib

Licence: MIT license
An open-source C implementation of the RPKI/Router Protocol client

Programming Languages

c
50402 projects - #5 most used programming language
perl
6916 projects
CMake
9771 projects

Projects that are alternatives of or similar to rtrlib

neteng-roadmap
Network Engineering at Scale Roadmap/Landscape
Stars: ✭ 53 (-14.52%)
Mutual labels:  bgp, routing
hphr
Halophile Router (a VyOS-based, SaltStack-automated, NetBox-configured router for small provider networks)
Stars: ✭ 39 (-37.1%)
Mutual labels:  bgp, rpki
rtrtr
An RPKI Data Proxy
Stars: ✭ 13 (-79.03%)
Mutual labels:  rpki, rtr
invalidroutesreporter
An ExaBGP process to elaborate and report/log invalid routes received by route servers.
Stars: ✭ 14 (-77.42%)
Mutual labels:  bgp, routing
Peering Manager
Peering sessions management tool
Stars: ✭ 189 (+204.84%)
Mutual labels:  bgp, routing
Frr
The FRRouting Protocol Suite
Stars: ✭ 2,009 (+3140.32%)
Mutual labels:  bgp, routing
rpki-client-portable
Portability shim for OpenBSD's rpki-client
Stars: ✭ 33 (-46.77%)
Mutual labels:  bgp, rpki
Arouteserver
A tool to automatically build (and test) feature-rich configurations for BGP route servers.
Stars: ✭ 181 (+191.94%)
Mutual labels:  bgp, routing
Looking Glass
Easy to deploy Looking Glass
Stars: ✭ 233 (+275.81%)
Mutual labels:  bgp, routing
pocketinternet
A Pocket Internet for teaching how the Internet really works.
Stars: ✭ 28 (-54.84%)
Mutual labels:  bgp, routing
mobx-router5
Router5 integration with mobx
Stars: ✭ 22 (-64.52%)
Mutual labels:  routing
router
An Fully Automatic RESTful PHP Router
Stars: ✭ 51 (-17.74%)
Mutual labels:  routing
VaporCRUDRouter
A Rails-inspired extension to Vapor's routing system
Stars: ✭ 58 (-6.45%)
Mutual labels:  routing
node-match-path
Matches a URL against a path. Parameters, wildcards, RegExp.
Stars: ✭ 30 (-51.61%)
Mutual labels:  routing
sample-envoy-proxy
custom implementation of service discovery with envoy and inter-service communication for spring-boot applications
Stars: ✭ 29 (-53.23%)
Mutual labels:  routing
Network-Simulation-Using-Cisco-Packet-Tracer
🖧 Designed this network configuration for the network of three companies, given some constraints. Its an interesting problem demonstrating the concepts of Classless IP Subnetting and using RIPv2 Protocol.
Stars: ✭ 47 (-24.19%)
Mutual labels:  routing
calico-bgp-daemon
GoBGP based Calico BGP Daemon
Stars: ✭ 23 (-62.9%)
Mutual labels:  bgp
angular-httpclient
Angular 15 Example HttpClient
Stars: ✭ 21 (-66.13%)
Mutual labels:  routing
router-example
Use React Router DOM to create a Single Page Application (SPA).
Stars: ✭ 50 (-19.35%)
Mutual labels:  routing
SymfonyModularRouting
[DEPRECATED] Decouple your Symfony routing to independent, standalone services.
Stars: ✭ 18 (-70.97%)
Mutual labels:  routing

Build Status GitHub release License API docs Wiki Read the Docs Help wanted

Introduction

The RTRlib implements the client-side of the RPKI-RTR protocol (RFC 6810), (RFC 8210) and BGP Prefix Origin Validation (RFC 6811). This also enables the maintenance of router keys. Router keys are required to deploy BGPSEC.

The software was successfully tested on Linux and FreeBSD.

This package contains also the rtrclient program. It connects to an RTR-Server over TCP or SSH and shows on STDOUT prefix origin data and router keys that have been received from the RTR server. The program can be found in the bin/ directory.

Requirements

To build the RTRlib, the CMake build system must be installed.

To establish an SSH connection between RTR-Client and RTR-Server, the libssh 0.6.x or higher library must also be installed.

To enable BGPsec support for validating and signing AS paths, libssl 1.0 or higher needs to be installed.

cmocka (optional) is required for unit tests Doxygen (optional) is required to create the HTML documentation.

Compilation

  • Generate Makefile:

    Without debugging options

    cmake -D CMAKE_BUILD_TYPE=Release .
    

    With debug symbols and debug messages:

    cmake -D CMAKE_BUILD_TYPE=Debug .
    

    If the libssh isn't installed within the systems include and library directories you can run cmake with the following parameters:

    -D LIBSSH_LIBRARIES=<path-to-libssh.so>
    -D LIBSSH_INCLUDE_DIRS=<include-directory>
    

    If libssh is installed but you do not want to build rtrlib with ssh support, you can disable it with the following parameter:

    -D RTRLIB_TRANSPORT_SSH=No
    

    Or to enforce ssh support:

    -D RTRLIB_TRANSPORT_SSH=Yes
    

    To specify another directory where the RTRlib will be installed, you can pass the following argument to cmake:

    -D CMAKE_INSTALL_PREFIX=<path>
    

    BGPsec support is enabled by default. If dependencies cannot be resolved, rtrlib builds without BGPsec.

    To explicitly disable BGPsec:

    -D WITH_BGPSEC=No
    

    To explicitly enable BGPsec and fail the build if dependencies cannot be resolved:

    -D WITH_BGPSEC=Yes
    
  • Build library, tests, and tools

    make
    

Installation

To copy libraries and headers to system directories, run (optional):

make install

Linking to RTRlib

The name of the shared library is rtr. To link programs to the RTRlib, pass the following parameter to gcc:

-lrtr

In case an error such as

-/usr/bin/ld: cannot find -lrtr
-collect2: error: ld returned 1 exit status

occurs, the location of the library can be passed explicitly as a parameter

-L<path_to_librtr.so>

e.g.,

-L/usr/local/lib64/

API Documentation

The RTRlib includes a HTML documentation of the API. To build them, doxygen must be installed. The documentation will be located in the docs/ directory after the execution of:

make doc

Test RTR-Server Connection

The following command establishes a plain TCP connection to an RTR-Server using the rtrclient command line tool:

bin/rtrclient tcp rpki-validator.realmv6.org 8282

rpki-validator.realmv6.org is an open RTR-Server instance for testing purposes, which runs the RIPE Validator. It listens on port 8282 and validates ROAs from the following trust anchors: AfriNIC, APNIC, ARIN, LACNIC, RIPE.

Directories

  • cmake/ - CMake modules
  • doxygen/ - Example code and graphics used in the Doxygen documentation
  • rtrlib/ - Header and source code files of the RTRlib
  • tests/ - Unit tests
  • tools/ - Contains the rtrclient

CONTRIBUTE

To contribute something to RTRlib, please refer to our contributing document.

Contact

Website: http://rtrlib.realmv6.org/

Mailing List: [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].