简介
本文档介绍如何将 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使用公共NLB MAC地址替换集群中每台服务器的实际介质访问控制(MAC)地址。当集群中的所有服务器具有相同的MAC地址时,转发到该地址的所有数据包都会发送到集群中的所有成员。NLB创建一个虚构的MAC地址,并将其分配给NLB集群中的每台服务器。NLB根据成员的主机ID为每台NLB服务器分配不同的虚拟MAC地址。此地址出现在以太网帧报头中。
- MAC地址用于地址解析协议(ARP)报头,而不是以太网报头。交换机在以太网报头中使用 MAC 地址,在 ARP 报头中则不使用。这会导致将数据包发送到目的MAC地址为集群MAC地址00-bf-ac-10-00-01的NLB集群时出现问题。交换机查看MAC地址00-bf-ac-10-00-01的内容可寻址存储器(CAM)表,并且因为没有端口注册到NLB集群MAC地址00-bf-ac-10-00-01,该帧将传送到所有交换机端口。这将引入单播泛洪。为避免泛洪,Cisco建议您为NLB使用专用VLAN,以限制泛洪。
多播模式
以下是有关在组播模式下使用NLB的一些说明:
- 在组播模式下,系统管理员单击Microsoft NLB配置GUI中的组播按钮。此选项指示集群成员使用组播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,因此思科设备会忽略此条目并单播泛洪每个集群绑定数据包。为避免此泛洪,请插入静态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规范,思科交换机可以使用IGMP监听动态编程MAC地址。这样,就无需手动将MAC地址编程到组播模式中所需的端口映射,以防止泛洪到VLAN。
- 一旦交换机收到来自集群中成员的成员的成员身份报告,IGMP监听会为您编程虚拟MAC地址。还必须使用协议独立组播(PIM)或IGMP查询器功能为NLB VLAN编程Mrouter端口。
- 由于虚拟IP地址使用组播MAC地址,因此无法在本地子网之外访问。要解决此问题,必须在每台设备上配置一个静态ARP条目,该条目在集群VLAN中具有第3层(L3)接口。以与组播模式相同的方式完成此操作。例如,如果虚拟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所跟踪,您不能在NLB VLAN交换机虚拟接口(SVI)上将PIM与某些版本的代码一起使用。查看解决此问题的代码版本的漏洞详细信息或使用IGMP监听查询器功能。
注意:按照Cisco Bug ID CSCsy62709跟踪的,对于在IGMP模式下路由到NLB服务器的所有流量,数据包都会重复。查看受影响代码版本的Bug详细信息。
注意:当交换机在PFC3B或PFC3C模式下运行时,由于Cisco nug ID CSCug49149 NLB流量跟踪的硬件限制,无法通过同一6708线卡上的分布式以太网通道发送流量。必须通过电缆连接端口通道,以便所有成员链路都位于同一转发引擎上。
网络图
配置
本节介绍如何为在组播或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 address值用于配置用户VLAN。
- 接口Vlan200 ip address值配置NLB集群VLAN。将Microsoft服务器的默认网关配置为此地址非常重要。
- arp 10.100.1.88 0300.5e01.0101 ARPA包括VLAN中的所有L3接口,是NLB群集服务器的虚拟IP地址。
- mac地址表静态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 querier启用监听查询器功能。
- ip igmp snooping querier address 10.200.1.1 为NLB VLAN配置监听查询器。
- 用户VLAN为接口Vlan100。
- NLB群集VLAN为接口Vlan200。必须将Microsoft服务器的默认网关配置为此地址(ip地址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 命令,以查看特定接口或VLAN上的MAC地址表静态和动态条目或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 mrouter以查看由从上游监听查询器接收的查询编程的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组,以查看加入组播组的集群成员的端口列表:
4948-1#show ip igmp snooping groups
Vlan Group Version Port List
-----------------------------------------
200 239.1.1.1 v2 Gi1/1
故障排除
目前没有针对此配置的故障排除信息。