Linux 核心內建完整的網路協定堆疊,支援 IPv4/IPv6 轉發、防火牆 (iptables/nftables)、QoS (tc)、VPN (IPsec/OpenVPN/WireGuard) 等企業級功能。以 CentOS 為例,僅需標準 x86 機器即可替代專用硬體路由器,成本極低且彈性極高。
echo 1 > /proc/sys/net/ipv4/ip_forward
# IPv6
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
# 方式 1:sysctl.conf (推薦)
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
sysctl -p
# 方式 2:rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
# 新增靜態路由
ip route add 192.168.10.0/24 via 10.0.0.2 dev eth1
# 設定預設閘道
ip route add default via 10.0.0.1 dev eth0
# 永久化:建立 /etc/sysconfig/network-scripts/route-eth1
# 內容:
192.168.10.0/24 via 10.0.0.2 dev eth1
default via 10.0.0.1 dev eth0
route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.0.0.2 dev eth1
yum install quagga -y
systemctl enable zebra
systemctl start zebra
# 設定 zebra 密碼 (必須,否則 telnet 登入失敗)
cat > /etc/quagga/zebra.conf <<'EOF'
hostname Router1
password zebra123
enable password zebra123
log file /var/log/quagga/zebra.log
EOF
cat > /etc/quagga/ripd.conf <<'EOF'
hostname Router1
password rip123
router rip
version 2
network 10.0.0.0/8
network 192.168.0.0/16
redistribute connected
log file /var/log/quagga/ripd.log
EOF
systemctl enable ripd
systemctl start ripd
telnet localhost 2601 # zebra
Router1> enable
Router1# show ip route
Router1# configure terminal
Router1(config)# interface eth1
Router1(config-if)# ip address 10.0.0.2/24
# /etc/quagga/ospfd.conf 範例
router ospf
ospf router-id 1.1.1.1
network 10.0.0.0/8 area 0.0.0.0
network 192.168.1.0/24 area 0.0.0.1
passive-interface eth0
# 開啟轉發流量
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# SNAT (內網上網)
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
# DNAT (公開服務)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.10:80
watch -n 1 'ip route show' 即時觀察路由表變化tcpdump -ni eth1 -vv 抓封包分析路由協定交換/var/log/quagga/、journalctl -u zebra -u ripd -u ospfdtar -czf quagga-backup-$(date +%F).tar.gz /etc/quagga/CentOS + Quagga 提供完整的軟體路由器解決方案,涵蓋靜態/動態路由 (RIP/OSPF/BGP)、策略路由、VRRP 高可用、防火牆 NAT。相比專用硬體,優勢在於:標準化硬體、完整 Linux 工具鏈、腳本自動化、容器化部署 (FRRouting 為 Quagga 分支,支援 Docker/K8s)。建議生產環境採用 FRRouting 替代已停止維護的 Quagga,並配合 Ansible 實現基礎設施即代碼 (IaC)。