蚊章汇 - FRR
type: channel
link: https://linuxcn.bwsl.wang/tag/FRR/
items: 如何使用 VTY Shell 配置路由器

如何使用 VTY Shell 配置路由器
type: item
date: 2020-05-31T20:24:26+08:00
description: FRR（free range routing）给了你实现多种协议的选择。本指南将帮助你入门。最近，我写了一篇文章，解释了如何使用 Quagga 路由套件实现 开放式最短路径优先 Open Shortest Path First （OSPF）。可以使用多个软件套件代替 Quagga 来实现不同的路由协议。其中一种是 FRR（free range routing）。FRRFRR 是一个路由软件套件，它衍生自 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 shellVTYSH 是 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.1eth1 IP：10.10.10.12/24对于主机 Beta：eth0 IP：192.168.122.50/24网关：192.168.122.1eth1 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。之后的服务重启将启动守护进程。防火墙配置由于 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)# netw…