简介
本文档介绍Catalyst 9000系列交换机上的IGMP功能在Microsoft网络负载均衡器(NLB)部署中的行为方式。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于以下软件和硬件版本:
- Catalyst 9200
- Catalyst 9300
- Catalyst 9400
- Catalyst 9500
- Catalyst 9600
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
NLB是所有Windows 2000 Server和Windows 2003 Server系列系统中都可用的群集技术。它为所有客户端提供单个虚拟IP地址作为整个集群的目标IP地址。
NLB可用于在一组服务器之间分发客户端请求。为确保客户端体验可接受的性能水平,NLB提供了在客户端负载增加时添加其他服务器以横向扩展无状态应用程序(如基于IIS的Web服务器)的功能。此外,它还减少了因服务器故障导致的停机时间。
可以将NLB配置为在以下三种模式之一下工作:
- 单播模式
- 多播模式
- 互联网组管理协议(IGMP)模式
提示:单播模式和组播模式部署具有文档适用于Microsoft网络负载均衡的Catalyst交换机配置示例中描述的相同配置和验证
本文档重点介绍Internet组管理协议(IGMP)模式。
最佳实践
Catalyst 9000系列交换机监听IGMP数据包的第3层报头,以填充监听表。由于必须使用静态组播MAC在交换机上配置NLB,IGMP监听表不会填充,并且目标VLAN中会发生泛洪。换句话说,当NLB服务器处于IGMP模式时,Catalyst 9000中的IGMP监听不会自动包含组播泛洪(Catalyst 9000中的转发基于组播IP,而不是基于组播MAC地址)。
注意:在Catalyst 9000上,NLB的所有三种模式都会发生泛洪。用户VLAN中不会发生泛洪,因为数据包的目的地必须是它们的默认网关。只有在报头重新写入目标VLAN后,才会发生泛洪。
因此,请考虑以下成功部署的最佳实践:
- 使用专用VLAN仅将泛洪限制到NLB集群。
- 使用静态MAC条目限制在NLB VLAN中发生泛洪的端口。
IGMP模式
在此模式下,NLB集群的虚拟MAC在Internet编号指派机构(IANA)范围内,其开头为0100.5exx.xxxx。此 IGMP Snooping
交换机上配置的功能不会在MAC地址表中编程集群的虚拟组播MAC地址。由于缺少此动态编程,交换机从NLB集群接收的组播流量会泛洪到同一VLAN的所有端口成员。思科漏洞ID CSCvw18989。
对于NLB服务器与用户位于不同VLAN的拓扑,由于集群的虚拟IP地址使用组播MAC地址,因此无法在本地子网外访问它。为了解决此问题,您必须在集群VLAN中具有第3层接口的每台设备上配置一个静态ARP条目。
Catalyst 9000系列交换机中的IGMP监听功能不使用组播MAC地址进行转发。它们使用组播IP地址,这就是为什么它不能像其他传统平台(如Catalyst 6000系列)那样在MAC表中自动编程组播MAC地址。所有新平台都使用组播IP地址转发方法,以避免在传统交换机上发现重叠地址问题。
注意:以太网组播MAC地址有一些重叠。相同的MAC地址被分配给32个不同的组播组。如果以太网网段中的一个用户订用组播组225.1.1.1,而另一个用户订用230.1.1.1,则两个用户都会收到两个组播流(MAC地址相同01-00-5e-01-01-01)。在LAN网段上设计组播网络时,需要特别留意和设计此重叠以避免问题。
配置
同一VLAN中的源和目标
网络图
本节介绍当集群和用户位于同一个VLAN中时,如何配置NLB。
1.检验是否已创建NLB VLAN。由于泛洪,建议为NLB流量设置专用VLAN。
C9300-01#show vlan id 10
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
10 NLB active Te1/0/1, Te1/0/2, Te1/0/3
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
10 enet 100010 1500 - - - - - 0 0
Remote SPAN VLAN
----------------
Disabled
Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
2. C为必须获取此NLB流量的端口配置静态MAC地址条目。此命令必须包括通向NLB VLAN中的NLB集群路径中的所有中继端口或接入端口。在图中,只有一条通过Tengig1/0/2到达NLB的路径。
C9300-01(config)#mac address-table static 0100.5e01.0155 vlan 10 interface TenGigabitEthernet 1/0/2
C9300-01#show run | in mac
mac address-table static 0100.5e01.0155 vlan 10 interface TenGigabitEthernet1/0/2
注:静态MAC地址条目中可根据需要有任意数量的映射端口。此端口映射可减少NLB的VLAN内的预期泛洪。在示例中,静态MAC条目可避免流向NLB集群的流量从Te1/0/3泛洪出去。
不同VLAN中的源和目标
网络图
本节介绍当集群和用户位于不同的VLAN中时,如何配置NLB。
1.将NLB VLAN和IP地址配置为NLB集群的默认网关。
C9300-01#show vlan id 10
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
10 NLB active Te1/0/2, Te1/0/3
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
10 enet 100010 1500 - - - - - 0 0
Remote SPAN VLAN
----------------
Disabled
Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
C9300-01#show run interface vlan 10
Building configuration...
Current configuration : 59 bytes
!
interface Vlan10
ip address 10.1.1.1 255.255.255.0
end
2.为NLB群集服务器的虚拟IP地址配置静态ARP条目。必须在集群VLAN中具有交换机虚拟接口(SVI)的所有第3层设备上配置静态ARP。静态ARP的目的是允许交换机获得向NLB VLAN发送路由数据包所需的重写信息。
C9300-01(config)#
arp 10.1.1.85 0100.5e01.0155 arpa
3.检验在接入层创建的用户VLAN及其默认网关。必须在双方上配置默认网关。(NLB群集和用户)。
C9300-01#show vlan id 11
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
11 Users2 active Te1/0/1, Te1/0/4
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
11 enet 100011 1500 - - - - - 0 0
Remote SPAN VLAN
----------------
Disabled
Primary Secondary Type Ports
------- --------- ----------------- ------------------------------------------
C9300-01#show run interface vlan 11
Building configuration...
Current configuration : 59 bytes
!
interface Vlan11
ip address 172.16.1.1 255.255.255.0
end
注意:任何在MAC报头重写后路由且未在出口SVI中学习目标MAC的数据包,该数据包会在相应的VLAN中泛洪。为了缓解泛洪,您需要创建网关和仅用于NLB服务器的独立VLAN。如果不希望为NLB流量配置专用VLAN,则可以为必须接收NLB流量的端口配置静态MAC地址条目,即mac address-table static 0100.5exx.xxxx vlan # interface interface_name
故障排除
1.验证是否已将静态MAC地址配置为需要将流量转发到NLB的所有目标端口。
C9300-01#show mac address multicast
Vlan Mac Address Type Ports
---- ----------- ---- -----
10 0100.5e01.0155 USER Te1/0/2
2.对于NLB集群与客户端位于不同子网的部署,请验证是否存在静态ARP条目将NLB服务器的虚拟IP映射到其组播MAC地址。
C9300-01#show run | in arp
arp 10.1.1.85 0100.5e01.0155 ARPA
C9300-01#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.1.1.1 - c4c6.0309.cf46 ARPA Vlan10
Internet 10.1.1.85 - 0100.5e01.0155 ARPA
Internet 172.16.1.1 - c4c6.0309.cf54 ARPA Vlan11
3.使用不常用的大小对NLB服务器IP执行ping操作。清除端口的控制器,并检查命令的多次迭代,其中大小未使用太多。
C9300-01#show controllers ethernet-controller Te1/0/2 | in 1024
0 1024 to 1518 byte frames 0 1024 to 1518 byte frames
C9300-01#clear controllers ethernet-controller Te1/0/2
HOST#ping 10.1.1.85 time 0 rep 1000 size 1024
Type escape sequence to abort.
Sending 1000, 1024-byte ICMP Echos to 10.1.1.85, timeout is 0 seconds:
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
....................
Success rate is 0 percent (0/1000)
4.检查ping是否正确从目的端口转发出去,是否相同ping测试被泛洪到其他端口。在不同接口上使用相同的controllers counters命令进行验证。
C9300-01#show controllers ethernet-controller Te1/0/1 | in 1024 <-- Ingress Host port
0 1024 to 1518 byte frames 1000 1024 to 1518 byte frames
C9300-01#show controllers ethernet-controller Te1/0/2 | in 1024 <-- Egress port to NLB
1000 1024 to 1518 byte frames 0 1024 to 1518 byte frames
5.在带有EPC的入口端口和带有SPAN的出口端口上捕获数据包,并检查交换机是否正在转发数据。
C9300-01#monitor capture tac buffer size 10 match any interface Te1/0/1 in
C9300-01#monitor capture tac start
C9300-01#monitor capture tac stop
C9300-01#monitor capture tac export location flash:DataTraffic.pcap
提示:在第2层入口或出口方向转发数据包时,嵌入式数据包捕获(EPC)功能是可靠的。但是,如果流量由交换机路由,然后转发到出口端口,则EPC不可靠。要在发生第3层路由后捕获出口中的数据包,请使用交换机端口分析器(SPAN)功能。
C9300-01(config)#monitor session 1 source interface Te1/0/2 tx
C9300-01(config)#monitor session 1 destination interface Te1/0/3 encapsulation replicate
C9300-01#show monitor session all
Session 1
---------
Type : Local Session
Source Ports :
TX Only : Te1/0/2
Destination Ports : Te1/0/3
Encapsulation : Replicate
Ingress : Disabled
相关信息