Router - VyOS: Difference between revisions

From AAISP Support Site
(Created start of a VyOS page)
 
(Added hardware section)
Line 1: Line 1:
VyOS is an Open Source router operating system built on top of Debian Linux.
[https://www.vyos.net/ VyOS] is an Open Source router operating system built on top of Debian Linux.
Rather than having to configure lots of different software packages, everything is control through a single configuration file and it uses a command-line based configuration interface, similar to Juniper's JunOS. It is based on Vyatta (as is Ubiquiti's EdgeOS).
Rather than having to configure lots of different software packages, everything is control through a single configuration file and it uses a command-line based configuration interface, similar to Juniper's JunOS. It is based on Vyatta (as is Ubiquiti's EdgeOS).

Documentation for VyOS is available here: https://vyos.readthedocs.io/en/latest/


== Hardware ==
== Hardware ==


VyOS runs on standard x86 PC hardware (note that version 1.2+ requires 64-bit hardware).
TBC

* [https://www.pcengines.ch/apu2.htm PC Engines APU2] is x86 hardware with 2-4 network interfaces, with rack-mount enclosures available
* Old [https://www.parkytowers.me.uk/thin/ Thin Clients] on eBay can make cheap routers, as most are fan-less and come with flash storage
* More in the [https://vyos.readthedocs.io/en/latest/appendix/vyos-on-baremetal.html VyOS 'bare metal' documentation]


== Configuring network Interfaces ==
== Configuring network Interfaces ==

Revision as of 16:23, 7 Ocak 2020

VyOS is an Open Source router operating system built on top of Debian Linux. Rather than having to configure lots of different software packages, everything is control through a single configuration file and it uses a command-line based configuration interface, similar to Juniper's JunOS. It is based on Vyatta (as is Ubiquiti's EdgeOS).

Documentation for VyOS is available here: https://vyos.readthedocs.io/en/latest/

Hardware

VyOS runs on standard x86 PC hardware (note that version 1.2+ requires 64-bit hardware).

Configuring network Interfaces

TBC

Configuring PPPoE

TBC

Example Configuration

interfaces {
    ethernet eth0 {
        description LAN
        address 192.168.1.1/24
        address 2001:8b0:xxxx::1/64
        ipv6 {
            router-advert {
                send-advert true
                prefix 2001:8b0:xxxx::/64 {
                }
            }
        }
    }
    ethernet eth1 {
        description WAN
        duplex auto
        speed auto
        pppoe 0 {
            default-route auto
            enable-ipv6
            ipv6 {
                address {
                    autoconf
                }
            }
            mtu 1492
            name-server auto
            user-id mxxx@a.1
            password ****************
        }
    }
    loopback lo {
    }
}
nat {
    source {
        rule 100 {
            description "NAT for IPv4 on LAN"
            outbound-interface pppoe0
            source {
                address 192.168.1.0/24
            }
            translation {
                address masquerade
            }
        }
    }
}
protocols {
    static {
        interface-route6 ::/0 {
            next-hop-interface pppoe0 {
            }
        }
    }
}
service {
    dhcp-server {
        shared-network-name LAN {
            authoritative
            subnet 192.168.1.0/24 {
                default-router 192.168.1.1
                dns-server 217.169.20.20
                dns-server 217.169.20.21
                domain-name example.com
                lease 86400
                range 0 {
                    start 192.168.1.100
                    stop 192.168.1.200
                }
            }
        }
    }
    ssh {
        port 22
    }
}
system {
    config-management {
        commit-revisions 100
    }
    console {
        device ttyS0 {
            speed 115200
        }
    }
    host-name vyos
    login {
        user vyos {
            authentication {
                encrypted-password ****************
                plaintext-password ****************
            }
            level admin
        }
    }
    ntp {
        server time.aa.net.uk {
        }
        server 0.uk.pool.ntp.org {
        }
        server 1.uk.pool.ntp.org {
        }
    }
    syslog {
        global {
            facility all {
                level info
            }
            facility protocols {
                level debug
            }
        }
    }
}