浮动路由
网络问题(链路单点故障): 路由器之间出现的链路故障问题,路由器之间如果只有一条链路连接,很容易出现单点故障
解决方案: 路由器之间使用多条链路进行连接, 有主链路和备份链路之分, 从而增加冗余链路, 平时主链路负责转发数据, 当主链路出现问题时, 备份链路自动切换为主链路.
去往同一网段时,有多个路由条目,需要为这些路由条目设置不同的优先级, 只有优先级最高的路由条目, 才会在路由表中展示. 表示正在使用的是这个路由条目.
优先级比较依据: 先比优先级, 再比开销值. 静态路由的默认优先级为60, 直连路由的默认优先级为0.
配置浮动路由
配置一个优先级低的静态路由, 作为应急触发的备份路径.
在主路由有效的情况下,浮动路由不会出现在路由表中.
- 配置静态路由和链路优先级:
- ar1:
- ip route-static 192.168.4.0 24 192.168.2.2
ip route-static 192.168.4.0 24 192.168.3.2 preference 100
- ar2:
- ip route-static 192.168.1.0 24 192.168.2.1
ip route-static 192.168.1.0 24 192.168.3.1 preference 100
- ip route-static 192.168.1.0 24 192.168.2.1
- 查看路由表
- display ip routing-table
- 可以查看当前使用的是哪个路由条目,使用的路由条目会展示出来
- 查看静态路由信息
- display ip routing-table protocol static
- 可以查看所有静态路由条目
VRRP
网络故障(网关路由器单点故障): 当网络出现故障时,本网段内以该设备为网关的主机都不能访问其他网段的设备.
初步解决方案: 通过部署多网关的方式实现网关的备份. 但任然存在问题: 客户机需要频繁手动切换IP网关.
彻底解决方案: 设置多台网关设备, 并且让多台网关设备成为一个整体来协同工作.
技术实现:VRRP协议,让多台网关设备通过VRRP协议,成为一个逻辑整体.
VRRP概述
虚拟路由冗余协议,Virtual Router Redundancy Protocol
工作在 OSI 模型网络层,协议号为112; ICMP为1; TCP为6; UDP为17.
有IETF标准RFC 2338定义的公有协议,所有产商都支持, 华为,思科,华三等…
VRRP发送报文的方式为组播, 地址为: 224.0.0.18.
VRRP原理
VRRP组成员角色
- 主(Master)路由器: 负责转发数据包, 负责给备份路由器每隔1秒发送一个VRRP组播报文.
- 备份(backup)路由器: 负责侦听主路由器状态, 当3秒后还未收到主路由器的VRRP组播报文时, 将自动切换为主路由器.
- 虚拟(virtual)路由器: 是整个VRRP组的公共IP地址. 客户端需要把网关指向虚拟路由器.
VRRP主/备份角色选举原则
- 首先比较优先级,越大越好.
- 其次比IP地址,越大越好.
VRRP配置命令
- 1.配置ip地址
- r1:
- int g0/0/0
- ip address 192.168.1.251 24
- r2:
- int g0/0/0
- ip address 192.168.1.252 24
- 2.配置vrrp
- r1:
- int g0/0/0
- vrrp vrid 1 virtual-ip 192.168.1.254
- vrrp vrid 1 priority 200
- r2:
- int g0/0/0
- vrrp vrid 1 virtual-ip 192.168.1.254
- 3.查看vrrp组信息
- display vrrp //查看vrrp详细的配置信息
- display vrrp brief //查看vrrp的简要配置信息
VRRP状态维护
VRRP计时器
对于VRRP主网关,会周期性发送VRRP报文, 该VRRP报文是组播报文, 源地址是主网关的端口 IP 地址, 目标地址是224.0.0.18 默认发送周期为 1s ,即每秒发送一次VRRP组播报文. 备份网关会监听该 VRRP 组播报文.
对于备份网关, 会一直监控主网关的状态, 如果在 3倍 的”发送周期”后, 依然无法收到主网关发送的VRRP报文, 则认为 主网关 出现故障, 即MASTER_DOWN_INTERVAL 计时器为 3s . 备份网关则会顶替原主网关的位置成为”主网关”.
当主网关的故障恢复后, 工作中的备份网关监听到主网关的vrrp报文, 通过优先级算法, 会主动切换回备份状态, 主网关重新开始转发数据.
VRRP链路跟踪
- 问题背景:
- 如果VRRP备份网关无法检测到VRRP故障, VRRP备份网关不会切换角色
- 终端用户无法上网.
情况一: 备份网关通过监听VRRP组播报文, 当主路由器内网接口发生故障时, 备份路由器无法接收到主路由器发送的VRRP报文, 3s 后未收到VRRP报文, 则备份路由器将自动切换为主路由器. 切换为主设备用时较短, 不影响终端用户上网体验.
情况二: 当主路由器的外网接口发生故障时, 由于备份路由器还可以接收到主路由器发送的VRRP报文, 所以此时, 备份路由器无法切换为主路由器. 此时主路由器已经没有能力把数据包发送到外网, 主路由器应该主动把自己的VRRP 优先级降低到比备份路由器还要低的程度, 从而把主路由器的身份转让给备份路由器.
- 解决方案:
- 配置链路跟踪, 当上行端口不可用时, 主网关VRRP优先级自动降低到比备份网关还要低的程度. 此时备份路由器角色切换为主路由器.
- 当故障链路恢复后, 主网关的VRRP优先级主动恢复. 抢占回master身份, 继续转发数据.
- VRRP默认开启抢占功能.
- vrrp链路跟踪命令
- vrrp vrid 1 trcak interface g0/0/1 reduced 110
- 该命令的意思是: 监控当前设备的g0/0/1接口的状态, 当接口故障时, 设备在 vrid 1 组的 vrrp 优先级将降低110.
BFD
Bidirectional Forwarding Detection, 双向转发检测
BFD原理:
BFD在两台网络设备上建立会话, 用来检测网络设备之间的双向转发路径, 为上层应用服务.
BFD本身并没有邻居发现机制, 而是靠被服务的上层应用通知其邻居信息以建立会话. 会话建立后会周期性地快速转发BFD报文, 如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障, 通知被服务地上层应用进行相应的处理.
BFD会话建立方式:
静态建立BFD会话
通过命令行手工配置BFD会话参数, 包括配置本地标识符和远程标识符等, 然后手工下发BFD会话建立请求.
动态建立BFD会话
动态分配本地标识符, 当应用程序触发动态创建BFD会话时, 系统分配属于动态会话标识符区域地值作为BFD会话地本地标识符. 然后向对端发生 Remote Discriminator 的值为 0 的BFD控制报文, 进行会话协商.
自学习远端标识符: 当BFD会话的一端收到 Remote Discriminator 的值为0 的控制报文时, 判断报文是否与本地 BFD 会话匹配, 如果匹配, 则学习接收到的 BFD 报文中 Local Discriminator 的值, 获取远端标识符.
BFD检测机制
BFD的检测机制是两个系统建立 BFD 会话, 并沿着他们之间的路径周期性发送 BFD 控制报文, 如果一方在既定的时间内没有收到 BFD 控制报文, 则认为路径上发生了故障.
BFD配置命令
- 命令:
- ar1:
- bfd
- q
- bfd xixi bind peer-ip 192.168.23.2
- discriminator local 1
- discriminator remote 3
- commit
- q
- ar3:
- bfd
- q
- bfd xixi bind peer-ip 192.168.1.251
- discriminator local 3
- discriminator remote 1
- commit
- q
- ar1:
VRRP 链路跟踪 & BFD 案例
目标:
- 实现pc1和pc2正常通信
- 当AR1内网故障时, 数据能够通过AR2转发.
- 当AR1外网故障时, 数据也能够通过AR2转发.
配置:
- 配置路由信息
- AR1:
- interface g0/0/0
- ip address 192.168.1.251 24
- q
- ip route-static 192.168.2.0 24 192.168.13.2
- vrrp vrid 1 virtual-ip 192.168.1.254
- vrrp vrid 1 priority 200 //配置vrrp优先级为200, 这样AR1将成为vrrp主路由器.
- AR2:
- int g0/0/0
- ip address 192.168.1.252 24
- q
- ip route-static 192.168.2.0 24 192.168.23.2
- vrrp vrid 1 virtual-ip 192.168.1.254
- AR3
- int g0/0/0
- ip address 192.168.23.2 24
- int g0/0/1
- ip address 192.168.13.2 24
- int g0/0/2
- ip address 192.168.2.254 24
- ip route-static 192.168.1.0 24 192.168.13.1
- ip route-static 192.168.1.0 24 192.168.23.1 preference 100 //配置通往AR2的静态路由条目的优先级为100, 这样此条静态路由将成为备份路由条目,状态为inactive. 在配置bfd和vrrp链路跟踪联动后, 当主链路出现故障, 将使用备份路由条目.
- AR1:
- 配置链路跟踪
- AR1:
- int g0/0/0
- vrrp vrid 1 track interface g0/0/1 reduced 110 //配置AR1的g0/0/0端口跟踪g0/0/1端口, 当AR1的外网链路出现故障时, 会主动降低优先级到比备份路由器低的程度, 从而让备份路由器成为主设备来转发数据.
- AR1:
- 配置bfd
- AR1
- [ar1]bfd
- [ar1-bfd]q
- [ar1]bfd xixi bind peer-ip 192.168.13.2
- [ar1-bfd-session-xixi]discriminator local 1
- [ar1-bfd-session-xixi]discriminator remote 3
- [ar1-bfd-session-xixi]commit
- [ar1-bfd-session-xixi]quit
- AR3
- [ar3]bfd
- [ar3-bfd]quit
- [ar3]bfd xixi bind peer-ip 192.168.1.251
- [ar3-bfd-session-xixi]discriminator local 3
- [ar3-bfd-session-xixi]discriminator remote 1
- [ar3-bfd-session-xixi]commit
- [ar3-bfd-session-xixi]quit
- AR1
- 配置AR3静态路由与bfd联动
- ip route-static 192.168.1.0 24 192.168.13.1 track bfd-session xixi //配置此命令前, 当ar1的内网链路出现故障时, request请求数据会从ar2发出, 并且能够到达目标主机, 但是在reply回应数据不会走ar3 而是走 ar1 , 这是因为ar1 的静态路由优先级较高(60), 且 ar3 没有办法检测到 ar1 下行链路的故障, 导致数据请求超时. 因此,配置静态路由与bfd联动, 可以在ar1内网故障时, 通过bfd报文来发现故障, 主动禁用通往ar1链路的静态路由, 并更换到23.2 的端口发出reply数据.
VRRP负载均衡
默认情况下, VRRP组虽然实现了设备备份, 但是组中只有主路由器负责转发数据包, 备份路由器一直处于闲置状态.
- 存在问题:
- 主路由器负荷较重
- 配分路由器闲置
- 网络设备利用率低
解决方案:
需要创建多个VRRP组, 让不同的路由器成为不同组的主路由器.
案例:多vlan网关负载均衡
- 1)Vlan 6 的主网关在 SW1,优先级为 150
- 2)Vlan 6 的备份网关在 SW2 ,优先级为 130
- 3)Vlan 8 的主网关在 SW2 ,优先级为 150
- 4)Vlan 8 的备份网关在 SW1 ,优先级为 130
- 5)Vlan 6 的虚拟IP地址为:192.168.6.254
- 6)Vlan 8 的虚拟IP 地址为:192.168.8.254
配置sw3:
- vlan batch 6 8
- interface e0/0/3
- port link-type access
- port default vlan 6
- interface e0/0/4
- port link-type access
- port default vlan 8
- interface e0/0/1
- port link-type trunk
- port trunk allow-pass vlan 6 8
- interface e0/0/2
- port link-type trunk
- port trunk allow-pass vlan 6 8
配置sw1
- vlan batch 6 8
- interface vlanif 6
- ip address 192.168.6.251 24
- vrrp vrid 1 virtual-ip 192.168.6.254
- vrrp vrid 1 priority 150
- quit
- interface vlanif 8
- ip address 192.168.8.251 24
- vrrp vrid 2 virtual-ip 192.168.8.254
- vrrp vrid 2 priority 130
- quit
- interface g0/0/1
- port link-type trunk
- port trunk allow-pass vlan 6 8
- quit
配置sw2
- vlan batch 6 8
- interface vlanif 6
- ip address 192.168.6.252 24
- vrrp vrid 1 virtual-ip 192.168.6.254
- vrrp vrid 1 priority 130
- quit
- interface vlanif 8
- ip address 192.168.8.252 24
- vrrp vrid 2 virtual-ip 192.168.8.254
- vrrp vrid 2 priority 150
- quit
- int g0/0/1
- port link-type trunk
- port trunk allow-pass vlan 6 8
- quit
查看VRRP信息
display vrrp brief
VRRP安全认证
防止网络中非法路由器运行VRRP协议, 成为主路由器
要对路由器的身份进行验证
VRRP安全隐患
如果没有配置VRRP安全认证, 在开启了VRRP的网络中, 如果有非法路由器接入, 且开启了VRRP协议, 如果非法路由器的VRRP优先级更高(人为设置), 则会成为主网关, 从而导致网络故障或安全问题.
认证类型
明文认证 — Simple
密文认证 — MD5
认证原则
认证模式相同
认证密码相同
配置vrrp认证
vrrp组中的每个路由器都需要设置vrrp认证, 且认证类型和认证密码都需要相同, 认证失败, 否则无法加入同一个vrrp组.
认证失败的现象: 通过display vrrp brief 查看配置情况时, 会看见每个路由器都成了Master设备.
命令:
明文认证: vrrp vrid 1 authentication-mode simple hcie //所有需要加入同一个vrrp组的设备都要配置
密文认证:vrrp vrid 1 authentication-mode MD5 hcie //所有需要加入同一个vrrp组的设备都要配置
明文和密文的区别
明文认证方式,在抓包时, 会看到vrrp包的认证密码.
密文方式, 在抓包时, 认证密码会以特殊处理的方式显示