Linux中國

如何使用 VTY Shell 配置路由器

最近,我寫了一篇文章,解釋了如何使用 Quagga 路由套件實現 開放式最短路徑優先 Open Shortest Path First (OSPF)。可以使用多個軟體套件代替 Quagga 來實現不同的路由協議。其中一種是 FRR(free range routing)。

FRR

FRR 是一個路由軟體套件,它衍生自 Quagga,並在 GNU GPL2 許可下分發。與 Quagga 一樣,它為類 Unix 平台提供了所有主要路由協議的實現,例如 OSPF、 路由信息協議 Routing Information Protocol (RIP)、 邊界網關協議 Border Gateway Protocol (BGP) 和 中間系統到中間系統 Intermediate system-to-intermediate system (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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國