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

news2024/10/5 7:06:55

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

因此本文将在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 友商对应命令为:

vrrp
 interface vlan10
   vrrp 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/0
 ipv6 enable 
 ipv6 address 2001:DB8::1:1/64 
 ipv6 address FE80::1 link-local
 vrrp6 vrid 1 virtual-ip FE80::1:1 link-local
 vrrp6 vrid 1 virtual-ip 2001:DB8::1:FFFF
 vrrp6 vrid 1 priority 120
 vrrp6 vrid 1 preempt-mode timer delay 5
 vrrp6 vrid 1 timer advertise 200
 vrrp6 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 NAME
   vrrp_process_name NAME
   checker_process_name NAME
   bfd_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 MIB
   enable_snmp_vrrp
   #使能SNMP trap
   enable_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_ip
   unicast_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 eth1
       192.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 eth1
       192.168.110.0/24 via 192.168.200.254 dev eth1
       192.168.111.0/24 dev eth2 no_track
   }
   #使能VRRPv3的Accept Mode
   accept
   #使能抢占模式
   preempt
   #是否开启全局下的VRRP严格检查。单播模式不应检查。
   strict_mode [on|off|true|false|yes|no]
   }

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

点击此处回到目录

更新

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【python实操】python小程序之函数的方法和赋值的区别

引言 python小程序之函数的方法和赋值 文章目录 引言一、函数的方法和赋值1.1 题目1.2 代码1.2.1 append方法1.2.2 赋值 1.3 代码解释1.3.1 append方法1.3.2 赋值 二、思考2.1 append方法和赋值的区别2.1.1 append方法2.1.2 赋值操作2.1.3 总结 一、函数的方法和赋值 1.1 题目…

通过freepbx搭建小型电话系统的过程

领导说公司的客服电话需要实现语音导航和非工作时间自动接听播放语音提示的功能。任务自然落到了伟大的程序员的头上&#xff0c;本着为公司节约成本原则遂百度了一番&#xff0c;找到了asterisk 和freeswitch两个比较流行的电话系统。经过对比和考虑公司的情况选择了asterisk系…

STM32 通用定时器

一、概述 STM32内部集成了多个定时/计数器&#xff0c;根据型号不同&#xff0c;STM32系列芯片最多包含8个定时/计数器。其中&#xff0c;TIM6、TIM7为基本定时器&#xff0c;TIM2~TIM5为通用定时器&#xff0c;TIM1、TIM8为高级控制定时器。 1.定时器的类型 基本定时器通用定…

C/C++ 中的未定义行为(Undefined Behavior, UB)

0. 简介 在 C/C 编程中&#xff0c;理解未定义行为&#xff08;UB&#xff09;及其相关概念至关重要。本文将对未定义行为进行详细解析&#xff0c;并通过实例展示其影响与处理方法。 1. 概念辨析 在 C/C 中&#xff0c;未定义行为容易与以下两个概念混淆&#xff1a; 1.1 …

【Spring】Spring MVC的项目准备和连接建立

文章目录 1. 什么是 Spring Web MVC1.1 MVC 定义1.2 什么是 Spring MVC 2. 学习 Spring MVC2.1 项目准备2.2 建立连接 1. 什么是 Spring Web MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从已开是就包含在 Spring 框架中。它的正式名称“Spring We…

【pytorch】张量求导

笔者看到了这篇文章&#xff0c;可以很好的解释张量的求导问题&#xff1a; 看到了上面这张图&#xff0c;可以说很好的表示了前向和反向的过程了。 补充几个细节 之前看李沐的d2l&#xff0c;一直不懂为什么矩阵计算时的一些奇奇怪怪的规定&#xff0c;比如为什么一个行向量…

github项目——gpt-pilot自动创建应用

今天扯一扯在github上看到的一个项目gpt-pilot&#xff0c;声称“首个AI程序员”。本来打算玩一下&#xff0c;结果需要配置大语言模型的API&#xff0c;并且只支持OpenAI和claude&#xff08;Qwen呢&#xff09;。有没有玩过的老哥说一下好不好用&#xff01;&#xff01;(对了…

【Postman】接口测试工具使用

干就完啦 Postman发送get请求案例1&#xff1a; Postman发送post请求案例2 Postman发送其他请求 学习目标&#xff1a;能够使用Postman发送get/post/put/delete请求并获取响应结果 Postman发送get请求 首先postman是一款接口调试工具&#xff0c;支持win&#xff0c;mac以及l…

Python | Leetcode Python题解之第456题132模式

题目&#xff1a; 题解&#xff1a; class Solution:def find132pattern(self, nums: List[int]) -> bool:candidate_i, candidate_j [-nums[0]], [-nums[0]]for v in nums[1:]:idx_i bisect.bisect_right(candidate_i, -v)idx_j bisect.bisect_left(candidate_j, -v)if…

Pandas -----------------------基础知识(六)

目录 数据类型 查看类型 类型转换 无法转换的值返回NaN 无法转换的值返回原值 datetime类型 datetime类型数据列作为df索引 Python中的timedelta类型 Pandas中的timedelta类型 pd.to_timedelta函数转换timedelta类型 timedelta类型数据作为df索引 分组groupby 分箱…

开发环境简单介绍

目录 开发环境keil的安装和使用 keil的介绍 keil的安装 keil的简单使用 STC-ISP的安装 STC-ISP简单介绍 开发环境测试 总结 开发环境keil的安装和使用 keil的介绍 Keil uVision5是一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于对嵌入式系统中的微控制器…

vue-scrollto实现页面组件锚点定位

文章目录 前言背景操作指南安装及配置步骤vue组件中使用 参考文章 前言 博主介绍&#xff1a;✌目前全网粉丝3W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容&#xff1a;Java后端、大数据…

Java | Leetcode Java题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; class Solution {public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {Map<Integer, Integer> countAB new HashMap<Integer, Integer>();for (int u : A) {for (int v : B) {countAB.put(u v, countAB.getOrDefa…

多模态—文字生成图片

DALL-E是一个用于文字生成图片的模型&#xff0c;这也是一个很好思路的模型。该模型的训练分为两个阶段&#xff1a; 第一阶段&#xff1a;图片经过编码器编码为图片向量&#xff0c;当然我们应该注意这个过程存在无损压缩&#xff08;图片假设200*200&#xff0c;如果用one-h…

VBA中类的解读及应用第十六讲:让文本框在激活时改变颜色(中)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。 类&#xff0c;是非常抽象的&#xff0c;更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

数据链路层(以太网简介)

一.以太网数据帧结构&#xff1a; 目的地址&#xff0c;源地址&#xff0c;类型这三个被称为帧头&#xff0c;数据则被称为载荷&#xff0c;CRC则被称为帧尾&#xff08;校验和&#xff09; 二.数据帧结构分析 1.目的地址和源地址 i.地址解释 这两个地址指的是mac地址&#x…

【AIGC】2022-NIPS-视频扩散模型

2022-NIPS-Video Diffusion Models 视频扩散模型摘要1. 引言2. 背景3. 视频扩散模型3.1. 重建引导采样以改进条件生成 4. 实验4.1. 无条件视频建模4.2. 视频预测4.3. 文本条件视频生成4.3.1 视频与图像建模的联合训练4.3.2 无分类器指导的效果4.3.3 更长序列的自回归视频扩展 5…

数通 2

一 网络层 数据传输中最大支持1518字节&#xff0c;所以超过这个一次传不过去&#xff0c;就要分开传&#xff0c;就像快递标记1/2, 2/2 。说明你有两包 下图例子解释了 identification 用于标识一台设备发送的数据 片偏移&#xff0c;就是 你 好 吗 三个分片谁先到达不一定&…

C语言 | Leetcode C语言题解之第457题环形数组是否存在循环

题目&#xff1a; 题解&#xff1a; int next(int* nums, int numsSize, int cur) {return ((cur nums[cur]) % numsSize numsSize) % numsSize; // 保证返回值在 [0,n) 中 }bool circularArrayLoop(int* nums, int numsSize) {for (int i 0; i < numsSize; i) {if (!n…

vue-live2d看板娘集成方案设计使用教程

文章目录 前言v1.1.x版本&#xff1a;vue集成看板娘&#xff08;暂不使用&#xff0c;在v1.2.x已替换&#xff09;集成看板娘实现看板娘拖拽效果方案资源备份存储 当前最新调研&#xff1a;2024.10.2开源方案1&#xff1a;OhMyLive2D&#xff08;推荐&#xff09;开源方案2&…