如何使用 VTY Shell 配置路由器
最近,我寫了一篇文章,解釋了如何使用 Quagga 路由套件實現 開放式最短路徑優先 (OSPF)。可以使用多個軟體套件代替 Quagga 來實現不同的路由協議。其中一種是 FRR(free range routing)。
FRR
FRR 是一個路由軟體套件,它衍生自 Quagga,並在 GNU GPL2 許可下分發。與 Quagga 一樣,它為類 Unix 平台提供了所有主要路由協議的實現,例如 OSPF、 路由信息協議 (RIP)、 邊界網關協議 (BGP) 和 中間系統到中間系統 (IS-IS)。
開發了 Quagga 的一些公司,例如 Big Switch Networks、Cumulus、Open Source Routing 和 6wind,創建了 FRR 以在 Quagga 的良好基礎上進行改善。
體系結構
FRR 是一組守護進程,它們可以共同構建路由表。每個主協議都在其自己的守護進程中實現,並且這些守護進程與獨立於協議的核心守護進程 Zebra 通信,後者提供內核路由表更新、介面查找以及不同路由協議之間路由的重新分配。每個特定協議的守護進程負責運行相關協議並根據交換的信息構建路由表。
![FRR architecture](/data/attachment/album/202005/31/122431zzgjfaulaggspiej.png "FRR architecture")
VTY shell
VTYSH 是 FRR 路由引擎的集成 shell。它將每個守護進程中定義的所有 CLI 命令合併,並在單個 shell 中將它們呈現給用戶。它提供了類似於 Cisco 的命令行模式,並且許多命令與 Cisco IOS 命令相似。CLI 有不同的模式,某些命令僅在特定模式下可用。
設置
在本教程中,我們將使用 FRR 配置動態路由來實現路由信息協議(RIP)。我們可以通過兩種方式來做到這一點:在編輯器中編輯協議守護進程配置文件或使用 VTY Shell。在此例中,我們將使用 VTY shell。我們的設置包括兩個名為 Alpha 和 Beta 的 CentOS 7.7 主機。這兩台主機都有兩個網路介面,並共享對 192.168.122.0/24 網路的訪問。我們將廣播 10.12.11.0/24 和 10.10.10.0/24 網路的路由。
對於主機 Alpha:
- eth0 IP:192.168.122.100/24
- 網關:192.168.122.1
- eth1 IP:10.10.10.12/24
對於主機 Beta:
- eth0 IP:192.168.122.50/24
- 網關:192.168.122.1
- eth1 IP:10.12.11.12/24
安裝軟體包
首先,我們需要在兩台主機上都安裝 FRR 軟體包。可以按照官方 FRR 文檔中的說明進行操作。
啟用 IP 轉發
對於路由,我們需要在兩台主機上都啟用 IP 轉發,因為這將由 Linux 內核執行:
sysctl -w net.ipv4.conf.all.forwarding = 1
sysctl -w net.ipv6.conf.all.forwarding = 1
sysctl -p
啟用 RIPD 守護進程
安裝後,所有配置文件將保存在 /etc/frr
目錄中。 必須通過編輯 /etc/frr/daemons
文件顯式啟用守護進程。該文件確定啟動 FRR 服務時激活哪些守護進程。要啟用特定的守護進程,只需將相應的 no
改為 yes
。之後的服務重啟將啟動守護進程。
![FRR daemon restart](/data/attachment/album/202005/31/122433stthaatu8ru3nurb.png "FRR daemon restart")
防火牆配置
由於 RIP 協議使用 UDP 作為傳輸協議,並被分配了 520 埠,因此我們需要在 firewalld
配置中允許該埠。
firewall-cmd --add-port=520/udp –permanent
firewalld-cmd -reload
現在,我們可以使用以下命令啟動 FRR 服務:
systemctl start frr
使用 VTY 進行配置
現在,我們需要使用 VTY Shell 配置 RIP。
在主機 Alpha 上:
[root@alpha ~]# vtysh
Hello, this is FRRouting (version 7.2RPKI).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
alpha# configure terminal
alpha(config)# router rip
alpha(config-router)# network 192.168.122.0/24
alpha(config-router)# network 10.10.10.0/24
alpha(config-router)# route 10.10.10.5/24
alpha(config-router)# do write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
alpha(config-router)# do write memory
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
alpha(config-router)# exit
類似地,在主機 Beta 上:
[root@beta ~]# vtysh
Hello, this is FRRouting (version 7.2RPKI).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
beta# configure terminal
beta(config)# router rip
beta(config-router)# network 192.168.122.0/24
beta(config-router)# network 10.12.11.0/24
beta(config-router)# do write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
beta(config-router)# do write memory
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
beta(config-router)# exit
完成後,像下面這樣檢查兩台主機路由:
[root@alpha ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.12 metric 101
10.12.11.0/24 via 192.168.122.50 dev eth0 proto 189 metric 20
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100
我們可以看到 Alpha 上的路由表通過 192.168.122.50
包含了 10.12.11.0/24
的條目,它是通過 RIP 提供的。
類似地,在 Beta 上,該表通過 192.168.122.100
包含了 10.10.10.0/24
的條目。
[root@beta ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 via 192.168.122.100 dev eth0 proto 189 metric 20
10.12.11.0/24 dev eth1 proto kernel scope link src 10.12.11.12 metric 101
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100
總結
如你所見,設置和配置相對簡單。要增加複雜性,我們可以向路由器添加更多的網路介面,以為更多的網路提供路由。可以在編輯器中編輯配置文件來進行配置,但是使用 VTY Shell 在單個組合會話中為我們提供了所有 FRR 守護進程的前端。
via: https://opensource.com/article/20/5/vty-shell
作者:M Umer 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive