译者:geekpi

最近,我写了一篇文章,解释了如何使用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

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 文档中的说明进行操作。


娜娜项目网每日更新创业和副业项目

网址:nanaxm.cn 点击前往娜娜项目网

站 长 微 信: nanadh666


启用 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。之后的服务重启将启动守护进程。

路由器设置指南_路由器设置_路由器设置方法及步骤

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:

作者:M Umer选题:lujun9972译者:geekpi校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出


娜娜项目网每日更新创业和副业项目

网址:nanaxm.cn 点击前往娜娜项目网

站 长 微 信: nanadh666

声明: 本站内容转载于网络,版权归原作者所有,仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,若侵犯到你的版权利益,请联系我们,会尽快删除处理!