VRRP协议个人理解+报文示例+典型配置-RFC2338/RFC3768/RFC5798/RFC9568

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。

因此本文将在VRRP协议报文的基础上进行介绍。

在这里插入图片描述VRRP协议发展

  • 关于VRRPv2基本原理,可重点参考2004年发布的RFC3768-Virtual Router Redundancy Protocol
  • 关于VRRPv3基本原理,可重点参考2024年发布的RFC9568-VRRP Version 3 for IPv4 and IPv6

历史RFC

  • 关于VRRPv2的历史版本RFC,可查看1998年发布的RFC2338
  • 关于VRRPv3的历史版本RFC,可查看2010年发布的RFC5798
  • 关于VRRP所使用的协议号,可查看IANA发布的Assigned Internet Protocol Numbers
  • 关于VRRPv2的RFC2338版本资料,可查看博客VRRP协议RFC2338文档翻译
  • 关于VRRPv3的RFC5798版本资料,可查看博客VRRP协议RFC5798文档翻译
  • 关于VRRPv3所涉及的ICMPv6协议,可查看博客IPv6/ICMPv6-原理介绍+报文分析+配置示例
  • 关于单播VRRP的相关内容,可参考Keepalived Configuration Manual Page


相比于VRRPv2支持IPv4网络,VRRPv3主要用于支持IPv6网络。同时允许VRRPv3兼容VRRPv2标准。不同版本之间除部分字段有所不同外,相关内容无较大差别。

Note:不同版本RFC之间略有差异,这里以其中一版VRRP协议进行说明。个人能力有限,敬请各位指导。

目录

Virtual Router Redundancy Protocol

  • 目录

  • 1.VRRP原理
    • 1.1.VRRP相关概念
    • 1.2.VRRP报文格式
      • 1.2.1.VRRP的包格式
      • 1.2.2.VRRP的帧格式
    • 1.3.VRRP状态机切换
  • 2.VRRP的实际应用
    • 2.1.VRRP的典型配置
    • 2.2.VRRP的其他应用
      • 2.2.1.VRRP与路由协议
      • 2.2.2.单播VRRP
  • 更新

1.VRRP原理

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)主要用于消除静态路由下固有的单点故障导致的业务转发异常故障。VRRP 通过定义选举机制,将虚拟路由器的责任分配给 LAN 上的 VRRP 路由器之一。控制与虚拟路由器关联的 IP 地址的 VRRP 路由器称为 Master 路由器,它会响应并转发发送到这些虚拟 IP 地址的数据包。如果 Master 路由器故障,选举过程会在转发责任中提供动态故障转移。然后,终端主机可以使用 LAN 上的任何虚拟路由器 IP 地址作为默认的第一跳路由器。使用 VRRP 的优势在于,默认路径可用性更高,无需在每个终端主机上配置动态路由或路由器发现协议。VRRP 提供的功能类似于专有协议“热备用路由器协议 (HSRP)”[HSRP] (《RFC2281-Cisco Hot Standby Router Protocol》) 和“IP 备用协议”[IPSTB] (《Development of router clusters to provide fast failover in IP networks》

其基本原理在于:通过一次竞争选举出承担虚拟 IP 及其虚拟 MAC 功能的路由器角色。

1.1.VRRP相关概念

基本概念
VRRP Router:VRRP 路由器,也即参与 VRRP 选举的路由器。
Virtual Router:一个由 VRRP 管理的虚拟对象。对外以 IP/MAC 的形式存在,用于作为主机的虚拟网关。

虚拟路由器的 Virtual IP 由管理员定义,同时其 MAC 为单播 MAC 由 IANA 所分配。
IPv4 网络下取 00-00-5E-00-01-{VRID}IPv6 网络下取 00-00-5E-00-02-{VRID}
该 00-00-5E 及其组播 01-00-5E 形式的 OUI,由 IANA 向 IEEE 所注册使用。相关地址分配可查看IANA发布的IANA OUI Ethernet Numbers

IP Address Owner:真实IP地址与 VRRP 虚拟路由器 IP相同的路由器。
Primary IP Address:真实路由器上被选出用于发送 VRRP advertisements 报文源地址的接口地址。

在 IPv4 网络中通常选择为接口主地址,在 IPv6 网络中通常选择为接口 link-local 地址。

Virtual Router Master:VRRP 路由器中被选举出来用于承载虚拟路由器角色的路由器。Master 路由器应当转发数据包 DMAC 为虚拟路由器的数据包,并响应虚拟路由器相关的 ARP/ND 报文。
Virtual Router Backup:VRRP 路由器中 Master 路由器的备选路由器。并且可以有多个。

在 RFC9568 中舍弃了 Master 路由器的概念,用以 ACTIVE 路由器替代。但保留了 Backup 路由器的相关概念。并且通常 Backup 路由器不转发数据包 DMAC 为虚拟路由器的数据包。
在这里插入图片描述vrrp vrid backup-forward 用于设置 Backup 路由器转发数据包 DMAC 为虚拟路由器的数据包。该功能主要用于防止 VRRP 状态切换过程中的流量中断问题,但同时有可能引入多包问题。

Drop Route:RFC9568 中新提出的概念。该路由用于防止 VRRP 状态切换中的流量微环。

状态机相关参数

virtual router IPv4_Addresses:虚拟路由器的 IPv4 地址。虚拟路由器可能有多个 IPv4 地址,参与选举的路由器应当相同。
virtual router IPv6_Addresses:虚拟路由器的 IPv6 地址。虚拟路由器可能有多个 IPv4 地址,参与选举的路由器应当相同。
Virtual_Router_MAC_Address:虚拟路由器的 MAC。在 RFC5798/RFC9568 中明确定义 VRRP advertisements 和 ARP/ND messages 的 SMAC 应当选择该 MAC。

IPv4 网络下取 00-00-5E-00-01-{VRID}IPv6 网络下取 00-00-5E-00-02-{VRID}
该 00-00-5E 及其组播 01-00-5E 形式的 OUI,由 IANA 向 IEEE 所注册使用。相关地址分配可查看IANA发布的IANA OUI Ethernet Numbers

Advertisement_Interval:VRRP advertisements 报文的发送间隔。VRRPv2 和 VRRPv3 都默认 1s。
Master_Adver_Interval:RFC5798/RFC9568 中明确定义由 Backup 路由器记录用于计算 Skew_Time 和 Master_Down_Interval。

在这里插入图片描述vrrp vrid timer advertise用于设置 VRRPv2 虚拟路由器的通告间隔。
在这里插入图片描述vrrp vrid timer advertise用于设置 VRRPv3 虚拟路由器的通告间隔。
在这里插入图片描述vrrp6 vrid timer advertise用于设置 VRRPv3 虚拟路由器的通告间隔。

Skew_Time:Master_Down 后的额外等待时间。

在 RFC2338/RFC3768 中该时间定义为:
( 256 − P r i o r i t y ) / 256 (256 - Priority) / 256 (256Priority)/256
在 RFC5798/RFC9568 中该时间定义为:
( ( 256 − p r i o r i t y ) ∗ M a s t e r _ A d v e r _ I n t e r v a l ) / 256 ((256 - priority) * Master\_Adver\_Interval) / 256 ((256priority)Master_Adver_Interval)/256

Master_Down_Interval:从 Backup 过渡到 Master/Active 状态的时间。

( 3 ∗ M a s t e r _ A d v e r _ I n t e r v a l ) + S k e w t i m e (3 * Master\_Adver\_Interval) + Skew_time (3Master_Adver_Interval)+Skewtime

Preempt_Mode/Accept_Mode:用于控制优先级较高的 Backup 路由器是否抢占优先级较低的 Master。默认抢占。RFC5798/RFC9568 中明确定义 Accept_Mode 用于控制是否响应发往虚拟路由器所在真实路由器的接口地址的报文。

在这里插入图片描述vrrp vrid preempt-mode 用于设置 vrrp 的抢占模式。

Master_Down_Timer:该定时器用于监听没有收到 VRRP ADVERTISEMENT 报文的时间。
Adver_Timer:该定时器用于触发 VRRP ADVERTISEMENT 报文的发送。

点击此处回到目录

1.2.VRRP报文格式

1.2.1.VRRP的包格式

VRRPv2 for IPv4:RFC2338/RFC3768
在这里插入图片描述在 RFC2338/RFC3768 中定义了相同格式的 VRRPv2 报文。

在这里插入图片描述VRRPv2 报文示例。

VRRPv3 for IPv4/IPv6:RFC5798/RFC9568
在这里插入图片描述在 RFC5798/RFC9568 中定义了相同格式的 VRRPv3 报文。其内容与 VRRPv2 格式基本相同,因此 VRRPv3 可以兼容 VRRPv2。

在这里插入图片描述VRRPv3 报文示例。

由于 VRRPv2 和 VRRPv3 格式基本相同,在此统一介绍各个字段含义
Version:4-bits,用于表示 VRRP 协议版本。取 2 时表示 VRRPv2,取 3 时表示 VRRPv3。

在这里插入图片描述vrrp version 用于设置 VRRP 的版本。

Type:4-bits,用于表示 VRRP 协议报文类型。目前 VRRPv2 和 VRRPv3 都只定义了一种 ADVERTISEMENT 报文,取值 1。
Virtual Rtr ID:8-bits,虚拟路由器 ID,用于区分所报告的虚拟路由器。取值 1-255。

在这里插入图片描述vrrp vrid 用于配置 VRID,该参数是 VRRP 选举相关参数之一

Priority:8-bits,用于表示发送 VRRP 虚拟路由器的优先级。Priority 越大,越优先。取值 1-255。

在这里插入图片描述vrrp vrid priority 用于配置特定虚拟路由器的优先级。VRID 取 0 时表示 VRRP Master/ACTIVE 主动退出 VRRP 选举,以便快速完成 VRRP 状态切换。VRID 取 255 时表示 IP 拥有者,IP 拥有者不参与 VRRP 选举直接过渡到 Master/ACTIVE 状态。该参数是 VRRP 选举相关参数之一

Count IPvX Addr:8-bits,用于表示后文携带 IP address 的个数。RFC5798/RFC9568 明确规定其值最小为 1,并忽略取值为 0 的 VRRP 通告报文。
Auth Type仅在 RFC2338/RFC3768 所定义的 VRRPv2 版本中存在。8-bits,用于表示 VRRP 所使用的认证类型。

RFC2338 仅提供了 VRRP 认证的三种模式:取 0 的不认证;取 1 的简单文本认证;取 2 的 IP 认证头。RFC3768 则只定义取 0 的不认证,实际上已取消了 VRRPv2 的认证。这是因为 VRRP 的认证并不能带来所预想的安全保护,并往往导致网络的多 Master 状态。
因此从 RFC3768 后不在定义 VRRP 的认证。在这里插入图片描述vrrp vrid authentication-mode 用于定义 VRRPv2 的认证模式。

rsvd仅在 RFC5798/RFC9568 所定义的 VRRPv3 版本中存在。4-bits,保留字段,要求置 0 并在接收时忽略该字段以便兼容之前版本。
Adver Int仅在 RFC2338/RFC3768 所定义的 VRRPv2 版本中存在。8-bits,VRRP ADVERTISEMENTS 通告间隔。取值 1-255,默认 1s。

在这里插入图片描述vrrp vrid timer advertise用于设置 VRRPv2 虚拟路由器的通告间隔。

Max Adver Int仅在 RFC5798/RFC9568 所定义的 VRRPv3 版本中存在。12-bits,VRRP ADVERTISEMENTS 通告间隔。取值 1-40,默认 1s。在 VRRPv3 中该字段单位为 100 centiseconds厘秒(1s)。

在这里插入图片描述vrrp vrid timer advertise用于设置 VRRPv3 虚拟路由器的通告间隔。由于仅占据 12-bits,也即 0-4095 因此取值 40s。
在这里插入图片描述vrrp6 vrid timer advertise用于设置 VRRPv3 虚拟路由器的通告间隔。由于仅占据 12-bits,也即 0-4095 因此取值 100-4095 centisecond。
自动换行
在最新的《RFC9568-1.1.Differences from RFC 5798 》中对该字段说明:
在这里插入图片描述应当检查该字段是否匹配。并在《RFC9568-7.1.Receiving VRRP Packets》中详细说明。
在这里插入图片描述当收到的 VRRP Advertisement 中该字段与本地不匹配时将有可能造成网络的不稳定。

Checksum:16-bits,用于校验整个 VRRP message 消息。
IPvX Address:不定长,用于携带一个或多个与虚拟路由器相关的 IP address 信息。

该字段为 VRRP 虚拟路由器的 IP address,并且参与路由器所填充的该字段应当在IP 数量和 IP address 上都保持一致。该参数是 VRRP 选举相关参数之一
在这里插入图片描述vrrp vrid virtual-ip 用于设置虚拟路由器的 ipv4 addres。
在这里插入图片描述vrrp vrid virtual-ip 用于设置虚拟路由器的 ipv6 addres。

Authentication Data仅在 RFC2338/RFC3768 所定义的 VRRPv2 版本中存在。认证数据信息。

1.2.2.VRRP的帧格式

除上述所介绍的 VRRP 包格式外,还应注意的是 VRRP 的 Ethernet Header 和 IP Header
SMAC:VRRP 通告报文的 SMAC 应使用协议规定 MAC。

IPv4 网络下取 00-00-5E-00-01-{VRID}IPv6 网络下取 00-00-5E-00-02-{VRID}。该 00-00-5E 及其组播 01-00-5E 形式的 OUI,由 IANA 向 IEEE 所注册使用。相关地址分配可查看IANA发布的IANA OUI Ethernet Numbers

DMAC:VRRP 通告报文为组播报文,因此其 DMAC 应由 DIP 映射而来。

IPv4 网络下固定取 01-00-5E-00-00-12IPv6 网络下固定取 33-33-00-00-00-12

SIP:协议规定 SIP 使用 primary IP Address 也即接口地址作为 VRRP 通告报文的源地址。

IPv4 网络下往往取接口主地址IPv6 网络下固定link-local地址

DIP:协议规定 VRRP 通告报文为组播报文。

IPv4 网络下固定取 224.0.0.18IPv6 网络下固定取 FF02:0:0:0:0:0:0:12

DSCP:协议未对 VRRP 报文做 QOS 规定,一般取 CS6。
TTL/Hop Limit:协议规定 VRRP 的 TTL/Hop Limit 必须取 255 以便将其控制在局域网范围。

在这里插入图片描述vrrp un-check ttl 用于取消 IPv4 网络下的 TTL 检查。
在这里插入图片描述vrrp6 un-check hop-limit 用于取消 IPv6 网络下的 hop-limit 检查。

Protocol Number:协议规定取 112。

点击此处回到目录

1.3.VRRP状态机切换

VRRP 主要定义了三种状态:Initialize、Backup 和 Master。在 RFC9568 中将之前三个版本中的 Master 状态重新定义为 Active,但基本内容相同。接下来进行详细介绍。

Initialize
在这里插入图片描述该图中需要解释的是:

  1. 优先级 255 不可设置。VRRP 路由器接口 IP 与 虚拟路由器 IP 相同者自动具有 255 优先级。
  2. Master/Active 路由器将周期性发送免费 ARP 以刷新表象。

在这里插入图片描述vrrp gratuitous-arp timeout 用于修改免费 arp 发送间隔。
Cisco 友商对应命令为:

vrrpinterface vlan10vrrp 1 periodic-arp-na interval 30$
$
  1. IPv6 网络下发送的 unsolicited ND Neighbor Advertisement 报文,应当将 R-bit 和 O-bit 置位,S-bit 清空。

在这里插入图片描述unsolicited ND Neighbor Advertisement 报文示例,应以虚拟 MAC 填充 Target Link-layer address Option。
并且由于 IPv6 虚拟路由器有全球单播地址和链路本地地址,因此会有两个 unsolicited ND Neighbor Advertisement 报文示例。

  1. Master_Adver_Interval 为 RFC5798/RFC9568 新定义,主要用于 Backup 路由器计算 Skew_Time 和 Master_Down_Interval。

自动换行
Backup和Master之间的切换
在这里插入图片描述该图中需要解释的是:

  1. Master_Down_Timer 触发其实意味者在一定时间内未收到来自 Master/Active 路由器的 ADVERTISEMENT 通告报文。
  2. 优先级为 0 的 ADVERTISEMENT 通告报文通常意味着 Master/Active 路由器用于主动退出 VRRP 选举。此时可缩短 Backup 路由器向 Master/Active 状态转变的时间。
  3. Master 路由器收到优先级等于自己且 primary IP Address 大于自己接口地址的ADVERTISEMENT 将向 Backup 状态转变。但实际上这一行为很难发生,因为 Backup 路由器会一直保持 Backup 状态不会发送 ADVERTISEMENT 报文。
  4. 图中未提及 VRRP 的抢占模式。实际在抢占模式下只要收到 ADVERTISEMENT 报文,就重置 Master_Down_Timer 定时器。因此不会触发 Backup 向 Master 的状态转变。
  5. 对于 IPv6 网络下,接口启动时涉及 IPv6 地址的 DAD 等过程。因此还将叠加其他过程。

点击此处回到目录

2.VRRP的实际应用

2.1.VRRP的典型配置

在这里插入图片描述此处以上图为例简单介绍下 IPv6 网络下 VRRPv3 的使用。

AR:
#sysname AR1
#
ipv6
#
interface GigabitEthernet0/0/0ipv6 enable ipv6 address 2001:DB8::1:1/64 ipv6 address FE80::1 link-localvrrp6 vrid 1 virtual-ip FE80::1:1 link-localvrrp6 vrid 1 virtual-ip 2001:DB8::1:FFFFvrrp6 vrid 1 priority 120vrrp6 vrid 1 preempt-mode timer delay 5vrrp6 vrid 1 timer advertise 200vrrp6 vrid 1 track interface GigabitEthernet0/0/1 reduced 50
#

此处需要说明的是:

  1. 由于 IPv6 网络下有 link-local 地址的要求。因此 VRRP 路由器都必须指定相同的全球单播地址和 link-local 地址。并且应当全球单播地址被包含于本地接口地址中。
  2. VRRP 可设置 track 联动端口。在上行链路中断后可及时改变优先级过渡到 Backup 状态来使得向外的路径及时收敛。除 track 联动端口外,还可 track bfd/nqa 甚至静态路由等方式来实现。
  3. VRRP 的抢占延时应当仅在 Master/Active 路由器上设置,以便防止回切影响网络收敛。
  4. 通常 VRRP Backup 路由器不响应发往虚拟路由器的数据包。但在某种情况下也可通过命令方式 (vrrp6 vrid backup-forward) 来使得 Backup 路由器转发数据流。
  5. 由于 VRRP 虚拟 IP 实际上为非真实 IP,因此 VRRPv3 在启动时不进行 DAD 的 IP 地址冲突检测。对于 IPv6 网络下直接发送针对全球单播地址和 link-local 地址的未经请求 ND 协议的 NA 报文 (R-bit 和 O-bit 置位,S-bit 不置位)。

VRRP相关查询命令在这里插入图片描述display vrrp6 interface 用于查看 VRRP 接口状态及其相关配置信息。
在这里插入图片描述display vrrp6 brief 用于查看 VRRPv3 相关状态。

点击此处回到目录

2.2.VRRP的其他应用

2.2.1.VRRP与路由协议

VRRP场景下的路由协议
直连路由:成为 Master/Active 路由器的 VRRP 路由器角色将生成一条虚地址对应的主机路由。

IGP路由:当 Master/Active 路由器虚地址所在的接口宣告进 OSPF/ISIS 进程时,会将虚地址对应的主机路由作为叶子路由引入 IGP 协议中。

在这里插入图片描述OSPF 的 datebase。
在这里插入图片描述ISIS 的 datebase。

BGP路由:BGP 仅在 network 或 重分布情况下才会引入该主机路由。

VRRP的admin-group管理组
VRRP 的 admin-group 管理组主要在设备上需要配置多个 VRRP 虚拟 IP 的场景下,用于减少网络中 VRRP 报文的发送且提高设备性能。

其基本原理在于,指定设备接口上的一个 VRRP 虚拟路由成为管理组通过 VRRP Advertisement 报文完成 VRRP 选举。其他 VRRP 虚拟路由通过 track VRRP admin-group,成为 VRRP 成员备份组。而 VRRP 成员备份组不发送 VRRP Advertisement 报文进行 VRRP 竞争选举而是直接继承 VRRP admin-group 的选举状态。

在此种状态下,所有 VRRP 路由器都必须在其 VRRP 虚拟路由上 track admin-group,以防止 VRRP 状态的不同步。

在这里插入图片描述vrrp vrid admin 用于指定某一 VRRP 虚拟路由成为 admin-group 管理组。
在这里插入图片描述vrrp vrid track admin-vrrp interface GE 1/0/0 vrid 用于 track 成为 VRRP 成员备份组。

2.2.2.单播VRRP

单播下的VRRP
对于某些在服务器上的运行 VRRP 协议会使用一种单播形式通告的 VRRP advertisements 报文。目前暂未发现有标准文档描述这种单播 VRRP,这里仅做相关说明。感兴趣者可查阅相关资料。

此处以keepalived 网站的 Keepalived Configuration Manual Page所提供资料进行介绍。

单播 VRRP 协议主要由 Keepalived 程序软件驱动。这是一款用 C 语言编写用于为 Linux 系统和基于 Linux 的基础设施提供简单的负载均衡和高可用性工具。负载均衡框架依赖于知名且广泛使用的 Linux Virtual Server (IPVS,Linux 虚拟服务器) 内核模块,提供第 4 层负载均衡。

服务器管理员通过 root 或其他用户 C 语言编写创建 /etc/keepalived/conf.d 文件。

服务器管理员通过 root 或其他用户在 /etc/keepalived/keepalived.conf 文件中创建基本的配置文件,并在 /run/keepalived 路径下创建命名空间。如果有多个 keepalived 进程使用相同的 namespace,则在 /run/keepalived 以 pid 文件进行区分。

keepalived.conf文件结构
keepalived.conf 文件主要有 4 种顶级结构:GLOBAL CONFIGURATION,BFD CONFIGURATION,VRRPD CONFIGURATION 和 LVS CONFIGURATION。每种顶级结构又包含了多种子模块。

在这里插入图片描述keepalived.conf 文件主要包含上图所示的结构。

1@GLOBAL CONFIGURATION
1@Global definitions:主要包含一些全局条件下定义的内容。例如 net_namespace全局守护程序,instance实例名(多实例间的区分),linkbeat_use_polling轮询故障检测接口,global_defs全局配置模块等。

global_defs全局配置模块包含协议运行的一些必要参数信息。这里仅介绍部分内容。

global_defs{#一些必要的程序名字。process_name NAMEvrrp_process_name NAMEchecker_process_name NAMEbfd_process_name NAME#字符串格式的文本以标识设备。router_id <STRING>#遵循 RFC5798 IANA 取 224.0.0.18。vrrp_mcast_group4 224.0.0.18。#遵循 RFC5798 IANA 取 ff02::12。vrrp_mcast_group6 ff02::12#静态地址的默认接口。default_interface p33p1.3#过渡到MASTER后发送第二组免费ARP的延迟时间,默认5秒。vrrp_garp_master_delay 10#VRRP版本,默认取2。vrrp_version 3#严格遵循协议规定的VRRP要求。vrrp_strict#指定上报的SNMP服务器信息。snmp_socket udp:1.2.3.4:705#使能SNMP处理KEEPALIVED MIBenable_snmp_vrrp#使能SNMP trapenable_traps}

1@Linkbeat interfaces:指定允许哪些接口应该通过 MII、Ethtool 或 ioctl status 使用轮询,而不是依赖 netlink 状态更新。

1@Static track groups:允许 VRRP 实例 track 包括静态地址、静态路由和规则的方式来过渡到错误状态。

2@BFD CONFIGURATION:基于 RFC5880 (双向转发检测) 原理实现的快速检测。当配置为在 2 个 keepalived 实例之间工作,但在 VRRP 实例的主/备份对之间使用未加权 track_bfds 意味着 VRRP 实例只有在两个 VRRP 实例都运行时才能启动,这在某种程度上违背了 VRRP 的目的。

3@VRRPD CONFIGURATION
3@VRRP script(s):定期执行的监控代码。
3@VRRP synchronization group(s):VRRP 同步组是 VRRP 协议的扩展。主要目标是定义一组 VRRP 实例以一起同步,以便一个实例的转换将反映给其他组成员。
3@VRRP instance(s):VRRP 实例是 VRRP 协议的关键功能。每个 VRRP 实例都与一个唯一的接口相关。

VRRP instance <STRING>{#初始VRRP状态。state MASTER#与VRRP实例绑定的接口。interface eth0#VRRP的虚拟MAC。use_vmac [<VMAC_INTERFACE_NAME>] [MAC_ADDRESS]。#遵循 RFC5798 IANA 取 ff02::12。use_vmac_addr#从基本接口而不是 VMAC 接口发送/接收 VRRP 消息。单播peer该值必须设置。vmac_xmit_base#多播或单播 vrrp 数据包的src_addr。默认 IP 是接口上的主 IP。mcast_src_ipunicast_src_ip <IPADDR>#VRRP版本,默认取2。vrrp_version 3#在单播模式下,检查VRRP 数据包的源地址是否为本地对等体之一。check_unicast_src#使用单播方式通告VRRP报文。unicast_peer {<IPADDR> [min_ttl {0..255}] [max_ttl {0..255}]...}#Bacup向Master转变的监听间隔次数。默认3次。down_timer_adverts [1-100]#VRRP优先级。priority 100#VRRP通告间隔。advert_int 1#VRRP的虚拟IP。virtual_ipaddress{192.168.200.17/24 dev eth1192.168.200.18/24 dev eth2 label eth2:1}#过渡到Master时添加的路由。过渡到Backup时删除virtual_routes {src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1192.168.110.0/24 via 192.168.200.254 dev eth1192.168.111.0/24 dev eth2 no_track}#使能VRRPv3的Accept Modeaccept#使能抢占模式preempt#是否开启全局下的VRRP严格检查。单播模式不应检查。strict_mode [on|off|true|false|yes|no]}

4@VRRPD CONFIGURATION:主要包含Virtual server group(s) 和Virtual server(s)子模块

点击此处回到目录

更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443744.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt5.15.2静态编译 MinGW with static OpenSSL

如果想用VS2017编译,可参考:Qt5.15.2静态编译 VS2017 with static OpenSSL 一.环境 系统:Windows 10 专业版 64位 编译器:MinGW 8.1.0 第三方工具:perl,ruby和python PS:经验证,用MinGW 12.1.0来编译Qt5.15.2会报错 我用Phthon 2.7.18虽然可以编过,但是强烈建议Pyth…

CSS响应式布局

CSS 响应式布局也称自适应布局&#xff0c;是 Ethan Marcotte 在 2010 年 5 月份提出的一个概念&#xff0c;简单来讲就是一个网站能够兼容多个不同的终端&#xff08;设备&#xff09;&#xff0c;而不是为每个终端做一个特定的版本。这个概念是为解决移动端浏览网页而诞生的。…

可以让你干一辈子的10大项目,想赚钱的别错过!

1、卖项目 很多想要创业、或者从事自由职业的小伙伴,都经常会因为找不到合适的项目而苦恼,所以那些即靠谱又赚钱的好项目,一直都是人们的刚性需求,而且还是可持续的需求,倘若谁能解决这个问题,那么自然就可以赚到大钱,毕竟现在原因付费买项目的大有人在! 2、卖技术 掌…

win10电脑导航栏经常卡死改善方法

我成功使用的一个方法&#xff1a;关闭资讯&#xff08;需要正版的win10&#xff0c;如果是盗版需要激活&#xff09; 有两个入口 1.在任务栏上点击右键&#xff0c;选择“资讯和兴趣”&#xff0c;然后关闭它。这可能会解决任务栏卡顿的问题 在Windows 10中&#xff0c;任务栏…

提高ROI:低代码平台如何助力企业实现成本效益最大化

引言&#xff1a;成本效益与ROI的重要性 在当今竞争异常激烈的商业环境中&#xff0c;企业面临着前所未有的挑战。如何在有限的资源下&#xff0c;最大化投资回报率&#xff08;ROI&#xff09;&#xff0c;已经成为企业管理者不可忽视的关键课题。ROI不仅仅是衡量投资回报的指…

战略会牺牲眼前利益

战略需要解决能力和目标之间的差异&#xff0c;必然要投入资源&#xff0c;牺牲眼前的利益&#xff0c;目的是获取更长远更全面的利益和价值。 很多基层员工&#xff0c;单独从企业利润角度来讲&#xff0c;是排斥战略的&#xff0c;因为战略投入资源会影响分红、影响奖金。 …

考研笔试/上机经典编程题集合(持续更新并完善解题思路)

目录 一、程序设计经典编程题(C语言实现)1.1 判断一个字符串是否由另一个字符串旋转得到1.2 字符串左旋1.3 求最大公约数以及最小公倍数 二、力扣2.1 面试题 17.04. 消失的数字 三、牛客网3.1 OR62 倒置字符串 一、程序设计经典编程题(C语言实现) 1.1 判断一个字符串是否由另一…

C++ | Leetcode C++题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:int findSubstringInWraproundString(string p) {vector<int> dp(26);int k 0;for (int i 0; i < p.length(); i) {if (i && (p[i] - p[i - 1] 26) % 26 1) { // 字符之差为 1 或 -25k;} els…

“Flash闪存”基础 及 “SD NAND Flash”产品的测试

本篇除了对flash闪存进行简单介绍外&#xff0c;另给读者推荐一种我本人也在用的小容量闪存。 自带坏块管理的SD NAND Flash&#xff08;贴片式TF卡&#xff09;&#xff0c;尺寸小巧&#xff0c;简单易用&#xff0c;兼容性强&#xff0c;稳定可靠&#xff0c;标准SDIO接口&a…

Elasticsearch基础_5.ES聚合功能

文章目录 一、数据聚合1.1、桶聚合1.1.1、单维度桶聚合1.1.2、聚合结果排序1.1.3、限定聚合范围 1.2、Metric聚合 二、聚合总结 本文只记录ES聚合基本用法&#xff0c;后续有更复杂的需求可以查看相关书籍&#xff0c;如《Elasticsearch搜索引擎构建入门与实战》 一、数据聚合…

Mybatis-plus的基础用法

文章目录 1. 核心功能1.1 配置与编写规则1.2 条件构造器1.3 自定义SQL1.4 IService接口1.4.1 Lambda方法1.4.2 批量新增 1.5 分页查询 2. 拓展功能2.1 代码生成器2.2 DB静态工具2.3 逻辑删除2.4 枚举处理器 参考 1. 核心功能 1.1 配置与编写规则 Maven依赖&#xff1a; <…

基于IOU匹配的DeepSort目标跟踪与匈牙利算法解析

在多目标跟踪任务中&#xff0c;如何将检测框与已有轨迹进行关联&#xff0c;进而维持目标的连续跟踪&#xff0c;是一个关键问题。DeepSort&#xff08;Deep Simple Online and Realtime Tracking&#xff09;是一种常用的多目标跟踪算法&#xff0c;它结合了IOU&#xff08;交…

用GPT-4o打造LLM+OS(10+实用技能),代码开源,指令曝光,科技演示惊艳全场!

目录 前言 LLM操作系统能力概况&#xff08;phidata中前5个已经实现&#xff09;&#xff1a; 可以读取/生成文本 拥有比任何单个人类更全面的知识 可以浏览互联网 可以使用现有的软件基础设施&#xff08;计算器、Python、鼠标/键盘&#xff09; 可以与其他LLMs通信 可…

无人机之飞控仿真技术篇

一、无人机飞控仿真技术的定义 无人机飞控仿真技术主要是指飞行控制系统仿真&#xff0c;它是以无人机的运动情况为研究对象&#xff0c;面向对象的复杂系统仿真。通过该技术&#xff0c;可以模拟无人机的飞行过程&#xff0c;评估飞行控制系统的性能&#xff0c;优化飞行参数&…

快速区分 GPT-3.5 与 GPT-4

问&#xff1a;鲁迅为什么暴打周树人&#xff1f; GPT3.5回答 各种稀奇古怪的理由 GPT4回答 正确区分鲁迅和周树人是同一个人 国内GPT入口 https://ai-to.cn/url/?ulihaimao

Java中注解与反射的详细介绍

注解和反射 一、注解 什么是注解&#xff1f;Annotation Override &#xff1a;表示一个方法声明打算重写超类的另一个方法声明Deprecated&#xff1a;表示不鼓励程序员使用这样的元素&#xff0c;&#xff08;此注释可以用于修饰方法&#xff0c;属性&#xff0c;类&#xf…

如何利用phpstudy创建mysql数据库

phpStudy诞生于2007年&#xff0c;是一款老牌知名的PHP开发集成环境工具&#xff0c;产品历经多次迭代升级&#xff0c;目前有phpStudy经典版、phpStudy V8&#xff08;2019版&#xff09;等等&#xff0c;利用phpstudy可以快速搭建一个mysql环境&#xff0c;接下来我们就开始吧…

[含文档+PPT+源码等]精品基于Python实现的车牌识别系统

基于Python实现的车牌识别系统背景&#xff0c;可以从以下几个方面进行详细阐述&#xff1a; 一、技术开发背景 车牌识别系统是一种基于计算机视觉技术实现的智能交通系统&#xff0c;它通过捕捉车辆的图像&#xff0c;并自动提取和识别车牌号码&#xff0c;从而实现对车辆的…

maven指定模块快速打包idea插件Quick Maven Package

问题背景描述 在实际开发项目中&#xff0c;我们的maven项目结构可能不是单一maven项目结构&#xff0c;项目一般会用parent方式将各个项目进行规范&#xff1b; 随着组件的数量增加&#xff0c;就会引入一个问题&#xff1a;我们只想打包某一个修改后的组件A时就变得很不方便…

selenium有多个frame页时的操作方法(5)

之前文章我们提到&#xff0c;在webdriver.WebDriver类有一个switch_to方法&#xff0c;通过switch_to.frame()可以切换到不同的frame页然后才再定位某个元素做一些输入/点击等操作。 比如下面这个测试网站有2个frame页&#xff1a;http://www.sahitest.com/demo/framesTest.h…