Skip to content

e3prom/rVRRPd

Repository files navigation

License: GPLv3 GitHub top language GitHub issues GitHub last commit Github build status Documentation Status Donate

Introduction

rVRRPd is a fast, multi-platform and standard-compliant VRRPv2 implementation written in Rust, a modern programming language known for its portability, memory-safety and speed.

Features

  • Aimed to be Fast, Portable and Highly Secure
  • Supports multiple operating systems and processor architectures
  • Multi-threaded operation (1 thread per interface and virtual router)
  • Easily configurable using TOML or JSON
  • Interoperable with RFC3768 (VRRPv2) compliant devices
    • Fully compatible with Cisco IOS and Cisco IOS-XE devices
  • Authentication Support
    • Password Authentication (Type-1) based on RFC2338
    • Proprietary P0 HMAC (SHA256 truncated to 8 bytes)
    • Proprietary P1 (SHAKE256 XOF)
  • Supports multiple operation modes:
    • Sniffer mode (-m0)
    • Virtual Router in foreground mode (-m1)
    • Virtual Router in daemon mode (-m2)
  • Supports MAC-based Virtual LAN interface (macvlan) (Linux)
  • Uses Berkeley Packet Filters Sockets (BPF) (FreeBSD)
  • Supports BPF Linux Socket Filters (Linux)
  • Provides a Client Application Programming Interface (API)
    • Runs plain-text HTTP or HTTPS (SSL/TLS)

Development

This project is still in active development, and at this time, only supports the Linux and FreeBSD operating systems. There is no stable API, configuration or even documentation yet. rVRRPd may not be interoperable with standard-compliant network equipments when using proprietary features (such as P0 or P1 authentication).

The development roadmap for the upcoming 0.2.0 release can be found here.

Documentation

You can access the latest documentation at https://rvrrpd.readthedocs.io/en/latest/.

Support

If you are experiencing any stability, security or interoperability issues, feel free to open a new issue.