皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

如何使用 VTY Shell 配置路由器

FRR(free range routing)给了你实现多种协议的选择。本指南将帮助你入门。

最近,我写了一篇文章,解释了如何使用 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 通信,后者提供内核路由表更新、接口查找以及不同路由协议之间路由的重新分配。每个特定协议的守护进程负责运行相关协议并根据交换的信息构建路由表。

如何使用 VTY Shell 配置路由器

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 内核执行:

  1. sysctl -w net.ipv4.conf.all.forwarding = 1
  2. sysctl -w net.ipv6.conf.all.forwarding = 1
  3. sysctl -p

启用 RIPD 守护进程

安装后,所有配置文件将保存在 /etc/frr 目录中。 必须通过编辑 /etc/frr/daemons 文件显式启用守护进程。该文件确定启动 FRR 服务时激活哪些守护进程。要启用特定的守护进程,只需将相应的 no 改为 yes。之后的服务重启将启动守护进程。

如何使用 VTY Shell 配置路由器

FRR daemon restart

防火墙配置

由于 RIP 协议使用 UDP 作为传输协议,并被分配了 520 端口,因此我们需要在 firewalld 配置中允许该端口。

  1. firewall-cmd --add-port=520/udp permanent
  2. firewalld-cmd -reload

现在,我们可以使用以下命令启动 FRR 服务:

  1. systemctl start frr

使用 VTY 进行配置

现在,我们需要使用 VTY Shell 配置 RIP。

在主机 Alpha 上:

  1. [root@alpha ~]# vtysh
  2. Hello, this is FRRouting (version 7.2RPKI).
  3. Copyright 1996-2005 Kunihiro Ishiguro, et al.
  4. alpha# configure terminal
  5. alpha(config)# router rip
  6. alpha(config-router)# network 192.168.122.0/24
  7. alpha(config-router)# network 10.10.10.0/24
  8. alpha(config-router)# route 10.10.10.5/24
  9. alpha(config-router)# do write
  10. Note: this version of vtysh never writes vtysh.conf
  11. Building Configuration...
  12. Configuration saved to /etc/frr/ripd.conf
  13. Configuration saved to /etc/frr/staticd.conf
  14. alpha(config-router)# do write memory
  15. Note: this version of vtysh never writes vtysh.conf
  16. Building Configuration...
  17. Configuration saved to /etc/frr/ripd.conf
  18. Configuration saved to /etc/frr/staticd.conf
  19. alpha(config-router)# exit

类似地,在主机 Beta 上:

  1. [root@beta ~]# vtysh
  2. Hello, this is FRRouting (version 7.2RPKI).
  3. Copyright 1996-2005 Kunihiro Ishiguro, et al.
  4. beta# configure terminal
  5. beta(config)# router rip
  6. beta(config-router)# network 192.168.122.0/24
  7. beta(config-router)# network 10.12.11.0/24
  8. beta(config-router)# do write
  9. Note: this version of vtysh never writes vtysh.conf
  10. Building Configuration...
  11. Configuration saved to /etc/frr/zebra.conf
  12. Configuration saved to /etc/frr/ripd.conf
  13. Configuration saved to /etc/frr/staticd.conf
  14. beta(config-router)# do write memory
  15. Note: this version of vtysh never writes vtysh.conf
  16. Building Configuration...
  17. Configuration saved to /etc/frr/zebra.conf
  18. Configuration saved to /etc/frr/ripd.conf
  19. Configuration saved to /etc/frr/staticd.conf
  20. beta(config-router)# exit

完成后,像下面这样检查两台主机路由:

  1. [root@alpha ~]# ip route show
  2. default via 192.168.122.1 dev eth0 proto static metric 100
  3. 10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.12 metric 101
  4. 10.12.11.0/24 via 192.168.122.50 dev eth0 proto 189 metric 20
  5. 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 的条目。

  1. [root@beta ~]# ip route show
  2. default via 192.168.122.1 dev eth0 proto static metric 100
  3. 10.10.10.0/24 via 192.168.122.100 dev eth0 proto 189 metric 20
  4. 10.12.11.0/24 dev eth1 proto kernel scope link src 10.12.11.12 metric 101
  5. 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中国 荣誉推出

转自 https://linux.cn/article-12268-1.html