ADC

NetScaler 设备网络和 VLAN 最佳实践

NetScaler 设备使用 VLAN 来确定必须使用哪个接口传输哪些流量。此外,NetScaler 设备不参与生成树。如果没有正确的 VLAN 配置,NetScaler 设备将无法确定要使用哪个接口,而且它的功能更像集线器,而不是交换机或路由器。换句话说,NetScaler 设备可以在每次对话中使用所有接口。

VLAN 配置错误的症状

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

MAC Moves(counter nic_tot_bdg_mac_moved):此问题表明 NetScaler 设备正在使用多个接口与同一个设备(MAC 地址)通信,因为它无法正确确定要使用哪个接口。

静音接口 (counter nic_err_bdg_muted): 此问题表明 NetScaler 设备已检测到由于 VLAN 配置问题正在创建路由环路,因此,它已关闭了一个或多个违规接口以防止网络中断。

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

Orphan ACK (counter tcp_err_orphan_ack):此问题表明 NetScaler 设备收到了意想不到的 ACK 数据包,通常位于与 ACK 流量的来源接口不同的接口上。这种情况可能是由于 VLAN 配置错误造成的,其中 NetScaler 设备在与目标设备通信 NetScaler 设备通常使用的接口不同的接口上进行传输(通常与 MAC 移动一起出现)

高重传率或重传放弃率(计数器:tcp_err_retransmit_giveups、tcp_err_7th_retransmit、各种其他重传计数器):NetScaler 设备在 TCP 数据包放弃并终止连接之前总共尝试重传 7 次。虽然这种情况可能是由网络状况引起的,但通常是由于 VLAN 和接口配置错误所致。

高可用性 Split Brain:Split Brain 是两个高可用性节点都认为自己是主节点的情况,这会导致 IP 地址重复和 NetScaler 设备功能丢失。这是当两个高可用性节点无法在任何接口上使用 NSIP 在 UDP 端口 3003 上使用高可用性Heartbeats相互通信时造成的。这通常是由于 VLAN 配置错误造成的,其中 NetScaler 设备接口上的本地 VLAN 在 NetScaler 设备之间没有连接。

VLAN 和网络配置的最佳实践

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

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

  3. 每个 VLAN 只能关联到一个接口(在本讨论中,一个 LA 信道算作单个接口)。

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

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

  6. NetScaler 设备上的每个接口都需要本地 VLAN(与 Cisco 不同,在Cisco,本地 VLAN 是可选的),但可以使用接口上的 tagAll 设置,这样未标记的流量就不会离开有问题的接口。

  7. 如果网络设计有必要,可以标记本地 VLAN(这是接口的 tagAll 选项)。

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

  9. 高可用性 Heartbeats 始终使用相应接口的本地 VLAN(如果在接口上设置了 tagAll 选项,则可以选择标记)。

  10. 高可用性对的两个节点上的至少一组本地 VLAN 之间必须有通信(可以是直接通信,也可以通过路由器)。本地 VLAN 用于高可用性心跳。如果 NetScaler 设备无法在任何接口上的本地 VLAN 之间通信,这将导致高可用性故障转移,并可能出现两个 NetScaler 设备都认为它们是主设备的(会导致 IP 地址重复等)。

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

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

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

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

  14. 如果需要使用管理接口来传输管理流量,则最佳做法是将默认路由放在 NSIP (NSVLAN) 子网以外的子网上。

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

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

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

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

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

NetScaler 设备网络和 VLAN 最佳实践