如何使用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 的良好基礎(chǔ)上進(jìn)行改善。
體系結(jié)構(gòu)
FRR 是一組守護(hù)進(jìn)程,它們可以共同構(gòu)建路由表。每個主協(xié)議都在其自己的守護(hù)進(jìn)程中實現(xiàn),并且這些守護(hù)進(jìn)程與獨立于協(xié)議的核心守護(hù)進(jìn)程 Zebra 通信,后者提供內(nèi)核路由表更新、接口查找以及不同路由協(xié)議之間路由的重新分配。每個特定協(xié)議的守護(hù)進(jìn)程負(fù)責(zé)運行相關(guān)協(xié)議并根據(jù)交換的信息構(gòu)建路由表。
FRR architecture
VTY shell
VTYSH 是 FRR 路由引擎的集成 shell。它將每個守護(hù)進(jìn)程中定義的所有 CLI 命令合并,并在單個 shell 中將它們呈現(xiàn)給用戶。它提供了類似于 Cisco 的命令行模式,并且許多命令與 Cisco IOS 命令相似。CLI 有不同的模式,某些命令僅在特定模式下可用。
設(shè)置
在本教程中,我們將使用 FRR 配置動態(tài)路由來實現(xiàn)路由信息協(xié)議(RIP)。我們可以通過兩種方式來做到這一點:在編輯器中編輯協(xié)議守護(hù)進(jìn)程配置文件或使用 VTY Shell。在此例中,我們將使用 VTY shell。我們的設(shè)置包括兩個名為 Alpha 和 Beta 的 CentOS 7.7 主機。這兩臺主機都有兩個網(wǎng)絡(luò)接口,并共享對 192.168.122.0/24 網(wǎng)絡(luò)的訪問。我們將廣播 10.12.11.0/24 和 10.10.10.0/24 網(wǎng)絡(luò)的路由。
對于主機 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 文檔中的說明進(jìn)行操作。
啟用 IP 轉(zhuǎn)發(fā)
對于路由,我們需要在兩臺主機上都啟用 IP 轉(zhuǎn)發(fā),因為這將由 Linux 內(nèi)核執(zhí)行:
sysctl -w net.ipv4.conf.all.forwarding = 1sysctl -w net.ipv6.conf.all.forwarding = 1sysctl -p
啟用 RIPD 守護(hù)進(jìn)程
安裝后,所有配置文件將保存在 /etc/frr 目錄中。 必須通過編輯 /etc/frr/daemons 文件顯式啟用守護(hù)進(jìn)程。該文件確定啟動 FRR 服務(wù)時激活哪些守護(hù)進(jìn)程。要啟用特定的守護(hù)進(jìn)程,只需將相應(yīng)的 no 改為 yes。之后的服務(wù)重啟將啟動守護(hù)進(jìn)程。
FRR daemon restart
防火墻配置
由于 RIP 協(xié)議使用 UDP 作為傳輸協(xié)議,并被分配了 520 端口,因此我們需要在 firewalld 配置中允許該端口。
firewall-cmd --add-port=520/udp –permanentfirewalld-cmd -reload
現(xiàn)在,我們可以使用以下命令啟動 FRR 服務(wù):
systemctl start frr
使用 VTY 進(jìn)行配置
現(xiàn)在,我們需要使用 VTY Shell 配置 RIP。
在主機 Alpha 上:
[root@alpha ~]# vtyshHello, this is FRRouting (version 7.2RPKI).Copyright 1996-2005 Kunihiro Ishiguro, et al.alpha# configure terminalalpha(config)# router ripalpha(config-router)# network 192.168.122.0/24alpha(config-router)# network 10.10.10.0/24alpha(config-router)# route 10.10.10.5/24alpha(config-router)# do writeNote: this version of vtysh never writes vtysh.confBuilding Configuration...Configuration saved to /etc/frr/ripd.confConfiguration saved to /etc/frr/staticd.confalpha(config-router)# do write memoryNote: this version of vtysh never writes vtysh.confBuilding Configuration...Configuration saved to /etc/frr/ripd.confConfiguration saved to /etc/frr/staticd.confalpha(config-router)# exit
類似地,在主機 Beta 上:
[root@beta ~]# vtyshHello, this is FRRouting (version 7.2RPKI).Copyright 1996-2005 Kunihiro Ishiguro, et al.beta# configure terminalbeta(config)# router ripbeta(config-router)# network 192.168.122.0/24beta(config-router)# network 10.12.11.0/24beta(config-router)# do writeNote: this version of vtysh never writes vtysh.confBuilding Configuration...Configuration saved to /etc/frr/zebra.confConfiguration saved to /etc/frr/ripd.confConfiguration saved to /etc/frr/staticd.confbeta(config-router)# do write memoryNote: this version of vtysh never writes vtysh.confBuilding Configuration...Configuration saved to /etc/frr/zebra.confConfiguration saved to /etc/frr/ripd.confConfiguration saved to /etc/frr/staticd.confbeta(config-router)# exit
完成后,像下面這樣檢查兩臺主機路由:
[root@alpha ~]# ip route showdefault via 192.168.122.1 dev eth0 proto static metric 10010.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.12 metric 10110.12.11.0/24 via 192.168.122.50 dev eth0 proto 189 metric 20192.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 showdefault via 192.168.122.1 dev eth0 proto static metric 10010.10.10.0/24 via 192.168.122.100 dev eth0 proto 189 metric 2010.12.11.0/24 dev eth1 proto kernel scope link src 10.12.11.12 metric 101192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100
總結(jié)
如你所見,設(shè)置和配置相對簡單。要增加復(fù)雜性,我們可以向路由器添加更多的網(wǎng)絡(luò)接口,以為更多的網(wǎng)絡(luò)提供路由。可以在編輯器中編輯配置文件來進(jìn)行配置,但是使用 VTY Shell 在單個組合會話中為我們提供了所有 FRR 守護(hù)進(jìn)程的前端。




















