简介
本文档介绍如何将 Cisco Catalyst 交换机配置为与 Microsoft 网络负载均衡 (NLB) 交互。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于以下软件和硬件版本进行配置:
- 运行Cisco IOS软件15.1(1)SY1的Catalyst 6500 Sup2T交换机
- 运行Cisco IOS软件15.0(2)SG7的Catalyst 4948交换机
- Microsoft Windows服务器
注意:有关在其他思科平台上启用这些功能所使用的命令,请参阅相应的配置指南。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
NLB技术可用于在一组服务器之间分发客户端请求。为了确保客户端始终体验可接受的性能级别,Microsoft Windows NLB提供了添加其他服务器的功能,以便随着客户端负载的增加而横向扩展无状态应用程序(如基于IIS的Web服务器)。此外,它还减少了因服务器故障导致的停机时间。
Microsoft Windows NLB是一种群集技术,是所有Windows 2000 Server和Windows 2003 Server系列操作系统的一部分。它为所有客户端提供单个虚拟IP地址作为整个集群的目标IP地址。
可以将NLB配置为在以下三种模式之一下工作:
- 单播模式
- 多播模式
- 互联网组管理协议(IGMP)模式
单播模式
以下是有关在单播模式下使用NLB的一些说明:
- 在单播模式下,NLB将集群中每台服务器的实际媒体访问控制(MAC)地址替换为公用NLB MAC地址。当集群中的所有服务器具有相同的MAC地址时,转发到该地址的所有数据包都会发送到集群中的所有成员。NLB创建虚拟MAC地址并将其分配给NLB集群中的每台服务器。NLB根据成员的主机ID为每个NLB服务器分配不同的虚拟MAC地址。此地址出现在以太网帧报头中。
- MAC地址用于地址解析协议(ARP)报头,而不是以太网报头。交换机在以太网报头中使用 MAC 地址,在 ARP 报头中则不使用。这会导致在将数据包发送到NLB集群(目标MAC地址为集群MAC地址00-bf-ac-10-00-01)时出现问题。交换机查看MAC地址00-bf-ac-10-00-01的内容可寻址存储器(CAM)表,并且因为没有向NLB集群MAC地址00-bf-ac-10-00-01注册的端口,因此帧将传送到所有交换机端口。这会引入单播泛洪。为避免泛洪,Cisco建议您为NLB使用专用VLAN,以便限制泛洪。
多播模式
以下是有关在组播模式下使用NLB的一些说明:
- 在组播模式下,系统管理员在Microsoft NLB配置GUI中点击Multicast按钮。此选项指示集群成员使用组播MAC地址(例如0300.5e01.0101)响应其虚拟地址的ARP。
- 组播MAC地址的ARP过程没有完成(这违反了RFC 1812)。需要静态MAC地址才能到达本地子网外的集群。
- 虚拟IP地址为10.100.1.99,组播MAC地址为0300.5e01.0101。输入以下命令以静态填充ARP表:
arp 10.100.1.99 0300.5e01.0101
- 由于传入数据包具有单播目标IP地址和组播目标MAC,Cisco设备会忽略此条目,并单播泛洪每个集群绑定数据包。为避免此泛洪,请插入如下所示的静态mac-address-table条目,以便在硬件中交换集群绑定数据包。
mac address-table static 0300.5e01.0101 vlan 200 interface TenGigabitEthernet1/4 TenGigabitEthernet1/5 disable-snooping
注意:将MAC地址静态映射到多个端口时,只有Cisco Catalyst 4500系列交换机上的软件支持该地址。此外,在Catalyst 4500系列交换机上使用此配置可能会导致CPU使用率过高。为了避免此问题,可以将NLB隔离到特定VLAN,仅添加静态ARP条目,并允许该VLAN上的泛洪。
注意:对于Cisco Catalyst 6000/6500系列交换机,必须添加disable-snooping参数以仅将流量限制到指定端口。配置静态连接时,请输入disable-snooping关键字以防止发送到静态配置的组播MAC地址的组播流量也被发送到同一VLAN中的其他端口。(其他平台不需要此命令)。
IGMP模式
下面是有关在IGMP模式下使用NLB的一些说明:
- 在IGMP模式下使用NLB需要最少量的手动配置。虚拟MAC地址属于互联网编号指派机构(IANA)范围,以0100.5exx.xxxx开头。由于MAC地址现在符合IANA规范,因此Cisco交换机可以使用IGMP监听对MAC地址进行动态编程。这样就无需手动将MAC地址编程到组播模式中所需的端口映射,以防止泛洪到VLAN。
- 一旦交换机收到来自集群成员的成员身份报告,IGMP监听就会为您编程虚拟MAC地址。还必须使用协议无关组播(PIM)或IGMP查询器功能为NLB VLAN设置Mrouter端口。
- 由于虚拟IP地址使用组播MAC地址,因此它无法在本地子网外访问。为了解决此问题,您必须在集群VLAN中具有第3层(L3)接口的每个设备上配置一个静态ARP条目。以与使用组播模式相同的方式完成此操作。例如,如果虚拟IP地址为10.100.1.99,组播MAC地址为0100.5e01.0101,请使用此命令以静态填充ARP表:
arp 10.100.1.99 0100.5e01.0101
IGMP模式警告
在IGMP模式下使用NLB时,请记住以下重要说明:
注意:按照Cisco Bug ID CSCsw72680的跟踪,您不能将PIM用于NLB VLANwitch Virtual Interface(SVI)和某些版本的代码。请查看Bug详细信息,了解解决此问题的代码版本,或使用IGMP监听查询器功能。
注意:根据Cisco Bug ID CSCsy62709的跟踪,将复制路由到IGMP模式下NLB服务器的所有流量的数据包。查看受影响的代码版本的错误详细信息。
注意:由于Cisco nug ID CSCug49149跟踪的硬件限制,当交换机在PFC3B或PFC3C模式下运行时,NLB流量无法通过同一6708线卡上的分布式Etherchannel发送。端口通道必须布线,以便所有成员链路都位于同一个转发引擎上。
网络图

配置
本节介绍如何为以组播或IGMP模式运行的Cisco Catalyst 6500和4948系列平台配置NLB。
组播模式的配置
本节介绍如何为以组播模式运行的Cisco Catalyst 6500和4948系列平台配置NLB:
6500-1#show running-config
Building configuration...
!
hostname 6500-1
!
boot system flash disk0:s2t54-adventerprisek9-mz.SPA.151-1.SY1
!
interface TenGigabitEthernet1/4
switchport
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
interface TenGigabitEthernet1/5
switchport
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
interface Vlan100
ip address 10.100.1.1 255.255.255.0
!
!
interface Vlan200
ip address 10.200.1.1 255.255.255.0
!
!
arp 10.100.1.88 0300.5e01.0101 ARPA
!
!
mac address-table static 0300.5e01.0101 vlan 200 interface TenGigabitEthernet1/4
TenGigabitEthernet1/5 TenGigabitEthernet5/5
!
以下是有关此配置的一些重要说明:
- 接口Vlan100 ip地址值配置用户VLAN。
- 接口Vlan200 ip地址值配置NLB集群VLAN。请务必将Microsoft服务器的默认网关配置到此地址。
- arp 10.100.1.88 0300.5e01.0101 ARPA包括VLAN中的所有L3接口,并且是NLB群集服务器的虚拟IP地址。
- Mac address-table static 0300.5e01.0101 vlan 200接口为组播虚拟MAC地址创建交换机中的静态MAC条目到端口的映射。
注意:确保在NLB集群上使用组播模式。Cisco 建议您不要使用以 01 开头的多播 MAC 地址,因为已经确认这些地址与 IGMP 设置冲突。
4948-1#show running-config
Building configuration...
!
hostname 4948-1
!
boot system bootflash:cat4500-entservices-mz.150-2.SG7
!
interface GigabitEthernet1/1
switchport access vlan 200
!
interface TenGigabitEthernet1/49
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
interface TenGigabitEthernet1/50
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
mac address-table static 0300.5e01.0101 vlan 200 interface Gi1/1 Te1/49 Te1/50
!
!
end
注意:mac address-table static 0300.5e01.0101 vlan 200接口在交换机中为组播虚拟MAC地址创建一个静态条目。切记必须添加在交换机之间传输NLB流量的所有中继接口。定义静态MAC地址后,泛洪就会受到限制。如果忘记包含接口,NLB集群将中断。
IGMP模式的配置
本节介绍如何为在IGMP模式下运行的Cisco Catalyst 6500和4948系列平台配置NLB
6500-1#show running-config
Building configuration...
!
hostname 6500-1
!
boot system flash disk0:s2t54-adventerprisek9-mz.SPA.151-1.SY1
!
ip igmp snooping querier
!
vlan configuration 1,100
no ip igmp snooping querier
!
vlan configuration 200
ip igmp snooping querier address 10.200.1.1
!
interface TenGigabitEthernet1/4
switchport
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
interface TenGigabitEthernet1/5
switchport
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
interface Vlan100
ip address 10.100.1.1 255.255.255.0
!
interface Vlan200
ip address 10.200.1.1 255.255.255.0
!
arp 10.100.1.99 0100.5e01.0101 ARPA
!
end
以下是有关此配置的一些重要说明:
- Ip igmp snooping querenable the snooping querier feature。
- ip igmp snooping querier address 10.200.1.1配置NLB VLAN的监听查询器。
- 用户VLAN为interface Vlan100。
- NLB集群VLAN是interface Vlan200。您必须将Microsoft服务器的默认网关配置为此地址(ip address 10.200.1.1 255.255.255.0)。
- Arp 10.100.1.99 0100.5e01.0101 ARPA是NLB群集服务器的虚拟IP地址。静态ARP必须位于VLAN中的所有L3接口上。
4948-1#show running-config
Building configuration...
!
hostname 4948-1
!
boot system bootflash:cat4500-entservices-mz.150-2.SG7
!
interface GigabitEthernet1/1
switchport access vlan 200
!
interface TenGigabitEthernet1/49
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
interface TenGigabitEthernet1/50
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,100,200
switchport mode trunk
!
end
注意:无需配置静态条目,因为IGMP监听在此模式下动态执行此操作。此外,此模式不需要在下游第2层(L2)交换机上进行特殊配置。
验证
使用本部分可确认配置能否正常运行。
注意:命令输出解释程序(仅限注册用户)(OIT) 支持某些 show 命令。使用 OIT 可查看对 show 命令输出的分析。
组播模式验证
输入show ip arp命令以查看ARP缓存:
6500-1#sh ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.100.1.99 - 0300.5e01.0101 ARPA
输入show mac address-table static命令以查看特定MAC地址表的静态和动态条目,或查看特定接口或VLAN上的MAC地址表的静态和动态条目:
6500-1#show mac address-table static add 0300.5e01.0101
vlan mac address type learn age ports
----+---------------+-------+-----+------+-----------------
200 0300.5e01.0101 static No - Te1/4 Te1/5 Te5/5
4948-1#show mac address-table static add 0300.5e01.0101
Multicast Entries
vlan mac address type ports
------+---------------+-------+--------------------
200 0300.5e01.0101 static Gi1/1,Te1/49,Te1/50
IGMP模式验证
输入show ip arp命令以查看ARP缓存:
6500-1#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.100.1.99 - 0100.5e01.0101 ARPA
输入show ip igmp snooping mrouterto以查看由从上游监听查询器接收的查询编程的Mrouter端口:
4948-1#show ip igmp snooping mrouter
Vlan ports
---- -----
200 Te1/49(dynamic)
输入show mac address-table multicast igmp-snooping以查看从IGMP监听获取的动态添加的MAC地址和成员端口:
4948-1#show mac address-table multicast igmp-snooping
Multicast Entries
vlan mac address type ports
------+---------------+------+-------------
200 0100.5e01.0101 igmp Gi1/1,Te1/49
输入show ip igmp snooping groupsin以查看加入组播组的集群成员的端口列表:
4948-1#show ip igmp snooping groups
Vlan Group Version Port List
-----------------------------------------
200 239.1.1.1 v2 Gi1/1
故障排除
目前没有针对此配置的故障排除信息。