Hướng dẫn VyOS CLI: Xây dựng Router ảo chuyên nghiệp từ con số 0

Networking tutorial - IT technology blog
Networking tutorial - IT technology blog

Ảo hóa lõi mạng với VyOS

Xây dựng một hệ thống mạng thường đẩy bạn vào thế khó. Bạn hoặc phải chi hàng ngàn đô cho phần cứng độc quyền từ các hãng như Cisco, hoặc dành cả cuối tuần vật lộn với các script Linux rời rạc và iptables. Dù một server Linux tiêu chuẩn có thể định tuyến gói tin, việc quản lý ở quy mô lớn sẽ trở thành một cơn ác mộng bảo trì. Bạn thiếu một cách thống nhất để xem cấu hình, và một sai sót nhỏ trong câu lệnh thủ công có thể làm mất kết nối hoàn toàn.

VyOS chính là giải pháp cân bằng hoàn hảo. Đây là một Hệ điều hành mạng (NOS) mã nguồn mở cung cấp giao diện dòng lệnh (CLI) thống nhất—lấy cảm hứng mạnh mẽ từ Junos của Juniper—trên nền tảng Debian cực kỳ ổn định. Bạn có thể biến một máy ảo nhẹ hoặc một server vật lý cũ kỹ thành một router hiệu năng cao. Trong môi trường thực tế, tôi đã thấy VyOS xử lý thông lượng 10Gbps trên phần cứng khiêm tốn, biến nó thành lựa chọn hàng đầu cho các kiến trúc sư đám mây muốn tránh bị phụ thuộc vào nhà cung cấp (vendor lock-in).

Bắt đầu nhanh (5 phút): Cấu hình ban đầu

Sau khi khởi động ISO VyOS trên VMware, Proxmox hoặc KVM, bạn cần cài đặt nó vào ổ đĩa cục bộ. VyOS sử dụng CLI chế độ kép. Bạn bắt đầu ở Operational Mode (kí hiệu bởi $) để giám sát, sau đó chuyển sang Configuration Mode (kí hiệu bởi #) để thay đổi cài đặt.

# Cài đặt OS vào ổ đĩa ảo
install image

# Vào chế độ cấu hình
configure

# Thiết lập các thông số cơ bản
set system host-name 'Core-Router-01'
set system domain-name 'itfromzero.local'
set system login user vyos authentication plaintext-password 'YourSecurePassword'

# Bật SSH để truy cập từ xa
set service ssh port '22'

# Áp dụng và lưu thay đổi vĩnh viễn
commit
save

Khác với Linux thông thường nơi các thay đổi có hiệu lực ngay khi bạn nhấn Enter, VyOS yêu cầu lệnh commit. Đây là một tính năng “cứu cánh”. Nó cho phép bạn xây dựng một tập hợp các thay đổi phức tạp và áp dụng chúng cùng một lúc. Nếu bạn không chạy save, các thay đổi sẽ mất sau khi khởi động lại, đóng vai trò như một lưới an toàn tích hợp khi thử nghiệm.

Tìm hiểu sâu: Quản lý Routing và Interface

Công việc chính của router là chuyển dữ liệu giữa các phân đoạn mạng. Trong hầu hết các thiết lập, bạn sẽ quản lý ít nhất hai interface: WAN (Internet) và LAN (Nội bộ).

Cấu hình Interface

Hãy gán địa chỉ IP cho các card mạng ảo. Chúng ta giả định eth0 là cổng WAN hướng ra internet và eth1 là cổng LAN nội bộ.

set interfaces ethernet eth0 address '203.0.113.10/24'
set interfaces ethernet eth0 description 'WAN-Link'

set interfaces ethernet eth1 address '192.168.10.1/24'
set interfaces ethernet eth1 description 'Internal-LAN'

Thiết lập Default Gateway

Router của bạn cần biết nơi gửi lưu lượng truy cập không thuộc mạng cục bộ. Đây chính là default route của bạn.

set protocols static route 0.0.0.0/0 next-hop 203.0.113.1

Lệnh này chỉ dẫn VyOS chuyển tất cả lưu lượng không xác định đến gateway của ISP tại địa chỉ 203.0.113.1. Nếu bạn sử dụng kết nối IP động, chỉ cần dùng lệnh set interfaces ethernet eth0 address dhcp và hệ điều hành sẽ tự động xử lý bảng định tuyến cho bạn.

DHCP Server cho các máy khách trong LAN

Đừng lãng phí thời gian cấu hình thủ công cho từng laptop trong mạng. Hãy sử dụng một DHCP pool để tự động hóa quy trình này.

set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 default-router '192.168.10.1'
set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 dns-server '8.8.8.8'
set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 range 0 start '192.168.10.100'
set service dhcp-server shared-network-name LAN_POOL subnet 192.168.10.0/24 range 0 stop '192.168.10.200'

Sử dụng nâng cao: NAT và Stateful Firewall

Bảo mật không phải là tùy chọn khi router của bạn tiếp xúc với internet công cộng. Chúng ta sử dụng Source NAT để cho phép các thiết bị LAN lướt web và các quy tắc firewall để chặn kẻ xấu.

Source NAT (Masquerade)

Các IP riêng (192.168.x.x) không thể truyền đi trên internet công cộng. Router phải thay thế IP nguồn nội bộ bằng IP công cộng của chính nó.

set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '192.168.10.0/24'
set nat source rule 100 translation address 'masquerade'

Xây dựng Stateful Firewall

Một stateful firewall rất thông minh. Nó ghi nhớ rằng máy tính nội bộ của bạn đã yêu cầu một trang web, từ đó cho phép phản hồi của trang web đó đi qua trong khi chặn các yêu cầu thăm dò ngẫu nhiên từ bên ngoài.

# Mặc định loại bỏ mọi thứ trên cổng WAN
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# Bảo vệ chính router
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL protocol 'icmp'

# Gắn các quy tắc vào cổng WAN
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

Hướng local áp dụng cho lưu lượng truy cập trực tiếp vào IP của router (như quản trị qua SSH), trong khi in áp dụng cho lưu lượng đi xuyên qua router để đến các server của bạn.

Mẹo chuyên nghiệp để ổn định hệ thống thực tế

Vận hành một router trong môi trường thực tế đòi hỏi một tư duy khác biệt. Hãy sử dụng các chiến lược sau để tránh tình trạng ngừng hoạt động do lỗi tự gây ra:

  • Nút bấm khẩn cấp: Khi cấu hình router từ xa, hãy sử dụng commit-confirm 5. Lệnh này sẽ áp dụng thay đổi nhưng đợi 5 phút để bạn xác nhận. Nếu bạn vô tình bị khóa quyền truy cập, router sẽ tự động khởi động lại và quay về cấu hình cũ.
  • Kiểm soát phiên bản: VyOS lưu trữ toàn bộ lịch sử. Sử dụng show system commit để xem ai đã thay đổi gì và khi nào. Nếu một thay đổi làm hỏng mạng, rollback 1 sẽ ngay lập tức đưa hệ thống về trạng thái trước đó.
  • Lựa chọn phần cứng: Đối với nhu cầu gia đình hoặc văn phòng nhỏ, 512MB RAM là đủ. Với đường truyền 1Gbps sử dụng NAT nặng và hơn 50 người dùng, 2GB RAM và 2 vCPU là lựa chọn tối ưu. Nên ưu tiên tốc độ xung nhịp CPU để xử lý gói tin tốt hơn.
  • VLAN Trunking: Đừng thêm hàng tá card mạng ảo vào máy ảo của bạn. Hãy sử dụng 802.1Q tagging để chạy nhiều mạng trên một đường dây duy nhất:
    set interfaces ethernet eth1 vif 10 address '10.0.10.1/24'
    set interfaces ethernet eth1 vif 20 address '10.0.20.1/24'

VyOS mang đến sức mạnh của một thiết bị phần cứng trị giá 5.000 USD với sự linh hoạt của một gói phần mềm. Khi đã làm chủ được CLI, bạn có thể triển khai các kiến trúc mạng giống hệt nhau trên AWS, Azure hoặc trung tâm dữ liệu cục bộ mà không cần phải học lại cú pháp của các nhà cung cấp khác nhau mỗi lần.

Share: