ADC

Citrix ADC 设备网络和 VLAN 最佳实践

Citrix ADC 设备使用 VLAN 确定必须为哪个流量使用哪个接口。此外,Citrix ADC 设备不参与生成树。如果没有正确的 VLAN 配置,Citrix ADC 设备将无法确定要使用哪个接口,它的功能与交换机或路由器更像 HUB。换句话说,Citrix ADC 设备可以为每个会话使用所有接口。

VLAN 配置错误的症状

VLAN 配置错误问题可能以多种形式表现出来,包括性能问题、无法建立连接、随机断开的会话,以及在严重情况下,网络中断似乎与 Citrix ADC 设备本身无关。Citrix ADC 设备还可能报告 MAC 移动、静音接口和/或管理接口传输或接收缓冲区溢出,具体取决于与网络交互的确切性质。

MAC 移动(计数器 nic_tot_bdg_mac_moved):此问题表明 Citrix ADC 设备正在使用多个接口与同一设备(MAC 地址)进行通信,因为它无法正确确定要使用的接口。

静音接口(计数器 nic_err_bdg_muted): 此问题表示 Citrix ADC 设备已检测到由于 VLAN 配置问题而创建路由循环,因此它已关闭一个或多个有问题的接口以防止网络中断。

口缓冲区溢出,通常是指管理接口(计数器 nic_err_tx_overflow):如果通过管理接口传输过多的流量,可能会导致此问题。Citrix ADC 设备上的管理接口不能用于处理大量流量,这可能是因为网络和 VLAN 配置错误而导致 Citrix ADC 设备使用管理接口处理生产数据流量。这通常是因为 Citrix ADC 设备无法区分 NSIP (NSVLAN) 的 VLAN/子网上的流量和常规生产流量。强烈建议 NSIP 位于与任何生产设备(如工作站和服务器)分开的 VLAN 和子网上。

孤立 ACK(计数器 tcp_err_orphan_ack):此问题表明 Citrix ADC 设备收到了它不期望的 ACK 数据包,通常在不同于 ACK 数据流源自的接口上。出现这种情况的原因可能是 VLAN 配置错误,其中 Citrix ADC 设备在不同的接口上传输,而不是目标设备通常用于与 Citrix ADC 设备进行通信的接口(通常与 MAC 移动结合使用)

高速率的再传输或再传输给出(计数器:tcp_err_retransmit_giveups、tcp_err_7th_retransmit、各种其他重传输计数器):Citrix ADC 设备尝试重新传输 TCP 数据包总共 7 次,然后再放弃并终止连接。虽然这种情况可能是由网络条件引起的,但通常是由于 VLAN 和接口配置错误而发生的。

高可用性分裂大脑:分裂大脑是两个高可用性节点都认为它们是主要的条件,从而导致 IP 地址重复并丢失 Citrix ADC 设备功能。当两个高可用性节点无法在任何接口上使用 NSIP 使用 UDP 端口 3003 上的高可用性检测信号与每个其他通信时,会导致这种情况。这通常是由于 VLAN 配置错误导致的,其中 Citrix ADC 设备接口上的本机 VLAN 在 Citrix ADC 设备之间没有连接。

VLAN 和网络配置的最佳实践

  1. 每个子网必须与 VLAN 关联。

  2. 多个子网可以与同一 VLAN 关联(取决于您的网络设计)。

  3. 每个 VLAN 只能关联到一个接口(为了本次讨论的目的,LA 通道算作单个接口)。

  4. 如果您需要多个子网与接口关联,则必须对子网进行标记。

  5. 与普遍的看法相反,Citrix ADC 设备上的基于 Mac 的转发 (MBF) 功能不是为了缓解此类问题而设计的。MBF 主要用于 Citrix ADC 设备的 DSR(直接服务器返回)模式,该模式在大多数环境中很少使用(它旨在允许流量故意绕过来自后端服务器的返回路径上的 Citrix ADC 设备)。MBF 可能会隐藏 VLAN 问题在某些情况下,但不应该放心解决这种类型的问题。

  6. Citrix ADC 设备上的每个接口都需要本机 VLAN(与思科不同,其中本机 VLAN 是可选的),尽管可以使用接口上的 TagAll 设置,以免未标记的流量留下问题的接口。

  7. 如果需要您的网络设计,本机 VLAN 可以标记(这是接口的 TagAll 选项)。

  8. Citrix ADC 设备 NSIP 子网的 VLAN 是一种特殊情况。这称为 NSVLAN。概念相同,但配置该概念的命令不同,对 NSVLAN 的更改需要重新启动 Citrix ADC 设备才能生效。如果您尝试将 VLAN 绑定到与 NSIP 共享相同子网的 SNIP,则会出现“不允许操作”的情况。这是因为您必须使用 NSVLAN 命令。此外,在某些固件版本上,如果使用add VLAN 命令存在 VLAN 编号,则无法设置该 VLAN。只需删除 VLAN,然后再次设置 NSVLAN。

  9. 高可用性检测信号始终使用相应接口的本机 VLAN(如果在接口上设置了 TagAll 选项,则可选择标记)。

  10. 在高可用性对的两个节点上,必须至少有一组本机 VLAN 之间进行通信(这可以是直接或通过路由器)。本机 VLAN 用于高可用性检测信号。如果 Citrix ADC 设备无法在任何接口上的本机 VLAN 之间进行通信,这将导致高可用性故障切换,并可能导致两个 Citrix ADC 设备都认为它们是主要设备的(导致 IP 地址重复等)。

  11. Citrix ADC 设备不参与生成树。因此,在使用 Citrix ADC 设备时,无法使用生成树提供接口冗余。为此,请使用链路聚合形式(LACP 或手动 LAG)。

    注意:如果要在多个物理交换机之间进行链路聚合,则必须使用 Cisco Switch Stack 等功能将这些交换机配置为虚拟交换机。

  12. 默认情况下,高可用性同步和命令传播使用 NSIP/NSVLAN。要将它们分离到不同的 VLAN,可以使用set HA node 命令的 SynCVLAN 选项。

  13. Citrix ADC 设备默认配置中没有内置任何内置表示管理接口(0/1 或 0/2)仅限于管理流量。此限制必须由最终用户通过 VLAN 配置强制执行。管理接口不是为了处理数据流量而设计的,因此您的网络设计必须考虑到这一点。Citrix ADC 设备主板上包含的管理接口缺乏各种卸载功能,如 CRC 卸载、较大的数据包缓冲区和其他优化,因此它们在处理大量流量方面的效率低得多。要分离生产数据和管理流量,NSIP 不能与您的数据流量位于同一个子网 /VLAN 上。

  14. 如果希望使用管理接口来传输管理流量,最佳做法是默认路由位于 NSIP (NSVLAN) 子网以外的子网上。

    在许多配置中,默认路由可用于工作站通信(在 Internet 场景中)。如果默认路由与 NSIP 位于同一子网上,则 ADC 设备可以使用管理接口发送和接收数据流量。这种使用数据流量可能会使管理界面过载。

  15. 此外,SDX SVM、XenServer 和所有 Citrix ADC 实例 NSIP 必须位于同一 VLAN 和子网上。SDX 设备中没有允许 SVM/Xen/实例之间进行通信的 板。如果它们不在同一 VLAN/子网/接口上,则它们之间的流量必须离开物理硬件,在您的网络上路由,然后返回。

    此配置可能会导致实例和 SVM 之间明显的连接问题,因此不建议这样做。这种情况的一个常见症状是 SVM 中针对有问题 VPX 实例的黄色实例状态指示器,并且无法使用 SVM 重新配置 VPX 实例。

  16. 如果某些 VLAN 绑定到子网,而有些不绑定,则在高可用性故障转移期间,则不会为未绑定到 VLAN 的任何子网上的任何 IP 地址发送 GARP 数据包。此配置可能会在高可用性故障转移期间导致连接断开和连接问题。出现此问题的原因是 Citrix ADC 设备无法通知未配置虚拟机的 Citrix ADC 设备上的网络 MAC 所有权 IP 地址更改。

    这种情况的症状是,在高可用性故障转移期间/之后,前一个主 Citrix ADC 设备上的 ip_tot_floating_ip_err 计数器增量超过几秒钟,表明网络没有接收或处理 GARP 数据包,并且网络继续将数据传输到新的辅助 Citrix ADC 设备。

Citrix ADC 设备网络和 VLAN 最佳实践