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
Fundamentals
Debian GNU/Linux Base system debian.org Jessie version
Python Main programming language for conf and op mode scripts since 1.2.0 python.org We use Python3 exclusively
Jinja2 Template processor jinja.pocoo.org Used for generating application configs from VyOS config
OCaml Programming language for algorithm and datastructure heavy work ocaml.org The language of the future config backend and the current config file manipulation (e.g. migration scripts) library
Perl Legacy code programming language perl.org 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 quagga.net Heavily modified by Vyatta and incompatible with upstream, migration to FRR is planned
OpenNHRP Next Hop Resolution Protocol, required for DMVPN sourceforge.net/projects/opennhrp/ May be replaced by FRR's implementation in the future
igmpproxy IGMP proxy
Security
NetFilter Firewall, NAT, and packet modification netfilter.org 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 http://ipset.netfilter.org/
VPN and tunneling protocols
StrongSWAN IPsec IKEv1/IKEv2 implementation strongswan.org The AH and ESP part of IPsec is inside the Linux kernel
OpenVPN SSL VPN implementation, client-server and site-to-site modes openvpn.net
Poptop PPTPD protocol implementation poptop.sourceforge.net
xl2tpd L2TPv2 protocol implementation github.com/xelerance/xl2tpd
RP-PPPoE PPPoE implementation www.roaringpenguin.com/products/pppoe We use it for both client and server
Network services
ISC DHCP DHCP and DHCPv6 client and server implementation www.isc.org/downloads/dhcp/ Kea may be considered in the future
PowerDNS recursor Caching DNS server www.powerdns.com Replaced dnsmasq as of 1.2.0
Squid Web proxy squid-cache.net
Management and monitoring
OpenSSH SSH server and client openssh.com
net-snmp SNMP implementation net-snmp.org
LLDPD LLDP (and also CDP, EDP,...) implementation vincentbernat.github.io/lldpd/
High availability
keepalived VRRP implementation keepalived.org
Heartbeat Clustering implementation www.linux-ha.org/wiki/Heartbeat To be replaced with Pacemaker eventually
conntrackd Connection table synchronization conntrack-tools.netfilter.org