浮动路由&VRRP协议&BFD

浮动路由

网络问题(链路单点故障): 路由器之间出现的链路故障问题,路由器之间如果只有一条链路连接,很容易出现单点故障

解决方案: 路由器之间使用多条链路进行连接, 有主链路和备份链路之分, 从而增加冗余链路, 平时主链路负责转发数据, 当主链路出现问题时, 备份链路自动切换为主链路.

去往同一网段时,有多个路由条目,需要为这些路由条目设置不同的优先级, 只有优先级最高的路由条目, 才会在路由表中展示. 表示正在使用的是这个路由条目.

优先级比较依据: 先比优先级, 再比开销值. 静态路由的默认优先级为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
  • 查看路由表
    • 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

VRRP 链路跟踪 & BFD 案例

目标:

  1. 实现pc1和pc2正常通信
  2. 当AR1内网故障时, 数据能够通过AR2转发.
  3. 当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:
      • int g0/0/0
      • vrrp vrid 1 track interface g0/0/1 reduced 110 //配置AR1的g0/0/0端口跟踪g0/0/1端口, 当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
  • 配置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包的认证密码.

密文方式, 在抓包时, 认证密码会以特殊处理的方式显示

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next