Cyber_Security_Notes/B. 第二阶段/03_BFD.md
2024-08-31 11:59:21 +08:00

305 lines
9.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.

# BFD
### 一、BFD概述
1. Bidirectional Forwarding Detection
> 双向转发检测
2. BFD技术背景
1. 现网中存在的问题
- 不能快速有效的发现网络设备或链路出现的故障
- 不能以毫秒级的速度发现网络问题
- 协议自身的报文检测机制一般都大于1秒
2. 解决方案:
- 需要一种专门用于快速检测设备或链路的协议BFD协议产生
3. BFD的作用
- 专门用于发送超小和超快的检测数据包,以毫秒级进行发送,快速检测链路的故障,改善网络性能
- 当发现链路故障时,通知相关的设备和协议进行处理,快速恢复通信,保证网络可靠性
4. BFD的优点
- 对任何介质、任何协议层进行实时且快速的检测
5. BFD会话建立方式
- BFD会话的建立有静态建立、动态建立两种方式
- 静态建立BFD会话手工配置BFD会话参数手工配置本地标识符和远端标识符
- 动态建立BFD会话动态分配本地标识符、自学习远端标识符
- 静态和动态的主要区别:本地标识符和远端标识符配置方式不同
6. BFD检测机制
- 两个设备建立BFD会话链路两端周期性发送BFD控制报文如果一端在既定的时间内没有收到BFD控制报文则认为路径上发生了故障。
7. BFD会话常见参数的缺省配置
| 参数 | 缺省值 |
| ------------ | -------- |
| 发送间隔 | 1000毫秒 |
| 接收间隔 | 1000毫秒 |
| 本地检测倍数 | 3 |
### 二、BFD和静态路由联动
![image-20240831104707266](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20240831104707266.png)
- **需求**
- 实现PC1 和PC2的互联互通
- 实现BFD和静态路由联动
- **配置步骤**
1. 配置PC的IP地址掩码网关
2. 配置路由器的接口IP地址
3. 配置静态路由和浮动路由
4. 配置BFD
5. 配置BFD和静态路由联动
6. 验证与测试
- **配置命令**
- 第一步配置PC的接口IP地址
- 第二步配置路由器的接口IP地址
- 第三步:配置静态路由和浮动路由
- R1配置浮动路由
```
[R1]ip route-static 192.168.2.0 24 192.168.12.2 :主路由
[R1]ip route-static 192.168.2.0 24 192.168.13.3 preference 70 :浮动路由
```
> R1去往24.0网段要做BFD[R1]ip route-static 192.168.24.0 24 192.168.12.2
- R2配置静态路由
```
[R2]ip route-static 192.168.1.0 24 192.168.12.1
[R2]ip route-static 192.168.2.0 24 192.168.24.4
```
- R3配置静态路由
```
[R3]ip route-static 192.168.1.0 24 192.168.13.1
[R3]ip route-static 192.168.2.0 24 192.168.34.4
```
- R4配置浮动路由
```
[R4]ip route-static 192.168.1.0 24 192.168.24.2
[R4]ip route-static 192.168.1.0 24 192.168.34.3 preference 70
```
> R4去往12.0网段要做BFD[R4]ip route-static 192.168.12.0 24 192.168.24.2
- 第四步配置BFD
- R1的配置
```
[R1]bfd
[R1-bfd]quit
[R1]bfd ntd bind peer-ip 192.168.24.4
[R1-bfd-session-ntd]discriminator local 1
[R1-bfd-session-ntd]discriminator remote 4
[R1-bfd-session-ntd]min-tx-interval 10
[R1-bfd-session-ntd]min-rx-interval 10
[R1-bfd-session-ntd]commit
[R1-bfd-session-ntd]quit
```
- R4的配置
```
[R4]bfd
[R4-bfd]quit
[R4]bfd ntd bind peer-ip 192.168.12.1
[R4-bfd-session-ntd]discriminator local 4
[R4-bfd-session-ntd]discriminator remote 1
[R4-bfd-session-ntd]min-tx-interval 10
[R4-bfd-session-ntd]min-rx-interval 10
[R4-bfd-session-ntd]commit
```
- 第五步配置BFD和静态路由联动
- R1
```
[R1]ip route-static 192.168.2.0 24 192.168.12.2 track bfd-session ntd2308
```
- 第六步:验证与测试
- R1
```
<R1>display bfd session all
```
> 将R2和R4之间的链路断开验证浮动路由是否切换
>
> 确保PC1和PC2能够正常通信不因链路中断而导致网络不可达
### 三、VRRP和BFD联动实验
![image-20240831110337612](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20240831110337612.png)
- **需求**
- 部署VRRP让SW1成为备份组10的-Master设备vlan10的主网关
- 让SW2成为备份组10的-Backup设备vlan10的备份网关
- 部署VRRP和BFD联动可以解决的问题
- 在VRRP中当SW1-主网关出现故障的时候备份网关SW2需要等待3秒后才可以升级为新的主网关承担流量转发任务。
- 3秒对有些企业网络来说是不可以接受的我们需要实现VRRP主备设备更加快速的切换毫秒级故障切换
- **解决方案**
- 在运行VRRP网络设备上(SW1/SW2)运行BFD协议
- 在SW1和SW2之间建立BFD会话通过BFD协议快速检测和感知设备或链路故障
- 在SW2中配置VRRP和BFD联动当SW1-主网关出现故障的时候BFD会话会Down
- 此时BFD协议会通知备份网关SW2立即将VRRP优先级调高已实现SW2快速成为主网关
- **配置步骤**
- 第一步配置PC的IP地址掩码网关
- 第二步配置sw3交换机的vlan端口加vlan 配trunk
- 第三步SW1和SW2配置vrrp-热备
1. 创建vlan
2. 配置vlanif接口地址
3. 配置vrrp 备份组配置虚拟IP
4. 配置优先级
5. 交换机互联接口配置trunk
- 第四步配置SW1和SW2的BFD会话
1. 开启BFD功能
2. 创建BFD会话
3. 配置本地标识符
4. 配置远端标识符
5. 提交
- 第五步配置VRRP和BFD联动
- 配置VRRP和BFD联动跟踪BFD会话一旦发现BFD会话down掉SW2的VRRP的优先级会在原来的基础上增加60让SW2快速的成为Master设备
- 第六步模拟故障验证BFD
- **配置命令**
- 第一步配置PC的IP地址掩码网关
- 第二步配置sw3交换机的vlan端口加vlan 配trunk
- SW3配置
```
[SW3]vlan 10
[SW3-vlan10]quit
[SW3]port-group group-member g0/0/1 g0/0/2
[SW3-port-group]port link-type access
[SW3-port-group]port default vlan 10
[SW3-port-group]quit
[SW3]port-group group-member g0/0/3 g0/0/4
[SW3-port-group]port link-type trunk
[SW3-port-group]port trunk allow-pass vlan all
```
- 第三步SW1和SW2配置vrrp-热备
- SW1配置
```
[SW1]vlan 10
[SW1-vlan10]quit
[SW1]int g0/0/1
[SW1-G0/0/1]port link-type trunk
[SW1-G0/0/1]port trunk allow-pass vlan all
[SW1-G0/0/1]quit
[SW1]int vlanif 10
[SW1-Vlanif10]ip address 192.168.10.251 24
[SW1-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.254
[SW1-Vlanif10]vrrp vrid 10 priority 130
```
- SW2配置
```
[SW2]vlan 10
[SW2-vlan10]quit
[SW2]int g0/0/1
[SW2-G0/0/1]port link-type trunk
[SW2-G0/0/1]port trunk allow-pass vlan all
[SW2-G0/0/1]quit
[SW2]int vlanif 10
[SW2-Vlanif10]ip address 192.168.10.252 24
[SW2-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.254
```
- 第四步配置SW1和SW2的BFD会话
- SW1配置
```
[SW1]bfd //开启BFD功能
[SW1-bfd]quit //退出
[SW1]bfd tedu bind peer-ip 192.168.10.252 //在系统视图下创建BFD会话绑定对端IP地址
[SW1-bfd-session-tedu]discriminator local 1 //配置本地标识符
[SW1-bfd-session-tedu]discriminator remote 2 //配置远端标识符
[SW1-bfd-session-tedu]min-rx-interval 100 //配置接收报文间隔时间100毫秒
[SW1-bfd-session-tedu]min-tx-interval 100 //配置发送报文间隔时间100毫秒
[SW1-bfd-session-tedu]commit //提交
```
- SW2
```
[SW2]bfd //开启BFD功能
[SW2-bfd]quit
[SW2]bfd tedu bind peer-ip 192.168.10.251 //创建BFD会话绑定对端IP地址
[SW2-bfd-session-tedu]discriminator local 2 //本地标识符为2
[SW2-bfd-session-tedu]discriminator remote 1 //远端标识符为1
[SW2-bfd-session-tedu]min-rx-interval 100 //接受报文间隔时间100毫秒
[SW2-bfd-session-tedu]min-tx-interval 100 //发送报文间隔时间100毫秒
[SW2-bfd-session-tedu]commit //提交
```
- 第五步在SW2上配置VRRP和BFD联动
```
[SW2]int vlanif 10
[SW2-Vlanif10]vrrp vrid 10 track bfd-session 2 increased 60
```
> 配置VRRP和BFD联动跟踪BFD会话一旦发现BFD会话down掉就让SW2的VRRP的优先级在原来的基础上增加60让SW2快速的成为Master设备
- 第六步模拟SW1故障在SW2中验证BFD和VRRP联动
- SW2
```
[SW2]display vrrp
Vlanif10 | Virtual Router 10
State : Master
Virtual IP : 192.168.10.254
Master IP : 192.168.10.252
PriorityRun : 160
PriorityConfig : 100
MasterPriority : 160
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-010a
Check TTL : YES
Config type : normal-vrrp
Track BFD : 2 Priority increased : 60 BFD-session state : DOWN // 重点看这条
Create time : 2022-12-29 17:32:15 UTC-08:00
Last change time : 2022-12-29 17:50:00 UTC-08:00
```