ADC

配置动态路由

启用动态路由协议后,相应的路由过程会监视路由更新并通告路由。路由协议使上游路由器能够使用等价多路径 (ECMP) 技术对流量进行负载均衡,将流量分配到两个独立的 NetScaler 设备上托管的相同虚拟服务器。NetScaler 设备上的动态路由使用三个路由表。在高可用性设置中,辅助设备上的路由表镜像主设备上的路由表。

有关动态路由协议上的命令参考指南和不支持的命令,请参阅 动态路由协议命令参考指南和不支持的命令

NetScaler 支持以下协议:

  • 路由信息协议 (RIP) 版本 2
  • 开放最短路径优先 (OSPF) 版本 2
  • 边界网关协议 (BGP)
  • 适用于 IPv6 的下一代路由信息协议 (RIPng)
  • 为 IPv6 开放最短路径优先 (OSPF) 版本 3
  • ISIS 协议

您可以同时启用多个协议。

NetScaler 中的路由表

在 NetScaler 设备中,NetScaler 内核路由表、FreeBSD 内核路由表和 NSM FIB 路由表都包含一组不同的路由,用途也不同。它们使用 UNIX 路由套接字相互通信。路由更新不会自动从一个路由表传播到另一个路由表。必须为每个路由表配置路由更新的传播。

NS 内核路由表

NS 内核路由表包含与 NSIP 以及每个 SNIP 和 MIP 对应的子网路由。通常,NS 内核路由表中不存在与 VIP 对应的路由。唯一的例外是使用 add ns ip 命令添加的 VIP 并配置了 255.255.255 以外的子网掩码。如果有多个 IP 地址属于同一个子网,则它们将被抽象为单个子网路由。此外,此表包含通往环回网络 (127.0.0.0) 的路由以及通过 CLI (CLI) 添加的任何静态路由。此表中的条目由 NetScaler 在数据包转发中使用。在 CLI 中,可以使用 show route 命令对其进行检查。

FreeBSD 路由表

FreeBSD 路由表的唯一目的是促进管理流量(telnet、ssh 等)的启动和终止。在 NetScaler 设备中,这些应用程序与 FreeBSD 紧密耦合,FreeBSD 必须获得必要的信息来处理进出这些应用程序的流量。此路由表包含通往 NSIP 子网的路由和默认路由。此外,当 NetScaler 与本地网络上的主机建立连接时,FreeBSD 会添加 wasCloned (W) 类型的路由。由于此路由表中的条目具有高度专业化的实用性,因此来自 NS 内核和 NSM FIB 路由表的所有其他路由更新都会绕过 FreeBSD 路由表。请勿使用 route 命令对其进行修改。可以使用任何 UNIX shell 中的 netstat 命令来检查 FreeBSD 路由表。

网络服务模块 (NSM) FIB

NSM FIB 路由表包含由动态路由协议分配给网络中对等体的可通告路由。它可能包含:

  • 连接的路线。可以从 NetScaler 直接访问的 IP 子网。通常,与启用路由协议的 NSIP 子网和子网对应的路由作为连接路由存在于 NSM FIB 中。
  • 内核路由。启用-hostRoute 选项的所有 VIP 地址如果满足所需的 RHI 级别,则将作为内核路由存在于 NSM FIB 中。此外,NSM FIB 包含在 CLI 上配置的所有启用了-通告选项的静态路由。或者,如果 NetScaler 在静态路由通告 (SRADV) 模式下运行,则在 CLI 上配置的所有静态路由都存在于 NSM FIB 中。这些静态路由在 NSM FIB 中被标记为内核路由,因为它们实际上属于 NS 内核路由表。
  • 静态路由。通常,在 VTYSH 中配置的任何静态路由都存在于 NSM FIB 中。如果修改了协议的管理距离,情况可能并非总是如此。需要注意的重要一点是,这些路由永远无法进入 NS 内核路由表。
  • 学会了路线。如果 NetScaler 配置为动态学习路由,则 NSM FIB 包含由各种动态路由协议获知的路由。但是,OSPF 获知的路由需要特殊处理。只有在为 OSPF 进程启用了 fib-install 选项时,它们才会下载到 FIB。这可以从 VTYSH 中的路由器配置视图中完成。

高可用性设置中的动态路由

在高可用性设置中,主节点运行路由过程并将路由表更新传播到辅助节点。辅助节点的路由表镜像主节点上的路由表。

不间断转发

故障转移后,辅助节点需要一些时间来启动协议、了解路由并更新其路由表。但这不会影响路由,因为辅助节点上的路由表与主节点上的路由表相同。这种操作模式被称为不间断转发。

黑洞避让机制

故障转移后,新的主节点将其所有 VIP 路由注入上游路由器。但是,该路由器会将旧主节点的路由保留 180 秒。由于路由器不知道故障转移,因此它会尝试对两个节点之间的流量进行负载平衡。在旧路由到期前的 180 秒内,路由器将一半的流量发送到不活动的旧主节点,这实际上是一个黑洞。

为了防止这种情况,新的主节点在注入路由时,为其分配的指标略低于旧主节点指定的指标。

用于配置动态路由的接口

要配置动态路由,您可以使用 GUI 或命令行界面。NetScaler 支持两个独立的命令行接口:CLI 和虚拟电传外壳 (VTYSH)。CLI 是设备的本机 shell。VTYSH 被 zebOS 曝光了。NetScaler 路由套件基于 GNU Zebra 的商业版 zeboS。

注意:

Citrix 建议您对所有命令使用 VTYSH,但只能在 CLI 上配置的命令除外。CLI 的使用通常应限于启用路由协议、配置主机路由通告和添加用于数据包转发的静态路由的命令。

动态路由协议命令参考指南和不受支持的命令

下表列出了各种动态路由协议的命令参考指南链接,以及 NetScaler 设备上不支持的命令: 动态路由协议参考指南和不支持的命令。

配置动态路由