Chuyển đến nội dung chính

第1課:VyOS 簡介與安裝

了解 VyOS 是什麼、從 Vyatta 發展的歷史、與 pfSense/OPNsense/MikroTik 的比較、系統架構,以及在 KVM、VirtualBox、Proxmox 和裸機上的安裝指南。

Giới thiệu VyOS và Cài đặt

什麼是 VyOS?

VyOS là một hệ điều hành mạng mã nguồn mở (network operating system) dựa trên nền tảng Debian Linux. VyOS cung cấp đầy đủ tính năng routing, firewall, VPN và các dịch vụ mạng enterprise — tất cả được quản lý qua một CLI thống nhất tương tự như Juniper JunOS hoặc Cisco IOS.

Điểm đặc biệt của VyOS: bạn có thể triển khai nó như một software router trên máy ảo, cloud instance, container hoặc phần cứng vật lý — hoàn toàn miễn phí với bản rolling release.

發展歷史: Từ Vyatta đến VyOS

Để hiểu VyOS, cần biết về Vyatta — dự án tiền thân:

  • 2005: Vyatta Inc. ra mắt Vyatta Core — hệ điều hành router mã nguồn mở đầu tiên
  • 2012: Brocade Communications mua lại Vyatta, dần đóng mã nguồn
  • 2013: Cộng đồng fork Vyatta Core thành VyOS, tiếp tục phát triển mã nguồn mở
  • 2020+: VyOS chuyển sang mô hình rolling release (miễn phí) + LTS release (thương mại)
  • 2024–2025: VyOS 1.4 Sagitta (LTS), 1.5 Circinus (rolling) với nftables backend mới

So sánh VyOS với các giải pháp khác

VyOS vs pfSense / OPNsense

pfSense và OPNsense là các firewall/router dựa trên FreeBSD với giao diện web. VyOS khác biệt ở chỗ:

  • CLI-first: VyOS được thiết kế cho quản trị qua dòng lệnh, hỗ trợ automation tốt hơn
  • Routing nâng cao: VyOS tích hợp FRRouting — hỗ trợ BGP, OSPF, IS-IS, MPLS đầy đủ
  • Linux-based: Dễ tích hợp với hệ sinh thái DevOps (Ansible, Terraform, containers)
  • Scalability: Phù hợp cho cả homelab lẫn datacenter với hàng nghìn routes

VyOS vs MikroTik RouterOS

  • MikroTik: phần cứng chuyên dụng + phần mềm đóng, giá rẻ nhưng closed-source
  • VyOS: chạy trên bất kỳ phần cứng/cloud nào, mã nguồn mở, cộng đồng lớn
  • VyOS: CLI gần với Juniper JunOS — dễ chuyển đổi cho network engineers

Kiến trúc VyOS

VyOS được xây dựng từ nhiều thành phần mã nguồn mở:

+--------------------------------------------------+
|                   VyOS CLI                       |
|          (configd / configuration tree)           |
+--------------------------------------------------+
|   FRRouting     |   nftables    |   StrongSwan   |
|  (BGP, OSPF,   |  (firewall,   |   (IPsec VPN)  |
|   IS-IS, RIP)  |   NAT, QoS)   |                |
+--------------------------------------------------+
|              Debian Linux Kernel                  |
|           (custom build, hardened)                |
+--------------------------------------------------+
|         Hardware / VM / Cloud Instance            |
+--------------------------------------------------+

Các thành phần chính:

  • Debian Linux: Nền tảng OS ổn định, bảo mật
  • FRRouting (FRR): Bộ routing protocols đầy đủ nhất trên Linux
  • nftables: Thay thế iptables, xử lý firewall và NAT hiệu suất cao
  • StrongSwan / WireGuard: IPsec và modern VPN
  • configd: Configuration daemon — quản lý cây cấu hình (configuration tree)

Install Image vs Live Boot

VyOS có hai chế độ hoạt động:

  • Live boot: Boot trực tiếp từ ISO, cấu hình chỉ tồn tại trong RAM. Mất khi reboot.
  • Install image: Cài đặt lên disk, cấu hình được lưu vĩnh viễn. Đây là chế độ production.

Lưu ý: Luôn dùng install image cho môi trường production. Live boot chỉ phù hợp để test nhanh.

安裝 VyOS

Tải VyOS ISO

VyOS rolling release (miễn phí) có thể tải từ: https://vyos.net/get/. Hoặc bạn có thể tự build ISO từ source code.

Cài đặt trên KVM/libvirt

# Tạo VM với virt-install
virt-install \
  --name vyos-router \
  --ram 1024 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/vyos.qcow2,size=8 \
  --cdrom /path/to/vyos-rolling-latest.iso \
  --network bridge=br0 \
  --network bridge=br1 \
  --os-variant debian11 \
  --graphics vnc

Cài đặt trên VirtualBox

Các bước cơ bản cho VirtualBox:

  • Tạo VM loại Linux / Debian 64-bit, RAM 1GB, disk 8GB
  • Thêm 2 network adapters: Adapter 1 = NAT hoặc Bridged (WAN), Adapter 2 = Internal Network (LAN)
  • Mount ISO và boot

Cài đặt trên Proxmox

# Upload ISO lên Proxmox storage
# Tạo VM:
# - OS Type: Linux, Version: 6.x - 2.6 Kernel
# - CPU: 2 cores, RAM: 1024MB
# - Disk: 8GB (VirtIO)
# - Network: 2x VirtIO NICs (vmbr0 cho WAN, vmbr1 cho LAN)
# Boot từ ISO

Cài đặt trên bare-metal

VyOS hỗ trợ hầu hết phần cứng x86_64 với NIC Intel/Broadcom. Burn ISO ra USB bằng dd hoặc Balena Etcher, boot và cài đặt bình thường.

Quá trình Install Image

Sau khi boot từ ISO, login với user vyos / password vyos, rồi chạy:

vyos@vyos:~$ install image
Welcome to VyOS installation!
# Chọn disk để cài đặt
Would you like to continue? (y/N): y
Partition (Auto/Parted/Skip) [Auto]: Auto
Install the image on? [sda]: sda
How big of a root partition should I create? (GB) [8]: 8
What would you like to name this image? [1.5-rolling-...]: Enter
Which one should I copy to sda? [/config/config.boot]: Enter
Enter password for user 'vyos': ********
# Đợi cài đặt hoàn tất
reboot

CLI cơ bản của VyOS

VyOS có hai chế độ CLI:

  • Operational mode: Xem trạng thái, chạy lệnh show, ping, traceroute (prompt: $)
  • Configuration mode: Thay đổi cấu hình (prompt: #)

Các lệnh quan trọng nhất

# Vào configuration mode
vyos@vyos:~$ configure

# Xem cấu hình hiện tại
vyos@vyos# show

# Thêm cấu hình
vyos@vyos# set interfaces ethernet eth0 address 192.168.1.1/24

# So sánh thay đổi chưa commit
vyos@vyos# compare

# Áp dụng cấu hình (chưa lưu vĩnh viễn)
vyos@vyos# commit

# Lưu cấu hình vĩnh viễn (survive reboot)
vyos@vyos# save

# Hủy thay đổi chưa commit
vyos@vyos# discard

# Xóa một cấu hình
vyos@vyos# delete interfaces ethernet eth0 address 192.168.1.1/24

# Thoát configuration mode
vyos@vyos# exit

Configuration Tree

Toàn bộ cấu hình VyOS được tổ chức dạng cây phân cấp (hierarchical tree). Mỗi node trong cây đại diện cho một tính năng:

vyos@vyos# show
interfaces {
    ethernet eth0 {
        address 192.168.1.1/24
        description "LAN"
    }
    ethernet eth1 {
        address dhcp
        description "WAN"
    }
}
system {
    host-name vyos-router
    login {
        user vyos {
            authentication {
                encrypted-password "..."
            }
        }
    }
}
service {
    ssh {
        port 22
    }
}

Bạn có thể navigate vào từng nhánh để xem chi tiết:

# Xem chỉ phần interfaces
vyos@vyos# show interfaces

# Xem chỉ interface eth0
vyos@vyos# show interfaces ethernet eth0

Tab Completion và Help

CLI của VyOS hỗ trợ tab completion cực kỳ mạnh — giúp bạn không cần nhớ hết tất cả commands:

# Nhấn Tab để xem các tùy chọn
vyos@vyos# set interfaces [Tab]
Possible completions:
  bonding       Bonding interface
  bridge        Bridge interface
  dummy         Dummy interface
  ethernet      Ethernet interface
  loopback      Loopback interface
  openvpn       OpenVPN interface
  tunnel        Tunnel interface
  vxlan         VXLAN interface
  wireguard     WireGuard interface
  wireless      Wireless interface

# Dùng ? để xem help
vyos@vyos# set interfaces ethernet eth0 ?

實作練習: 安裝 VyOS trên VirtualBox

Thực hiện các bước sau để có một VyOS router hoạt động:

Bước 1: Tạo VM

  • Mở VirtualBox, tạo VM mới: Name = vyos-lab, Type = Linux, Version = Debian 64-bit
  • RAM: 1024 MB, Disk: 8 GB (VDI, dynamically allocated)
  • Adapter 1: NAT (sẽ là WAN), Adapter 2: Internal Network tên lab-lan

Bước 2: Boot và Install

# Boot từ ISO, login: vyos / vyos
vyos@vyos:~$ install image
# Chọn tất cả mặc định, đặt password mới
# Sau khi xong: reboot
# Tháo ISO khỏi VM

Bước 3: Cấu hình cơ bản

# Login lại sau reboot
vyos@vyos:~$ configure

Đặt hostname

set system host-name vyos-lab

Cấu hình WAN (DHCP từ NAT)

set interfaces ethernet eth0 description 'WAN' set interfaces ethernet eth0 address dhcp

Cấu hình LAN

set interfaces ethernet eth1 description 'LAN' set interfaces ethernet eth1 address 192.168.100.1/24

Bật SSH

set service ssh port 22

Commit và save

commit save

Bước 4: Kiểm tra

# Thoát configure mode
exit

Kiểm tra interfaces

show interfaces

Kiểm tra kết nối WAN

ping 8.8.8.8

Xem routing table

show ip route

總結

Trong bài học này, bạn đã nắm được:

  • VyOS là hệ điều hành mạng mã nguồn mở, phát triển từ Vyatta, chạy trên Debian Linux
  • Kiến trúc VyOS gồm FRRouting (routing), nftables (firewall/NAT), StrongSwan (VPN)
  • Sự khác biệt giữa VyOS với pfSense, OPNsense và MikroTik
  • Cách cài đặt VyOS trên các nền tảng ảo hóa (KVM, VirtualBox, Proxmox) và bare-metal
  • CLI cơ bản: configure, set, commit, save, compare, show
  • Khái niệm configuration tree — nền tảng để hiểu toàn bộ hệ thống VyOS

Bài tiếp theo sẽ đi sâu vào cấu hình interfaces, IP addressing và các thiết lập hệ thống cơ bản.