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