设备对接NLB服务器群集
网络负载均衡NLB(Network Load Balance)是微软在Windows Server上开发的多服务器群集负载均衡特性。对于使用Windows Server做操作系统的企业来说,实现设备与NLB服务器群集的对接非常重要。
NLB服务器群集简介
- 单播模式:单播群集MAC地址以02bf开头。设备与单播模式的NLB服务器群集对接时,对应群集IP地址的ARP表项只能学习到一个出接口。因此,只有一台NLB服务器会收到发往群集IP地址的报文。
- 组播模式:组播群集MAC地址以03bf开头。设备与组播模式的NLB服务器群集对接时,由于缺省情况下,设备无法学习到MAC地址是组播MAC的ARP表项。通过使能动态学习组播MAC的功能或静态ARP表项绑定的方式,也只能学习到一个出接口。因此,只有一台NLB服务器会收到发往群集IP地址的报文。
- IGMP多播模式:IGMP多播群集MAC地址以0100-5e开头。设备与IGMP多播模式的NLB服务器群集对接时,希望接收报文的NLB服务器发送点播报文,设备据此学习出接口。因此,只有主动发送点播报文的NLB服务器会收到发往群集IP地址的报文。
设备与NLB服务器群集对接时存在的主要问题是:设备不能将发往群集IP地址的报文发送给群集中的每台服务器。该问题可以通过以下方法来解决。
与NLB服务器群集对接的方法
如果NLB服务器直连到二层交换机LSW上(如图2-7),单播模式下直接就实现了对接,组播模式下可以通过在三层交换机Switch上配置静态ARP表项来实现对接。
如果NLB服务器直连到三层交换机上,对于支持多端口ARP的设备形态,可以通过多端口ARP来实现对接。对于不支持多端口ARP的设备款型,在设备充足的条件下,为方便维护,可以通过增加二层交换机来实现对接;如果设备条件不满足,可以通过物理链路环回来实现对接。
多端口ARP
自V200R003C00版本开始,设备支持多端口ARP。多端口ARP主要通过静态ARP表项将群集IP地址与群集MAC地址进行绑定,并且通过多端口MAC表项将群集MAC地址与设备上连接NLB服务器的接口进行绑定。这样发往服务器群集IP地址的报文会从设备上所有与NLB服务器相连的接口发送出去,使所有的NLB服务器都能接收到报文。
增加二层交换机
对于不支持多端口ARP的设备形态,在设备条件满足的情况下,通过增加二层交换机的方法,可以实现设备与NLB服务器群集的对接。如图2-7所示,在三层交换机Switch下增加二层交换机LSW,接口GE0/0/1所属VLAN的VLANIF接口作为NLB服务器群集的网关。由Switch发往群集IP地址的报文到达LSW后,会在VLAN10内广播,从而实现所有NLB服务器都会收到发往群集IP地址的报文。
由于缺省情况下,设备无法学习到MAC地址是组播MAC的ARP表项。因此,NLB服务器工作在组播模式时,需要在Switch上使能ARP动态学习组播MAC的功能或配置静态ARP表项(表项的IP地址为群集IP地址、MAC地址为群集组播MAC地址、出接口为GE0/0/1)。
物理链路环回
对于不支持多端口ARP的设备形态,通过物理链路环回的方法,可以实现工作在单播或组播模式下的NLB服务器与单台设备、堆叠系统以及VRRP备份组的对接。
以单播模式下与单台设备对接为例,发往NLB服务器群集的报文到Switch后,通过查询ARP表项,将报文发送到接口GE0/0/5。报文以untag的方式发送到接口GE0/0/4后,VLAN100内的其他接口(与NLB服务器连接的接口GE0/0/1~GE0/0/3)能够进行复制,实现所有NLB服务器都能接收到报文。与VRRP备份组和堆叠系统对接的实现过程与单机类似,此处不做赘述。
组播模式下的组网部署与单播一致,不同点在于:缺省情况下,设备无法学习到MAC地址是组播MAC的ARP表项,需要在Switch上使能ARP动态学习组播MAC的功能或配置静态ARP表项(表项的IP地址为群集IP地址、MAC地址为群集组播MAC地址、出接口为群集网关VLAN所在的接口)。
单台设备
图2-8 单台设备与单播模式下的NLB服务器集群对接组网图
Switch上需要做如下配置:
- 接口GE0/0/1~GE0/0/3分别与NLB服务器Server_1~Server_3直连,并加入VLAN100;
- 去使能自环接口GE0/0/4与GE0/0/5的STP/RSTP/VBST/MSTP功能,并以Access类型分别加入VLAN100和VLAN200;
- 配置三层接口VLANIF200的IP地址作为NLB服务器群集的网关。
VRRP备份组
图2-9 VRRP备份组与单播模式下的NLB服务器集群对接组网图
VRRP备份组需要做如下配置:
- Switch_1和Switch_2的接口GE0/0/1分别与NLB服务器Server_1和Server_2直连,并加入VLAN100;
- Switch_1和Switch_2的接口GE0/0/2之间的连线作为心跳线,并加入VLAN100;
- 在Switch_1和Switch_2上,去使能自环接口GE0/0/4与GE0/0/5的STP/RSTP/VBST/MSTP功能,并以Access类型分别加入VLAN100和VLAN200;
- 接口VLANIF200上创建VRRP备份组,VRRP备份组的虚拟IP地址作为NLB服务器群集的网关。
为减少网络负担,建议将NLB服务器群集的网关与其他服务器的网关分开。
这是因为在以上组网中,本端设备发往NLB服务器群集的流量会通过心跳线发往对端设备,并经过对端设备的自环线。此时,如果其他服务器与NLB服务器具有相同网关,会导致其他服务器也收到发往NLB服务器群集的流量,给网络增加负担。例如:由Switch_1发往群集IP的流量会通过心跳线发往Switch_2。在Switch_2上,由自环口GE0/0/4通过自环线到达GE0/0/5。如果此时Switch_2上的非NLB服务器的网关也是VLANIF200。该流量就会由自环口GE0/0/5发往非NLB服务器。
堆叠系统
图2-10 堆叠系统与单播模式下的NLB服务器集群对接组网图
堆叠系统需要做如下配置:
- 接口GE0/0/1与NLB服务器Server_1直连,接口GE1/0/1与NLB服务器Server_2直连,并加入VLAN100;
- 接口GE0/0/4和GE1/0/4加入Eth-Trunk4接口,GE0/0/5和GE1/0/5加入Eth-Trunk5;
- 去使能自环口Eth-Trunk4和Eth-Trunk5的STP/RSTP/VBST/MSTP功能,并以Access类型分别加入VLAN100和VLAN200;
- 配置三层接口VLANIF200的IP地址作为NLB服务器群集的网关。