article/openwrt/frr-动态路由.md
2024-11-28 21:42:31 +08:00

172 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## FRR 动态路由
FRR 动态路由软件包 组件
这些配置行似乎来自于某种网络服务或路由器的配置文件,每一行都代表对一个特定的网络守护进程(daemon)的启用yes或禁用no设置。
- `bgpd=no`表示边界网关协议BGP守护进程被禁用。
- `ospfd=no`表示开放最短路径优先OSPF守护进程被禁用。
- `#ospfd_instances=1,20`:这行以`#`开始表示它是一个注释不会被执行。如果启用它可能用于指定OSPF守护进程的实例数量或特定的实例ID。
- `ospf6d=no`表示用于IPv6的OSPF守护进程被禁用。
- `ripd=no`表示路由信息协议RIP守护进程被禁用。
- `ripngd=no`表示用于IPv6的RIP新一代RIPng守护进程被禁用。
- `isisd=no`表示中间系统到中间系统IS-IS守护进程被禁用。
- `pimd=no`表示协议独立组播PIM守护进程被禁用。
- `ldpd=no`表示标签分发协议LDP守护进程被禁用。
- `nhrpd=no`表示下一代路由解析协议NHRP守护进程被禁用。
- `eigrpd=no`表示增强内部网关路由协议EIGRP守护进程被禁用。
- `babeld=no`表示Babel路由协议守护进程被禁用。
- `sharpd=no`:可能是一个特定网络服务的守护进程,但通常不是一个标准的路由协议守护进程。可能用于测试或特定功能。
- `pathd=no`可能关联于路径计算元素协议PCEP或其他路径管理服务用于网络路径计算和管理。
- `pbrd=no`表示策略基路由PBR守护进程被禁用。
- `bfdd=no`表示双向转发检测BFD守护进程被禁用。
- `fabricd=no`:可能指网络织物守护进程,用于管理数据中心网络织物的配置和操作,但在标准网络协议中不常见。
- `vrrpd=no`表示虚拟路由器冗余协议VRRP守护进程被禁用。
rip 配置
```bash
router rip
network 192.168.123.0/24
network 192.168.192.0/24
!
interface eth0
ip rip send version 2
ip rip receive version 2
!
interface eth1
ip rip send version 2
ip rip receive version 2
```
第一段申明一个rip 路由
宣告两个子网
```
network 192.168.123.0/24
network 192.168.192.0/24
#静态路由
route 10.147.17.0/24
```
申请监听来自那个接口的 rip 路由包
```
interface eth0
ip rip send version 2
ip rip receive version 2
!
```
`ip rip send version 2` 发送V2协议包
`ip rip receive version 2` 接收V2协议包
根据你提供的 `show ip rip` 命令输出,可以逐行分析每条路由的意义。输出的内容主要显示了 RIP 协议的路由表信息,包括每个网络的下一跳、度量值、路由来源等。下面是对输出的逐行解析:
### 输出内容
```
Codes: R - RIP, C - connected, S - Static, O - OSPF, B - BGP
Sub-codes:
(n) - normal, (s) - static, (d) - default, (r) - redistribute,
(i) - interface
Network Next Hop Metric From Tag Time
C(i) 10.147.17.0/24 0.0.0.0 1 self 0
C(i) 192.168.123.0/24 0.0.0.0 1 self 0
R(n) 192.168.124.0/24 10.147.17.219 2 10.147.17.219 0 02:27
C(i) 192.168.192.0/24 0.0.0.0 1 self 0
```
### **Codes 和 Sub-codes 说明**
- **Codes**: 每条路由的类型。
- `R`RIP协议路由
- `C`:连接路由(直接连接的路由)
- `S`:静态路由
- `O`OSPF协议路由
- `B`BGP协议路由
- **Sub-codes**: 路由的子类型。
- `(n)`:正常路由
- `(s)`:静态路由
- `(d)`:默认路由
- `(r)`:由其他协议重分发的路由
- `(i)`:接口路由(指向接口的路由)
### 路由信息解析
#### 1. **C(i) 10.147.17.0/24**
```bash
C(i) 10.147.17.0/24 0.0.0.0 1 self 0
```
- **C(i)**:这是一条 "连接路由",即直接连接的网络。 `(i)` 表示它是一个通过接口直接连接的网络。
- **10.147.17.0/24**:这是网络地址,表示该设备有一个直接连接到 `10.147.17.0/24` 子网的接口。
- **Next Hop**`0.0.0.0`,表示这是一个直接连接的网络,因此不需要下一跳地址。
- **Metric**:度量值为 `1`,表示该路由的度量值,这里是直接连接的网络,度量值是最小的。
- **From**`self`,表示该路由是从本设备的接口直接学习到的。
- **Tag**`0`,这是一个路由标签,用于标识或分类路由。
- **Time**`0`,表示此路由是立即学习到的,没有过期时间。
#### 2. **C(i) 192.168.123.0/24**
```bash
C(i) 192.168.123.0/24 0.0.0.0 1 self 0
```
- 这条路由的解析与第一条相似,是一个直接连接的网络 `192.168.123.0/24`,度量值为 `1`,并且由本机接口学习到。
#### 3. **R(n) 192.168.124.0/24**
```bash
R(n) 192.168.124.0/24 10.147.17.219 2 10.147.17.219 0 02:27
```
- **R(n)**:这是一个由 RIP 协议学习到的路由,`(n)` 表示正常的 RIP 路由。
- **192.168.124.0/24**:目标网络是 `192.168.124.0/24`,这是一个通过 RIP 协议学到的路由。
- **Next Hop**`10.147.17.219`,表示该路由的下一跳地址是 `10.147.17.219`,即该路由是通过 `10.147.17.219` 路由器到达的。
- **Metric**:度量值为 `2`,表示到达该网络的路径的跳数或成本,`2` 表示通过该路径的跳数为 2。
- **From**`10.147.17.219`,表示该路由是从 `10.147.17.219` 路由器学到的。
- **Tag**`0`,路由标签。
- **Time**`02:27`,表示该路由自学习以来已经存在了 2 分 27 秒。
#### 4. **C(i) 192.168.192.0/24**
```bash
C(i) 192.168.192.0/24 0.0.0.0 1 self 0
```
- 这条路由表示 `192.168.192.0/24` 是通过本机接口直接连接的网络,度量值为 `1`
### 总结
- **C(i)** 类别的路由表示直接连接的子网,度量值为 `1`,即最佳路径。
- **R(n)** 类别的路由表示通过 RIP 协议学到的路由。它是通过其他路由器 `10.147.17.219` 学到的,度量值为 `2`,表示该路径的跳数是 2。
- 所有路由的下一跳信息和度量值都提供了路由信息的详细描述,表明如何到达不同的网络。
这些路由信息可以帮助你了解 FRR 当前的 RIP 路由表,具体到哪些路由是直接连接的(如 `C(i)` 路由)以及哪些路由是通过 RIP 协议学习到的(如 `R(n)` 路由)。