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.
- 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)
- Password Authentication (Type-1) based on
- Supports multiple operation modes:
- Sniffer mode (
-m0
) - Virtual Router in foreground mode (
-m1
) - Virtual Router in daemon mode (
-m2
)
- Sniffer mode (
- 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)
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.
You can access the latest documentation at https://rvrrpd.readthedocs.io/en/latest/.
If you are experiencing any stability, security or interoperability issues, feel free to open a new issue.