如何使用VTY Shell配置路由器

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

[[328462]]

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

 

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

 

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

类似地,在主机 Beta 上:

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

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2017-05-12 15:23:25

路由器网络交换机

2009-12-22 15:57:18

Cisco路由器配置

2010-08-04 10:14:36

路由器配置

2009-12-21 15:49:44

Cisco路由器

2009-11-20 18:12:15

路由器配置

2012-05-23 09:23:34

2013-06-07 11:06:20

路由技术静态路由配置路由器

2011-09-14 17:16:14

2009-12-21 14:12:30

路由器配置故障

2009-12-18 16:59:22

配置路由器

2009-12-08 17:10:22

路由器配置

2009-12-17 09:02:04

路由器配置

2010-08-03 11:29:53

路由器配置

2010-07-30 14:53:35

路由器设置

2010-07-30 15:23:34

路由器配置

2009-04-14 09:48:00

cisco路由器配置

2011-08-29 13:04:09

路由器设置路由器连接路由器

2010-08-09 09:49:15

华为路由器配置

2011-02-22 08:57:28

路由器基础

2009-12-11 15:21:15

华为路由器CISCO路由器
点赞
收藏

51CTO技术栈公众号