- 1 General Questions
- 2 Installation
- 3 Configuration
- 3.1 How do I enter configuration mode?
- 3.2 How do I view the current config?
- 3.3 Once in configure, can I use commands that are normally available outside config mode?
- 3.4 Can I see a history of commands given previously ?
- 3.5 How do I apply my changes?
- 3.6 I am afraid my changes may break connectivity or make system inaccessible in other way. What should I do?
- 3.7 I changed configuration and then changed my mind about commiting them. What can I do?
- 3.8 I added a user with "useradd"/edited a config in /etc and everything is lost after reboot!
- 3.9 Is it possible to show current configuration as set commands for easy copy/paste
- 3.10 Firewall
- 3.10.1 Is any traffic filtering enabled by default?
- 3.10.2 Is there a way to filter traffic originated by router itself?
- 3.10.3 I created a firewall instance, but it does not filter anything.
- 3.10.4 If I have firewall enabled, is traffic described in NAT rules automatically enabled?
- 3.10.5 Can I have a zone based firewall as opposed to interface based?
- 3.11 How can I have system command(s) run on boot?
- 4 Troubleshooting
- 5 Development
- 6 Other questions
What is VyOS?
VyOS is a routing/firewall/VPN platform, forked from Vyatta, based on Debian GNU/Linux that runs on x86 and ARM hardware and many virtual machine hypervisors.
Who is it for?
VyOS focuses on enterprise and service provider routers. It is more like Cisco IOS or Juniper JunOS, rather than SOHO routers like Linksys or D-Link. If you are an experienced network administrator or want to learn about networking, you should try it out.
What functions does VyOS lack?
There are some. For instance it lacks
- PPTP and L2TP clients,
- IPv6 flow accounting.
Most of the currently lacking features are to be implemented in future releases.
Does VyOS support non-x86 hardware platforms (MIPS, ARM...) or will it support them in the future?
Not at this time. We focus on support for widely available hardware.
If ARM or MIPS devices that are widely available, sufficiently powerful, and support a standardized boot process appear on the market, we'll consider supporting them.
What hardware requirements does VyOS have?
Hardware requirements strongly depend on purpose your appliance is used for. For small branch offices Atom/C3 CPU and 256-384M RAM should be enough; for edge routers, large VPN concentrators, and other high load appliances you should consider powerful servers.
How much disk space do I need?
At least 2 GB. More space is recomended to be able to upgrade your installation via image (see questions below).
How do I upgrade my installation?
Preferred way is to use image-based upgrade. Find the latest image and type command "add system image <image URL>". You may download the image to your appliance and specify path to file as the argument, or specify a remote URL.
Do not try to upgrade your installation through APT unless you are intimately familiar with VyOS package base. The outcome is unpredictable and it may result in a ruined installation.
Can I install VyOS on an embedded platform?
Depends on the definition of embedded. If the issue is that you cannot boot it from a CD or access its console, the recommended way is to prepare an image with require config customizations, for example in a virtual machine, then convert the VM image to raw and flash it to the boot medium of the device.
Can I install on CompactFlash or USB flash media?
You can, but you should reduce writing in this case (redirect logs to a remote syslog server etc.). It is better to use enterprise grade SLC cards rather than consumer grade.
Avoid using USB sticks in production, they are not intended for intensive usage and often fail.
What hypervisors can I use?
We officially support KVM, Xen, VMware, Hyper-V, and VirtualBox. Integration levels vary: for KVM and VMware we include guest tools in addition to paravirtual drivers.
Other x86 hypervisors should work, but we haven't tested them ourselves. If you are using them successfully, let us know.
How do I enter configuration mode?
Commands accept abbreviations wherever they are unique, so in this case you can type:
How do I view the current config?
If you want to view only one subtree, you can specify the path:
show interfaces ethernet eth0 show interfaces show firewall
Once in configure, can I use commands that are normally available outside config mode?
add "run" in front of the command, eg: run show interfaces
Can I see a history of commands given previously ?
How do I apply my changes?
I am afraid my changes may break connectivity or make system inaccessible in other way. What should I do?
If everything is ok, issue
If you do not issue "confirm" command in given MINUTES (default is 10), your router will reboot and rollback to previous configuration.
I changed configuration and then changed my mind about commiting them. What can I do?
I added a user with "useradd"/edited a config in /etc and everything is lost after reboot!
Do not do this. System configuration files are created by the VyOS config scripts on config loading or commit. All configuration changes must be done with native CLI ("set" commands).
If you do not have in depth understanding of VyOS code, it is better to forget it has Linux inside.
Is it possible to show current configuration as set commands for easy copy/paste
Yes. To view the complete running configuration as set commands, use operaional command "show configuration commands".
In configuration mode, you can also use "| commands" filter:
vyos@vyos# show system | commands set config-management commit-revisions '100' comment config-management 'foo' set console device ttyS0 speed '9600' set host-name 'vyos' ...
You can also use the "vyos-config-to-commands" utility to convert arbitrary VyOS config file to commands:
vyos@vyos# vyos-config-to-commands /config/someconfig.conf
Is any traffic filtering enabled by default?
Is there a way to filter traffic originated by router itself?
Per-interface firewall for local only control inbound connectivity. If you use zone-policy firewall, you can restrict in or outbound traffic from the router.
I created a firewall instance, but it does not filter anything.
You should apply it to an interface to make it work. There are three directions: "in" (inbound forwarded traffic"), "local" (traffic to the router), and "out" (outbound forwarded traffic).
vyos@vyos# set interfaces ethernet eth0 firewall in name Foo
If I have firewall enabled, is traffic described in NAT rules automatically enabled?
No, it is not. If you have both firewall and NAT, you should have both filtering rule to allow traffic and NAT rule to do translation.
Can I have a zone based firewall as opposed to interface based?
Definitely, the standard firewall rules can be supplemented into this hierarchy shown below.
Remember: each zone that needs to communicate must have a policy allowing it to. ie: if a DMZ zone is needed then the zone would need a firewall name and 'from' PUBLIC and another firewall name and 'from' PRIVATE. firewall names and rules are created as usual, however in more complex topologies zone based firewalls are easier to manage and scale.
set zone-policy zone PUBLIC from PRIVATE firewall name private_to_public set zone-policy zone PUBLIC interfaces eth0 set zone-policy zone PRIVATE from PUBLIC firewall name public_to_private set zone-policy zone PRIVATE interfaces eth1 set zone-policy zone LOCAL from PUBLIC firewall name public_to_local set zone-policy zone LOCAL local-zone
How can I have system command(s) run on boot?
In VyOS 1.2.0 or newer, to run a command on boot after config is loaded, add the command(s) to /config/scripts/vyos-postconfig-bootup.script
In the version 1.1.8, you should use /config/scripts/vyatta-postconfig-bootup.script file instead. The old file name is also supported by 1.2.0+
How do I view logs?
Use operational command "show log" to view all log messages or "show log tail" for the latest. You also may use "monitor log" command to monitor logged messages in real time.
Which branch should I develop on
Development efforts should be directed towards VyOS 1.2.
VyOS 1.2 development and beyond occurs on the current branch and is build using vyos-build as starting point (readme).
I submitted a pull-request on Github
It can happen that we lose track of your pull-request. If that's the case create a task in phabricator to call attention to it. Read more about this in Report a bug.
How do I shot web?
We dunno, lol.