负载均衡设备支持二层交互

来源:互联网 发布:网络水军汇航亿胜 编辑:程序博客网 时间:2024/04/27 01:10

最近遇到客户的一个需求,在客户的环境中,负载均衡设备位置位于两台三层交换机中间,因此在不改变环境的情况下,如果需要负载均衡功能,又需要二层以上透明传输,就需要开发一种新特性,支持这种组网方式
用户组网需求
根据以上背景,提出以下的功能需求:

1.通过某种配置方式,使得接口支持二层透传2.同时不应该影响负载均衡功能3.支持二层的生成树协议(STP、RSTP)

实现以及报文处理方式

对于交换机这种典型的二层设备来说,要想实现二层转发其实不难,众所周知,交换机的转发原理是根据MAC地址及接口信息来做到快速转发的,而对于负载均衡设备这种服务于三层以上的设备来说,暂时无法记录MAC地址与接口关系信息,在时间以及有限的开发资源的情况下,采用如下的方案进行解决:
1.对于SLB功能以及二层转发实现采用“端口对”的方式,将两个三层接口绑定为一对端口对,一个端口对上只有且只存在一个IP地址以及MAC地址,从端口对上的一个接口收到的报文都会转发给另外一个接口进行透传,同时由于存在IP地址,因此可以满足负载均衡的需要。

portpair <primary_interface> <secondary_interface>no portpair <primary_interface>show portpairclear portpair

2.对于生成树协议的支持,采用FreeBSD的内部实现,允许用户将接口放在同一个二层接口组下,同时在这些接口上使能生成树协议。

bridge interface <bridge name> [priority] [fwddelay][maxage][stpmode]bridge member <bridge name > <system_ifname >[ifpriority][ifpathcost]bridge stp on <bridge name > [system_ifname]bridge stp off <bridge name > [system_ifname]

无论上述那种接口方式,都采用ARP进行报文处理,整个报文处理流程如下:

报文处理过程

从上述的整个流程来看,实现的功能非常单一,但是思路和想法非常有趣,因此写出来供参考。

0 0