这篇文章已经过机器翻译.放弃
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 和网络配置的最佳实践
-
每个子网必须与 VLAN 关联。
-
多个子网可以与同一 VLAN 关联(取决于您的网络设计)。
-
每个 VLAN 只能关联到一个接口(为了本次讨论的目的,LA 通道算作单个接口)。
-
如果您需要多个子网与接口关联,则必须对子网进行标记。
-
与普遍的看法相反,Citrix ADC 设备上的基于 Mac 的转发 (MBF) 功能不是为了缓解此类问题而设计的。MBF 主要用于 Citrix ADC 设备的 DSR(直接服务器返回)模式,该模式在大多数环境中很少使用(它旨在允许流量故意绕过来自后端服务器的返回路径上的 Citrix ADC 设备)。MBF 可能会隐藏 VLAN 问题在某些情况下,但不应该放心解决这种类型的问题。
-
Citrix ADC 设备上的每个接口都需要本机 VLAN(与思科不同,其中本机 VLAN 是可选的),尽管可以使用接口上的 TagAll 设置,以免未标记的流量留下问题的接口。
-
如果需要您的网络设计,本机 VLAN 可以标记(这是接口的 TagAll 选项)。
-
Citrix ADC 设备 NSIP 子网的 VLAN 是一种特殊情况。这称为 NSVLAN。概念相同,但配置该概念的命令不同,对 NSVLAN 的更改需要重新启动 Citrix ADC 设备才能生效。如果您尝试将 VLAN 绑定到与 NSIP 共享相同子网的 SNIP,则会出现“不允许操作”的情况。这是因为您必须使用 NSVLAN 命令。此外,在某些固件版本上,如果使用
add VLAN
命令存在 VLAN 编号,则无法设置该 VLAN。只需删除 VLAN,然后再次设置 NSVLAN。 -
高可用性检测信号始终使用相应接口的本机 VLAN(如果在接口上设置了 TagAll 选项,则可选择标记)。
-
在高可用性对的两个节点上,必须至少有一组本机 VLAN 之间进行通信(这可以是直接或通过路由器)。本机 VLAN 用于高可用性检测信号。如果 Citrix ADC 设备无法在任何接口上的本机 VLAN 之间进行通信,这将导致高可用性故障切换,并可能导致两个 Citrix ADC 设备都认为它们是主要设备的(导致 IP 地址重复等)。
-
Citrix ADC 设备不参与生成树。因此,在使用 Citrix ADC 设备时,无法使用生成树提供接口冗余。为此,请使用链路聚合形式(LACP 或手动 LAG)。
注意:如果要在多个物理交换机之间进行链路聚合,则必须使用 Cisco Switch Stack 等功能将这些交换机配置为虚拟交换机。
-
默认情况下,高可用性同步和命令传播使用 NSIP/NSVLAN。要将它们分离到不同的 VLAN,可以使用
set HA node
命令的 SynCVLAN 选项。 -
Citrix ADC 设备默认配置中没有内置任何内置表示管理接口(0/1 或 0/2)仅限于管理流量。此限制必须由最终用户通过 VLAN 配置强制执行。管理接口不是为了处理数据流量而设计的,因此您的网络设计必须考虑到这一点。Citrix ADC 设备主板上包含的管理接口缺乏各种卸载功能,如 CRC 卸载、较大的数据包缓冲区和其他优化,因此它们在处理大量流量方面的效率低得多。要分离生产数据和管理流量,NSIP 不能与您的数据流量位于同一个子网 /VLAN 上。
-
如果希望使用管理接口来传输管理流量,最佳做法是默认路由位于 NSIP (NSVLAN) 子网以外的子网上。
在许多配置中,默认路由可用于工作站通信(在 Internet 场景中)。如果默认路由与 NSIP 位于同一子网上,则 ADC 设备可以使用管理接口发送和接收数据流量。这种使用数据流量可能会使管理界面过载。
-
此外,SDX SVM、XenServer 和所有 Citrix ADC 实例 NSIP 必须位于同一 VLAN 和子网上。SDX 设备中没有允许 SVM/Xen/实例之间进行通信的 背 板。如果它们不在同一 VLAN/子网/接口上,则它们之间的流量必须离开物理硬件,在您的网络上路由,然后返回。
此配置可能会导致实例和 SVM 之间明显的连接问题,因此不建议这样做。这种情况的一个常见症状是 SVM 中针对有问题 VPX 实例的黄色实例状态指示器,并且无法使用 SVM 重新配置 VPX 实例。
-
如果某些 VLAN 绑定到子网,而有些不绑定,则在高可用性故障转移期间,则不会为未绑定到 VLAN 的任何子网上的任何 IP 地址发送 GARP 数据包。此配置可能会在高可用性故障转移期间导致连接断开和连接问题。出现此问题的原因是 Citrix ADC 设备无法通知未配置虚拟机的 Citrix ADC 设备上的网络 MAC 所有权 IP 地址更改。
这种情况的症状是,在高可用性故障转移期间/之后,前一个主 Citrix ADC 设备上的 ip_tot_floating_ip_err 计数器增量超过几秒钟,表明网络没有接收或处理 GARP 数据包,并且网络继续将数据传输到新的辅助 Citrix ADC 设备。