介绍
VyOS是一个基于Linux的企业级路由器操作系统,被许多公司和个人用来驱动物理网络设备,如路由器和防火墙。它有一个统一的命令行界面来管理其所有的网络相关功能(和Juniper Junos操作很像)。VyOS使用Debian GNU/Linux作为其基础,并添加了FRR,一个强大的开源路由套件,以及开源的VPN技术OpenVPN和IPSec在内的多种工具来增强其功能。它非常适合用来虚拟化网络环境,经常被运用在云环境和大型数据中心。与商业产品相比,VyOS的一大优点是它完全免费,开源,并且拥有一个活跃的社区来贡献和维护。
本文介绍了构建Vyos LTS版本的ISO、还有基础安装和使用。
网络系列文章:https://songxwn.com/categories/network/
特性
路由协议
BGP,EVPN-VxLAN, MPLS , L3VPN, RPKI, OSPF (V2 & V3), Babel , RIP,
RIPng, BFD, BFD Monitoring, Policy Based Routing (PBR), Multicast (
MLD, IGMP proxy v2 & v3, PIM-SM), Failover routes.
支持网卡
Up to 100 Gbps interfaces, 802.1q VLAN, 802.1ad QinQ, 802.3ad and
other bonding protocols, Software Bridging, Paravirtualized NICs
(vmxnet3 & virtio), Virtual Ethernet(veth), Wireless (WiFi & Cellular
Networks)
防火墙
Stateful Connection Tracking, Zone Based Firewall, GeoIP matching,
Address/ports/network groups , interfaces / mac-address groups ,
Domains groups, Firewall bridge and Flowtables.
NAT Source and Destination NAT (One to-One, Many to-Many, One to many),
Balancing, Masquerade, Network prefix Translation , NAT66
隧道
Wireguard ,OpenConnect ,OpenVPN(P2P, Client & Server), OpenVPN
DCO, GRE, IPIP, SIT, IP6IP6, L2TPv3, VXLAN, SSTP (Client &
Server),GENEVE, PPPoE (Client &
Server), IPoE Server.
应用服务
DNS Forwarding, Dynamic DNS, mDNS Repeater, DHCP Server and
Relay, IPv6 Router Advertisements, NTP (Client & Server), LLDP (Client
& Server), TFTP Server, Web Proxy Server) , Event Handler, LLDP,
Integration IDS/IPS (Suricata), Reverse-proxy and load-balancer .
QoS
Traffic Shaping and Matching, Rate Limiting, Rate Control (TBF), Traffic
Queues (Drop-Tail FIFO, Fair Queue (SFQ), FQ CoDel, Round Robin
(DRR), Random Early Detection (RED/WRED))
Management &
监控管理
SSH, HTTP API, SNMP (V2 & V3), NetFlow, sFlow, Telegraf,
Prometheus-client, Zabbix-agent, Syslog
High Availability VRRP, WAN Load Balancing, Connection State Synchronization,
Conntrack Synchronization, Virtual-server load-balancing
Supported Automation
工具
Ansible, SaltStack, Cloud init, Terraform
Additional Features Intel QuickAssist Cryptographic Hardware Acceleration (QAT),
TACACS+, RADIUS, DDoS Protection Integration with FastNetMon
介绍PDF:https://vyos.io/files/vyos-datasheet-v3.pdf
构建1.4稳定版ISO
官方为了盈利需求,是不提供稳定版的ISO和OVA的。
使用Debian 12 并安装Docker 搭建构建环境。
text
apt install docker.io git -y
sudo apt-get install ca-certificates curl gnupg
# 安装环境所需包
docker pull vyos/vyos-build:sagitta
# 下载构建相关的1.4.x版本的容器镜像。
git clone -b sagitta --single-branch https://github.com/vyos/vyos-build
# 下载最新的源码
cd vyos-build
# 进入构建目录
docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:sagitta bash
# 运行并进入构建容器。
root@70cec64467db:/vyos# VYOS_VERSION="1.4.0-epa2"
# 配置构建的指定版本,此为最新的LTS版本
root@70cec64467db:/vyos# ./build-vyos-image iso --architecture amd64 --build-type release --version $VYOS_VERSION
# 开始构建ISO
root@70cec64467db:/vyos# exit
# 退出容器
# find . -name *.iso
# 查找ISO路径
1.4.0-epa2 是一个1.4 LTS的版本号,这种版本号可以去官方博客查找。
生成好的ISO下载
https://github.com/Songxwn/build-vyos-lts/releases (分支于https://github.com/zengkid/build-vyos-lts)
也可以自己用GitHub Actions 构建ISO。
将项目分支后,选择Actions > Workflows > Build Release > Run workflow
在The tag version you want to build 下添加指定版本的标签,如1.4.0-epa2。
然后执行Run workflow,等待半小时后,可以在你的分支项目的Releases 下载。
ISO安装指南
基础镜像为Debian 12,所以虚拟机兼容性也选择Debian 12。
物理机安装,推荐使用Rufus写入U盘。
启动ISO后登录安装账号,账号vyos,密码vyos。
然后输入install image ,一路选择 Y即可。
-
输入install image
-
询问是否继续安装到你的硬盘,输入 Y继续
-
询问是否是此版本,回车继续。
-
询问是否修改vyos账号密码,回车继续
-
询问console控制台显示方法,回车继续。(可选择COM输出)
-
询问选择的安装硬盘,确认后回车继续。
-
询问是否清理所选硬盘的所有数据,输入 Y继续。
-
询问是否安装系统到硬盘,输入Y继续。
-
询问是否使用硬盘全部空间,输入Y继续。
-
安装完成之后,输入reboot重启即可。
基础操作
登录并进入配置模式
进入系统后,输入默认账号vyos,默认密码vyos进行登录。然后就进入Linux 的 shell界面(操作模式)。
vyos的命令模式和Juniper很像。
文档:https://docs.vyos.io/en/sagitta/
基础操作
text
configure
# 操作切换到配置模式
set service ssh port 22
# 增加配置,开启ssh服务并指定监听端口。
delete service ssh port 22
# 删除配置
compare
# 查看未提交的配置更改。
commit-confirm 10
# 提交并配置自动回退,提交当前配置,但若10分钟内不执行confirm
commit
# 提交配置,vyos的配置并不是实时生效的,需要提交才能生效。
save
# 提交完成之后可以保存配置到硬盘。这点和juniper不一样。
rollback 1
# 回退到指定提交点的配置,但会重启系统。
查看配置和接口
text
show configuration
# 在操作模式
show configuration commands
# 在
show | commands
# 在配置模式下查看所有配置,指定以命令显示。
show interfaces | commands
# 在配置模式下查看接口,指定以命令显示。
show interface
# 在操作模式查看所有接口,也可以确认以太网接口名称。
run show interfaces
# 在配置模式执行操作模式命令
基础配置
text
set system host-name vy01
# 配置主机名
set system login user vyos authentication plaintext-password ABC@123123
# 配置vyos用户密码。
set service ssh port 22
# 增加配置,开启ssh服务并指定监听端口。
set interfaces ethernet eth0 address 1.1.1.1/24
# 为接口配置IP
set protocols static route 0.0.0.0/0 next-hop 1.1.1.2
# 配置静态路由
show ip route
# 查看当前路由表
OSPFv2配置
text
set interfaces ethernet eth0 address '10.0.0.1/24'
set interfaces ethernet eth1 ip ospf network point-to-point
# 配置接口地址、OSPF网络模式
set interfaces loopback lo address '192.168.0.1/32'
# 配置lookback0
set protocols ospf area 0.0.0.0 network '192.168.0.1/32'
set protocols ospf area 0.0.0.0 network '10.0.0.0/24'
# 宣告接口
set protocols ospf parameters router-id '192.168.0.1'
# 配置ospf的路由ID
set protocols ospf redistribute connected
# 重分布直连路由到OSPF
参考文档:
https://docs.vyos.io/en/latest/contributing/build-vyos.html (构建)