- 1 General Questions
- 2 Installation
- 3 Usage
- 4 Configuration
- 4.1 How do I enter configuration mode?
- 4.2 How do list the current config?
- 4.3 Once in configure, can I use commands that are normally available outside config mode ?
- 4.4 Can I see a history of commands given previously ?
- 4.5 How do I apply my changes?
- 4.6 I am afraid my changes may break connectivity or make system inaccessible in other way. What should I do?
- 4.7 I changed configuration and then changed my mind about commiting them. What can I do?
- 4.8 I added a user with "useradd"/edited a config in /etc and everything is lost after reboot!
- 4.9 Is it possible to make vyatta show all the settings, line by line? So it is easy to use copy and paste ?
- 4.10 How do I enable web GUI?
- 4.11 Firewall
- 4.11.1 Is any traffic filtering enabled by default?
- 4.11.2 Is there a way to filter traffic originated by router itself?
- 4.11.3 I created a firewall instance, but it does not filter anything.
- 4.11.4 If I have firewall enabled, is traffic described in NAT rules automatically enabled?
- 4.11.5 Can I have a zone based firewall as opposed to interface based?
- 4.12 How can I have system command(s) run on boot?
- 5 Troubleshooting
- 6 Development
- 7 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.
Should I try it?
It depends. If you are a network engineer/administrator or want to become one, you should. VyOS is more like IOS, JunOS and other enterprise platforms, not like SOHO appliances (D-Link, Linksys etc.). You need to understand what you are doing to configure it.
What version should I install?
The latest one. Newer versions are always better than older.
How often are new versions released?
The first official version was released on December 22nd 2013. We ask your involvement by testing our nightly builds and report any problems you experience.
What functions does VyOS lack?
There are some. For instance it lacks
- PBR (can be done with a trick),
- PPTP and L2TP clients,
- IPv6 flow accounting.
Most of the currently lacking features are to be implemented in future releases.
Does VyOS support other hardware platforms (MIPS) or will it support them in the future?
It does not. One of project goals is to make it work on widely used hardware.
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 loaded 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 use 'full-upgrade -k', it may ruin your setup irrecoverable.
Can I install VyOS on an embedded platform?
Basically yes. try it!
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?
VMWare and XenServer are officially supported and appliance templates are provided for them. If you want to install on a Xen VM, use livecd-virt, it had Xen-aware kernel.
KVM and VirtualBox are known to work without troubles.
There are no reports about other hypervisors, but in theory they also should work.
How do I install Debian packages?
First configure repositories. The Hydrogen and Helium releases are based on Debian Squeeze (which is EOL at the moment so we use the Debian archive):
set system package repository squeeze components 'main contrib non-free' set system package repository squeeze distribution 'squeeze' set system package repository squeeze url 'http://archive.debian.org/debian'
Squeeze is no longer supported, however Hydrogen and Helium have some packages from Squeeze Long Term Support so:
set system package repository squeeze-lts components 'main contrib non-free' set system package repository squeeze-lts distribution 'squeeze-lts' set system package repository squeeze-lts url 'http://archive.debian.org/debian'
commit && save;exit
because repository is expiried you should update it with validation-ignoring option:
sudo apt-get -o Acquire::Check-Valid-Until=false update
and you can install packages with "sudo apt-get install xxxxxxx" as usual.
For 1.2.x onwards
VyOS's 1.2.x release is expected to be based off Debian's Jessie release.
set system package repository jessie components 'main contrib non-free' set system package repository jessie distribution 'jessie' set system package repository jessie url 'http://httpredir.debian.org/debian'
set system package repository jessie components 'main contrib non-free' set system package repository jessie distribution 'jessie-backports' set system package repository jessie url 'http://httpredir.debian.org/debian'
How do I enter configuration mode?
Commands accept abbreviations wherever they are unique, so in this case you can type:
How do list the current config?
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. Backend configuration files are created by vyatta code at 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 make vyatta show all the settings, line by line? So it is easy to use copy and paste ?
run the command "show configuration commands"
or to save the settings in a text file:
How do I enable web GUI?
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.
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?
To run a command on boot, add the command(s) to /config/scripts/vyatta-postconfig-bootup.script
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.1.6 is developed on the lithium branch in the Github. Use the build-iso package to start building (Howto build an ISO image, extensive readme). 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.