Upstream projects

From VyOS Wiki
Jump to: navigation, search

Like any other GNU/Linux distribution, VyOS includes a lot of packages maintainer by other people. Without the work of all those people committed to open source networking, a router distro would never be possible.

This is an incomplete list of projects we use as of 1.2.0 release.

Project Function Website Notes
Debian GNU/Linux Base system Jessie version
Python Main programming language for conf and op mode scripts since 1.2.0 We use Python3 exclusively
Jinja2 Template processor Used for generating application configs from VyOS config
OCaml Programming language for algorithm and datastructure heavy work The language of the future config backend and the current config file manipulation (e.g. migration scripts) library
Perl Legacy code programming language Perl combines the power of sh, the clarity of sed, and the performance of awk with the simplicity of C. Not to be used for any new code.
Routing protocols
Quagga Routing protocol stack Heavily modified by Vyatta and incompatible with upstream, migration to FRR is planned
OpenNHRP Next Hop Resolution Protocol, required for DMVPN May be replaced by FRR's implementation in the future
igmpproxy IGMP proxy
NetFilter Firewall, NAT, and packet modification We use iptables now, migration to nftables or BPF can be considered if they reach feature parity with iptables
ipset The backend of firewall address/network/port groups
VPN and tunneling protocols
StrongSWAN IPsec IKEv1/IKEv2 implementation The AH and ESP part of IPsec is inside the Linux kernel
OpenVPN SSL VPN implementation, client-server and site-to-site modes
Poptop PPTPD protocol implementation
xl2tpd L2TPv2 protocol implementation
RP-PPPoE PPPoE implementation We use it for both client and server
Network services
ISC DHCP DHCP and DHCPv6 client and server implementation Kea may be considered in the future
PowerDNS recursor Caching DNS server Replaced dnsmasq as of 1.2.0
Squid Web proxy
Management and monitoring
OpenSSH SSH server and client
net-snmp SNMP implementation
LLDPD LLDP (and also CDP, EDP,...) implementation
High availability
keepalived VRRP implementation
Heartbeat Clustering implementation To be replaced with Pacemaker eventually
conntrackd Connection table synchronization