本发明涉及一种mac表项学习技术,尤其是涉及一种mac表项学习转发的方法及装置。
背景技术:
如图1所示,主机经过传统交换机需要访问对应服务器的某一项应用服务,其中,服务器1和服务器2为一组服务器集群,且均能够提供相应的服务;但这个过程如果采用传统网络实现,那交换机只能将主机请求随机的交给服务器1或者服务器2中的一个,干预性非常弱。也就是说,采用传统非sdn(如openflow)交换机设备,主机与服务器通信通过传统交换机设备完成通信。具体过程为:主机1访问服务器的某个应用,发起请求,经过传统交换机,传统交换机将流量转发到连接服务器的汇聚逻辑接口,并最终从某个物理口转发到服务器,服务器进行回应。
但是上述方案存在以下缺点:主机和服务器之间的流量无法完全隔离,比如有些广播流量可能还会被转发到其他主机,如果两台服务器提供相同服务,不能保证,主机1一定是被服务器1提供服务的,导致流量转发存在一定随机性,控制层面干预能力较弱。
主机访问服务器的另一种方案是采用纯sdn(如openflow)交换机设备实现,主机与服务器通信通过控制器下发openflow流表实现通信。具体过程为:主机访问服务器的某一项应用,流量到达交换机之后,由预设的openflow流表进行转发,服务器回来的流量也由预设的openflow回向流表进行转发。该方案对控制层面干预性强,流量可以做到完全隔离,但是回向流量也通过流表转发,缺少灵活性,控制器必须下发双向互通的流表,浪费交换机流表表项资源。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种mac表项学习转发的方法及装置。
为实现上述目的,本发明提出如下技术方案:一种mac表项学习转发的方法,包括:
s1,主机通过控制器下发到混杂交换机上的流表转发正向流量到相应的服务器,同时混杂交换机学习主机的mac地址表项;
s2,服务器根据混杂交换机上学习的所述mac地址表项转发回向流量到所述主机。
优选地,s1中,所述混杂交换机收到所述正向流量后,匹配其上的所述流表,若匹配流表中流表项的特征,则按照所述流表项中对应的匹配动作转发正向流量到相应的服务器。
优选地,s2中,所述混杂交换机收到所述回向流量后,通过查找所述mac地址表项,得到所述回向流量的目的mac地址和转发端口,通过所述转发端口将回向流量传送给目的mac地址对应的主机。
优选地,所述混杂交换机为sdn交换机且具有mac地址表项学习能力。
本发明还揭示了另外一种技术方案:一种mac表项学习转发的装置,包括至少一主机、混杂交换机、控制器和至少一服务器,
所述混杂交换机用于根据控制器下发的流表,将主机发过来的正向流量转发给相应的服务器,同时学习主机的mac地址表项;
所述混杂交换机还用于根据学习的所述mac地址表项,将服务器的反向流量转发给所述主机。
优选地,所述混杂交换机用于在收到所述正向流量后,匹配其上的所述流表,若匹配流表中流表项的特征,则按照所述流表项中对应的匹配动作转发正向流量到相应的服务器。
优选地,所述混杂交换机用于在收到所述回向流量后,通过查找所述mac地址表项,得到所述回向流量的目的mac地址和转发端口,通过所述转发端口将回向流量传送给目的mac地址对应的主机。
本发明的有益效果是:本发明通过融合sdn交换机控制层面的主导性及传统交换机mac表项学习能力,实现主机和服务器之间流量完全隔离及按照预设进行转发;并大大的减少纯openflow交换机、控制器的实现难度。
附图说明
图1是本发明方法的流程结构示意图;
图2是本发明一具体实施例的结构示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种mac表项学习转发的方法及装置,通过结合流表转发和mac表项转发技术,实现主机和服务器之间的通信。
如图1所示,本发明所揭示的一种mac表项学习转发的方法,包括:
s1,主机通过控制器下发到混杂交换机上的流表转发正向流量到相应的服务器,同时混杂交换机学习主机的mac地址表项。
具体地,结合图2所示,主机可以有1个或多个,如有三个主机,分别定义为主机1、主机2和主机3,其中,主机1的mac地址为:0.0.1,ip地址为:192.168.1.1,主机2的mac地址为:0.0.2,ip地址为:192.168.1.2,主机3的mac地址为:0.0.3,ip地址为:192.168.1.3。三个主机均与混杂交换机相连,混杂交换机与控制器相连。混杂交换机实施时可以是sdn交换机且具有mac表项学习功能。
服务器也可以有1个或多个,如服务器有两个,分别定义为服务器1和服务器2。
假设主机1与服务器1通信时,主机1将用于访问服务器1的正向流量发送给混杂交换机,由混杂交换机发送给控制器,控制器接收到正向流量后,向混杂交换机下发用于控制正向流量转发的流表。
混杂交换机将正向流量匹配上述流表,若匹配到流表中某条流表项的特征,则按照该流表项中对应的匹配动作,将正向流量转发至服务器1。
与传统交换机将流量广播给除主机外的所有主机和服务器不同,本发明混杂交换机将正向流量直接按控制器下发的流表进行转发。可以实现主机1与服务器1之间流量的完全隔离,且控制层面的主导性强,不会出现将正向流量转发到别的服务器。
优选地,混杂交换机在转发正向流表的同时,学习主机1的mac地址,用于服务器应答主机的回向流量的转发。
s2,服务器根据混杂交换机上学习的所述mac地址表项转发回向流量到所述主机。
具体地,如服务器1接收到主机1发送过来的正向流量后,需要回复回向流量给主机1,则先发送回向流量给混杂交换机,查找混杂交换机学习的mac地址表项,如查找到主机1的mac地址(即回向流量的目的mac地址)和主机1与混杂交换机相连的转发端口,通过所述转发端口将回向流量传送给目的mac地址对应的主机1。
与上述一种mac表项学习转发的方法相对应的,本发明所揭示的一种mac表项学习转发的装置,包括至少一主机、混杂交换机、控制器和至少一服务器,其中,所述混杂交换机用于根据控制器下发的流表,将主机发过来的正向流量转发给相应的服务器,同时学习主机的mac地址表项。具体转发流程可参照上述方法中的步骤s1中的描述,这里不做赘述。
所述混杂交换机还用于根据学习的所述mac地址表项,将服务器的反向流量转发给所述主机。具体转发流程可参照上述方法中的步骤s2中的描述,这里不做赘述。
本发明可实现主机和服务器之间流量完全隔离及按照预设进行转发;并大大的减少纯openflow交换机、控制器的实现难度。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。