Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

CentOS 打造 Linux 路由器實戰:靜態路由、IP 轉發與 Quagga 動態路由協議部署

編輯:Linux 教學

前言:為什麼選擇 Linux 做路由器?

Linux 核心內建完整的網路協定堆疊,支援 IPv4/IPv6 轉發、防火牆 (iptables/nftables)、QoS (tc)、VPN (IPsec/OpenVPN/WireGuard) 等企業級功能。以 CentOS 為例,僅需標準 x86 機器即可替代專用硬體路由器,成本極低且彈性極高。

核心功能啟用:IP 轉發

臨時生效 (重啟失效)

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 指令 (現代標準)

# 新增靜態路由
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 指令 (相容性)


route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.0.0.2 dev eth1

動態路由:部署 Quagga (RIP/OSPF/BGP)

安裝與基礎配置


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

RIPv2 快速啟用


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

管理介面:VTY (telnet localhost 2601/2602)


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

進階:OSPF 區域設計與 BGP 對等


# /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

防火牆與 NAT 整合


# 開啟轉發流量
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 ospfd
  • 備份配置:tar -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)。

Copyright © Windows教程網 All Rights Reserved