第 2 层和第 3 层 VRRP 有一项共同的限制,即必须静态配置第 2 层和第 3 层 VRRP 虚拟 IP 地址。您无法使用针对 IP 地址的两个现有自动配置工具来自动配置 VRRP 虚拟 IP 地址:in.ndpd 用于 IPv6 自动配置,dhcpagent 用于动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 配置。此外,第 2 层和第 3 层 VRRP 还有特定限制。
第 2 层 VRRP 功能具有以下限制:
在专用 IP 区域中创建任何 VRRP 路由器时,都将自动启用 VRRP 服务 svc:/network/vrrp/default。VRRP 服务管理该特定区域的 VRRP 路由器。但是,对专用 IP 区域的支持限制如下:
由于无法在非全局区域中创建虚拟网络接口卡 (Virtual Network Interface Card, VNIC),因此您必须首先在全局区域中创建 VRRP VNIC。随后将 VNIC 分配给 VRRP 路由器所在的非全局区域。然后,您可以使用 vrrpadm 命令在非全局区域中创建 VRRP 路由器。
在单个 Oracle Solaris 系统上,无法在不同区域中创建两个 VRRP 路由器来参与同一虚拟路由器。Oracle Solaris 不允许您创建两个具有相同介质访问控制 (media access control, MAC) 地址的 VNIC。
L2 VRRP 服务无法在 IP 网络多路径 (IP network multipathing, IPMP) 接口上工作。VRRP 需要特定的 VRRP MAC 地址,但 IPMP 完全在 IP 层中工作。有关 IPMP 的信息,请参见在 Oracle Solaris 11.2 中管理 TCP/IP 网络、IPMP 和 IP 隧道 中的第 2 章 关于 IPMP 管理。
VRRP 可在中继或 DLMP 聚合模式下用于链路聚合。有关聚合的更多信息,请参见在 Oracle Solaris 11.2 中管理网络数据链路 中的第 2 章 使用链路聚合配置高可用性。
L2 VRRP 服务无法在基于 InfiniBand 的 IP (IP over Infiniband, IPoIB) 接口上工作。
L2 VRRP 不支持基于 InfiniBand 的以太网 (Ethernet over InfiniBand, EoIB) 接口。由于每个 L2 VRRP 路由器都与唯一的虚拟 MAC 地址关联,因此参与同一虚拟路由器的 VRRP 路由器需要同时使用相同的虚拟 MAC 地址,而 EoIB 接口不支持该功能。L3 VRRP 克服了这一限制,因为它在存在于同一虚拟路由器上的所有 VRRP 路由器之间使用不同的 MAC 地址。
在主路由器选择期间,使用无故 ARP 或 NDP 消息可能会导致故障转移时间较长。
当主路由器的选择发生更改时,L3 VRRP 将使用无故 ARP 或 NDP 消息通告新的 L2 或 L3 映射。使用无故 ARP 或 NDP 消息的这一附加要求可能会导致故障转移时间较长。在某些情况下,如果通告的所有无故 ARP 或 NDP 消息都已丢失,则主机可能需要更多时间来接收刷新的 ARP 或 NDP 项。因此,将包发送到新主路由器可能会延迟。
使用 ICMP 重定向时无法确定目标 MAC 地址,因为同一目标 MAC 地址由多个路由器共享。
在不对称的网络拓扑中的一组路由器之间使用 VRRP 时,可以使用 ICMP 重定向。ICMPv4 重定向或 ICMPv6 重定向的 IPv4 或 IPv6 源地址必须是终端主机在做出下一中继站路由决定时使用的地址。
当 L3 VRRP 路由器需要使用 ICMP 重定向时,L3 VRRP 路由器会检查需要重定向的包的目标 MAC 地址(VRRP 虚拟 MAC 地址)。由于同一目标 MAC 地址由在同一接口上创建的多个路由器共享,因此 L3 VRRP 路由器无法确定目标 MAC 地址。因此,在使用 L3 VRRP 路由器时禁用 ICMP 重定向可能很有用。您可以使用 send_redirects 公共 IPv4 和 IPv6 协议属性禁用 ICMP 重定向,如下所示:
# ipadm set-prop -m ipv4 -p send_redirects=off
无法使用 in.ndpd 或 DHCP 自动配置 VRRP 虚拟 IP 地址。