The entire codebase and the build toolchain are available for everyone to use, inspect and contribute to.
Our image build scripts are easy to use and allow multiple customization options. Build flavors (reusable JSON files with build configuration) make it easy to maintain your own builds without entering the same options each time. Binary package repositories of official VyOS releases are open to the public, so there is no need to build the entire system from source.
These are some customizations you can make:
- Add custom package sources (repositories)
- Include additional packages from remote repositories or a local directory
- Use a custom default configuration file
In the future we plan to set up a web service for our customers to build images online.
VyOS uses a layered architecture. All components such as firewall, VPN and routing protocols are built on top of a configuration management framework that includes a custom shell environment, libraries for loading the config files and committing config changes, and libraries for reading values from the running config.
This makes it easy to integrate new applications into the system seamlessly. In fact, a number of VyOS features started their life as community-developed addons. There is no special “plugin API”, what you get to use is exactly what the maintainers use to add features to mainline VyOS.
Command definitions are written in XML and can be automatically validated using a RelaxNG schema. Scripts that generate target application configs can be written in Python 3, Perl, or shell.
To ensure forward compatibility even if the command syntax changes, we provide an API for writing migration scripts that parse config files and automatically update the syntax.
Single network OS for many roles and platforms.
VyOS runs on a wide range of hardware from small office routers to large servers, as well as virtual machines and multiple cloud providers.
BGP (IPv4 and IPv6), OSPF (v2 and v3), RIP and RIPng, policy-based routing.
IPsec, VTI, VXLAN, L2TPv3, L2TP/IPsec and PPTP servers, tunnel interfaces (GRE, IPIP, SIT), OpenVPN in client, server, or site-to-site modes, WireGuard.
Firewall and NAT
Stateful firewall, zone-based firewall, all types of source and destination NAT (one to one, one to many, many to many).
DHCP and DHCPv6 server and relay, IPv6 RA, DNS forwarding, TFTP server, web proxy, PPPoE access concentrator, NetFlow/sFlow sensor, QoS.
VRRP for IPv4 and IPv6, ability to execute custom health checks and transition scripts; ECMP, stateful load balancing.
Fully Open Source
The entire codebase and the build toolchain are available to everyone for auditing, building customized images, and contributing.
And archiving make external configuration backup tools redundant.
VyOS — The Universal Router.
VyOS is a fully open-source, enterprise-grade router platform. Being open-source and community-driven is not a liability for us, not an early stage gimmick we want to shed—it’s our distinctive advantage. VyOS started as a community fork of a discontinued Vyatta Core project in 2013, with a promise to live up to free and open-source software values. We kept the promise and turned VyOS into a successful, self-funded project.
VyOS is fully open-source and we encourage everyone to build images and report any build process issues. The source code of the rolling release and LTS branches alike is available online. However, simply making code available is not enough.
We also keep the complete build toolchain available, and we strive to make it easy to use. You can build a VyOS image in just a few commands. There is no special maintainer toolchain we keep to ourselves: all image build tools are available to everyone interested.
Our issue tracker is available online. There is no private issue tracker: even issues reported by commercial users through the support portal are registered in the public tracker (except security issues before public disclosure of course).
Everyone is free to browse open tasks, test them, fix them, and make pull requests.
We do not have any contributor agreements that require you to transfer your copyrights to us. The copyright is shared between all contributors. This means no one can make a closed source fork of VyOS—not even its current maintainers.
VyOS is not just a product, but an open platform. It uses a layered architecture with unified and documented internal APIs.
Many major features were contributed by community members. Command definitions are written in a machine-verifiable XML format and malformed definitions fail the build. Our new code is in legacy-free Python3, and some core components are in OCaml.
Every part of the system is open to contributions.
We welcome all contributors. Even if you are not a programmer, there are many things to do: testing, documentation, evangelism and so on.
Since you are sharing your time and effort with us to make the project better, we are also happy to share our LTS release maintenance effort with you. Every active contributor can get access to prebuilt LTS images.