如何使用VTY Shell配置路由器
FRR(free range routing)給了你實現(xiàn)多種協(xié)議的選擇。本指南將幫助你入門。
最近,我寫了一篇文章,解釋了如何使用 Quagga 路由套件實現(xiàn)開放式最短路徑優(yōu)先(OSPF)。可以使用多個軟件套件代替 Quagga 來實現(xiàn)不同的路由協(xié)議。其中一種是 FRR(free range routing)。
FRR
FRR 是一個路由軟件套件,它衍生自 Quagga,并在 GNU GPL2 許可下分發(fā)。與 Quagga 一樣,它為類 Unix 平臺提供了所有主要路由協(xié)議的實現(xiàn),例如 OSPF、路由信息協(xié)議(RIP)、邊界網(wǎng)關(guān)協(xié)議(BGP) 和中間系統(tǒng)到中間系統(tǒng) (IS-IS)。
開發(fā)了 Quagga 的一些公司,例如 Big Switch Networks、Cumulus、Open Source Routing 和 6wind,創(chuàng)建了 FRR 以在 Quagga 的良好基礎上進行改善。
體系結(jié)構(gòu)
FRR 是一組守護進程,它們可以共同構(gòu)建路由表。每個主協(xié)議都在其自己的守護進程中實現(xiàn),并且這些守護進程與獨立于協(xié)議的核心守護進程 Zebra 通信,后者提供內(nèi)核路由表更新、接口查找以及不同路由協(xié)議之間路由的重新分配。每個特定協(xié)議的守護進程負責運行相關(guān)協(xié)議并根據(jù)交換的信息構(gòu)建路由表。
FRR architecture
VTY shell
VTYSH 是 FRR 路由引擎的集成 shell。它將每個守護進程中定義的所有 CLI 命令合并,并在單個 shell 中將它們呈現(xiàn)給用戶。它提供了類似于 Cisco 的命令行模式,并且許多命令與 Cisco IOS 命令相似。CLI 有不同的模式,某些命令僅在特定模式下可用。
設置
在本教程中,我們將使用 FRR 配置動態(tài)路由來實現(xiàn)路由信息協(xié)議(RIP)。我們可以通過兩種方式來做到這一點:在編輯器中編輯協(xié)議守護進程配置文件或使用 VTY Shell。在此例中,我們將使用 VTY shell。我們的設置包括兩個名為 Alpha 和 Beta 的 CentOS 7.7 主機。這兩臺主機都有兩個網(wǎng)絡接口,并共享對 192.168.122.0/24 網(wǎng)絡的訪問。我們將廣播 10.12.11.0/24 和 10.10.10.0/24 網(wǎng)絡的路由。
對于主機 Alpha:
- eth0 IP:192.168.122.100/24
- 網(wǎng)關(guān):192.168.122.1
- eth1 IP:10.10.10.12/24
對于主機 Beta:
- eth0 IP:192.168.122.50/24
- 網(wǎng)關(guān):192.168.122.1
- eth1 IP:10.12.11.12/24
安裝軟件包
首先,我們需要在兩臺主機上都安裝 FRR 軟件包。可以按照官方 FRR 文檔中的說明進行操作。
啟用 IP 轉(zhuǎn)發(fā)
對于路由,我們需要在兩臺主機上都啟用 IP 轉(zhuǎn)發(fā),因為這將由 Linux 內(nèi)核執(zhí)行:
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
防火墻配置
由于 RIP 協(xié)議使用 UDP 作為傳輸協(xié)議,并被分配了 520 端口,因此我們需要在 firewalld
配置中允許該端口。
firewall-cmd --add-port=520/udp –permanent
firewalld-cmd -reload
現(xiàn)在,我們可以使用以下命令啟動 FRR 服務:
systemctl start frr
使用 VTY 進行配置
現(xiàn)在,我們需要使用 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
總結(jié)
如你所見,設置和配置相對簡單。要增加復雜性,我們可以向路由器添加更多的網(wǎng)絡接口,以為更多的網(wǎng)絡提供路由。可以在編輯器中編輯配置文件來進行配置,但是使用 VTY Shell 在單個組合會話中為我們提供了所有 FRR 守護進程的前端。