基于媒体接入控制地址的网络接入控制方法

文档序号:7660348阅读:147来源:国知局

专利名称::基于媒体接入控制地址的网络接入控制方法
技术领域
:本发明涉及网络通信
技术领域
,尤其涉及一种基于媒体接入控制地址的网络接入控制方法。
背景技术
:随着网络通信技术的发展,越来越多的用户计算机通过网络接入设备(如交换机)接入网络,进行用户所需要的网络访问。每台接入网络的用户计算机均拥有一个唯一的MAC(媒体接入控制)地址,作为链路层设备相互访问的唯一标识,通常用户计算机的MAC地址不允许修改,但由于计算机访问网络所应用的网卡或用户计算机应用的操作系统提供了修改其MAC地址的功能,必然会发生MAC地址被修改的情况,因此,网络中但可能出现MAC地址重复的现象。基于目前的网络安全技术状况,对于重复出现的MAC地址,在交换机端口中可以自由地被学习到,而不会受到任何限制。但是,当具有相同MAC地址的两台计算机接入到同一个二层交换机上或者在一个局域网中时,彼此之间必然会发生冲突,可能导致合法用户无法对网络进行正常的访问,使合法用户的利益受到损害;另一方面也使得网络运营商无法对网络接入设备各端口接入用户进行正常地管理,且无法保证网络的安全,如交换机端口下可以随意接入用户,而无法有效控制接入用户的数量,将导致局域网无法有效地防止外来人员的访问内部资源,当网络发生故障时无法定位责任人,以及过多的合法和/或非法接入用户将影响网络的安全和传输性能,等等问题的出现。
发明内容为此,本发明的目的是提供一种基于媒体接入控制地址的网络接入控制方法,一方面保证合法用户的利益不受损害,另一方面方便网络运营商对接入用户进行管理,保证网络的安全运营。本发明的目的是通过下述方案实现的所述的一种基于媒体接入控制地址的网络接入控制方法,包括a、设置网络接入设备端口允许动态学习MAC(媒体接入控制)地址的数量;b、根据设置的网络接入设备端口允许动态学习MAC地址的数量,控制通过该端口接入网络的非绑定用户数量。所述的基于媒体接入控制地址的网络接入控制方法还包括在网络接入设备端口上配置静态MAC地址,将MAC地址与网络接入设备端口的静态绑定,以确定通过该端口接入网络的绑定用户。所述的将MAC地址与网络接入设备端口静态绑定为将网络接入设备端口与MAC地址静态添加到MAC地址表中,且将其老化时间设置为不老化。本发明中,当MAC地址与网络接入设备端口静态绑定时,所述网络接入设备端口允许学习MAC地址的数量设置为零或者非零数值,设置为零时,表示该端口禁止动态学习MAC地址;设置为非零数值时,表示允许动态学习设置数值的MAC地址。所述的步骤b包括b1、网络接入设备收到MAC地址解析请求报文时,获取该报文的源端口信息;b2、根据获取的源端口信息判断该源端口已经学习的MAC地址数量是否等于或大于设置的允许学习MAC地址的数量,如果是,则丢弃收到的MAC地址解析请求报文,否则,将收到的MAC地址解析请求报文的源MAC地址添加到MAC地址表中,并将该源端口已经学习的MAC地址数量加1。所述的丢弃收到的MAC地址解析请求报文,进一步包括通过控制网络接入设备的交换芯片,禁止通过硬件方式将该MAC地址解析请求报文在VLAN(虚拟局域网)内广播,全部送设备的CPU(中央处理器)进行处理,由CPU对报文作丢弃处理。所述的控制网络接入设备的交换芯片为向网络接入设备的交换芯片的寄存器写入一个数值,即将寄存器中用于确定是否允许未解析报文在VLAN内广播的标志位置位。所述的步骤b还包括判断报文的目的MAC地址是否解析,如果未解析,则向网络中未绑定静态MAC地址的非绑定端口广播目的MAC地址解析请求报文,否则,不做处理。所述的判断报文的目的MAC地址是否解析,是根据目的MAC地址是否已经存在于MAC地址表中确定的,如果目的MAC地址存在于MAC地址表中,则确定目的MAC地址已解析,否则,确定目的MAC地址未解析。所述的目的MAC地址解析后,向源MAC地址端发送携带着该目的MAC地址的报文。由上述技术方案可以看出,本发明的实现有效地控制了网络接入设备端口允许学习MAC地址的数量并提供了端口和MAC地址的绑定方法,从而限制了该端口接入用户的数量和接入位置,使得用户不得随意更改接入网络的位置。本发明中MAC地址与网络接入设备端口绑定的处理方式,方便了网管人员对网络接入设备各端口接入用户的管理,绑定MAC地址的端口和不绑定MAC地址的端口(非绑定端口)可以根据需要由网管人员来指定,为网络的运营管理提供了高度的灵活性,例如,在小区宽带和校园网建设中应用本发明将给网络的管理带来极大的方便。图1为本发明的具体实施方式流程图;图2为本发明的应用环境示意图。具体实施例方式本发明所述的基于媒体接入控制地址的网络接入控制方法的核心思想为针对MAC地址与网络接入设备端口间的关系采用了两种配置模式,一种为限制网络接入设备端口接入用户的数量,另一种是将用户的MAC地址与其接入的网络接入设备端口绑定,确定端口下接入的用户,这两种模式在网络中的应用方便了对接入用户的管理。在二层网络通讯中,交换机是通过动态学习MAC地址的方式来维护其中的MAC地址表,即动态的增加或者删除MAC地址表中与各端口对应的MAC地址,因此,为实现对网络接入用户的控制管理,可以基于MAC地址实现。为实施本发明首先需要在网络接设备中定义以下全局变量变量1为USHORTg_usMaxAddrNumLearnedOnPort[MAX_PORT_NUM],用于存放各个网络接入设备端口允许学习MAC地址的最大数量;通过对该变量的灵活设置,可以控制网络接入设备端口学习MAC地址的状态,例如端口允许学习最大地址个数设置为-1,表示该端口未使能地址学习最大个数限制,否则该端口使能了地址学习最大个数限制;该变量由网络管理人员根据需要在网络接入设备中针对各个端口进行设置,当该变量为0时,表示该端口禁止学习MAC地址;变量2为USHORTg_usAddrNumLearnedOnPort[26MAX_PORT_NUM],用于存放各个网络接入设备端口已经学习到的MAC地址的数量;端口已学习地址个数初始化为0,表示该端口还没有学习MAC地址,当该端口下每学习一个MAC地址时,则在该端口下的已经学习到的地址数量统计数值加1,该变量与变量1配合应用实现对网络接入设备接入用户数量的控制;变量3为ULONGg_ulAddrLearningState,用于存放地址学习状态,其中允许学习MAC地址可将该变量设置为“ENABLE”,否则可以设置为“DISABLE”;地址学习状态标志的默认状态可以设置为“ENABLE”允许进行MAC地址的学习,当通过命令行设置禁止MAC地址学习后,则该标志更新为“DISABLE”;该变量也可以以变量1代替,当禁止某一端口下学习MAC地址时,则将变量1设置为-1或0,当允许某一端口下学习MAC地址时,则将变量1设置为具体的数值或无穷大。定义了上述各个变量后,还需要在网络接入设备中定义学习MAC地址时的判断条件,具体可以设置为if(((UINT2)(-1))!=g_usMaxAddrNumLearnedOnPort[rxPnum]&&(g_usAddrNumLearnedOnPort[rxPnum]>=g_usMaxAddrNumLearnedOnPort[rxPnum])),具体含义为若该端口使能端口最大地址数目限制同时端口学习的MAC地址数目已经超过最大允许学习MAC地址的数目后,则执行以下操作给交换芯片的寄存器写入一个数值,相当于一个确定是否允许未解析报文在VLAN内广播的标志位,用于禁止该地址未解析报文在VLAN(虚拟局域网)内广播,全部送设备的CPU(中央处理器)进行处理;由CPU对报文丢弃处理。经过了如上所述的设置后,现将本发明的具体实现过程结合附图作进一步说明,如图1所示步骤1网络接入设备收到MAC地址解析请求报文,即收到接入用户发来的MAC地址未解析报文;步骤2判断该报文是否为源MAC地址解析请求报文,如果是,则执行步骤3,否则,执行步骤10;步骤3获取上述报文的源端口信息;步骤4根据所获取的源端口信息判断该端口的地址学习状态,即判断该端口下是否限制MAC地址学习数目,如果限制,则执行步骤5,否则执行步骤8;步骤5判断该端口下已经学习的MAC地址数量是否大于或等于已设置允许学习MAC地址的数量,如果是,则该端口下已经不允许再学习MAC地址,执行步骤9,否则,执行步骤6;步骤6将报文的源MAC地址添加到网络接入设备的MAC地址表中,并执行步骤7,加入MAC地址表中的MAC地址对应的用户端可以进行正常的报文发送和接收工作;步骤7将网络接入设备该端口下已经学习的MAC地址数量作加1处理,并执行步骤11,以统计并限制相应端口下学习MAC地址的数量;步骤8将报文的MAC地址添加到MAC地址表中;步骤9丢弃该MAC地址解析请求报文;步骤10向网络接入设备各端口广播该MAC地址解析请求报文;步骤11本次MAC地址的学习过程结束。本发明所述的方法还包括进行各个端口与对应MAC地址的绑定的设置,如果网络接入设备各端口中存在绑定MAC地址的端口,且绑定MAC地址的端口不再允许学习MAC地址,则步骤10中所述的MAC地址解析请求报文仅需要向非绑定端口广播。现结合图2将MAC地址与端口绑定实际应用作进一步说明,当将PC1(主机1)的MAC1与port1(端口1)绑定在一起时,可以在交换机的命令行中使用如下方式实现Quidway(config)#inte0/1/选定以太网端口1;Quidway(config-if-Ethernet0/1)#MAC-address-tablemax-MAC-count0/端口1下在MAC地址表中最大允许学习的MAC地址数为0;Quidway(config-if-Ethernet0/1)#exit/退到全局配置模式Quidway(config)#MACstatic0050.ba19.6ac0inte0/1vlan1/静态配置VLAN1中以太网端口1的MAC地址为0050.ba19.6ac0;Quidway(config)#showMAC/查看mac地址表项MACADDRVLANIDSTATEPORTINDEXAGINGTIME(s)0005.5dfd.b2341LearnedEthernet0/22060010.dc19.6db31LearnedEthernet0/21430020.eda7.37781LearnedEthernet0/21520050.ba19.6ac01ConfigstaticEthernet0/1NOAGED00e0.fc08.25d11LearnedEthernet0/222300e0.fc09.bcf91LearnedEthernet0/2290Quidway(config)#其中MACADDR字段记录MAC地址;VLANID字段记录VLAN标识;STATE字段记录该条配置的状态;PORTINDEX字段记录网络接入设备的端口号;AGINGTIME(s)字段记录该条配置的老化时间;NOAGED表示该条配置为不老化。通过上述针对具体命令行的描述,可以知道如何将MAC地址与相应的端口绑定,可以将要绑定的端口下所允许学习的最大地址数目设置为0,然后通过配置静态MAC地址来实现与端口的绑定;还可以设置为静态MAC地址绑定和允许动态MAC地址学习两种情况并存,此时,只需将端口允许学习的MAC地址数量设置为允许动态学习MAC的最大数目即可。现仅讨论MAC地址与相应的端口绑定,且端口允许学习的MAC地址数量设置为零的情况当网络接入设备(即交换机)端口下绑定了相应的MAC地址后,则不再允许所绑定的MAC地址以外的MAC地址由该端口接入网络,假设图2中将MAC1绑定在port1下,该端口下只能允许PC1接入并访问网络,其他主机(如PC2、PC3等)接在port1下则无法进行正常的网络访问,现可以假设PC2接在port1下面并且试图与PC3建立连接,则经过上述静态配置的网络接入设备将作如下处理1、PC2首先向发送ARP(地址解析协议)请求报文,来请求IP(互联网协议)地址是IP3的PC3的MAC地址,该报文在VLAN内被广播,同时也会产生源MAC地址未解析事件(即源MAC地址请求报文),所述的源MAC地址未解析事件为因报文的源MAC地址未被学习到MAC地址表中而产生的事件,报文同时复制并发送到CPU(中央处理器),CPU确定port1下允许学习的动态MAC地址个数为0,因此将对该报文丢弃;2、PC3收到ARP请求后发出ARP响应报文,该响应报文为单播报文,仅发送给PC2,但由于此时MAC2和MAC3还没有被添加到MAC地址表中,因此报文会被网络接入设备(即交换机)作为源MAC地址未解析事件和目的MAC地址未解析事件(即目的MAC地址请求报文)送给CPU处理,所述的目的MAC地址未解析事件为因报文的目的MAC地址未被学习到MAC地址表中而产生的事件;3、由于PC3所连接的端口port3没有绑定MAC地址,为非绑定端口,因此可以在此端口下学习到PC3的MAC地址;同时由于PC2的MAC地址MAC2未解析,因此还需要向非绑定端口广播该未解析事件,由此可以看出该报文不会达到port1,即PC2无法获取PC3的MAC地址信息;4、当PC3的MAC地址被添加到MAC地址表中以后,PC2继续请求与PC3建立连接,由于PC2没有得到PC3的MAC地址,因此会继续发送ARP请求,此时ARP报文对于交换机只产生源MAC地址未解析事件,根据处理流程,该报文最终被上交CPU,经过判断,丢弃该报文;因此,在交换机的MAC地址表中无法学习到PC2的MAC地址,PC2无法与PC3进行有效数据通信。若此时PC2的用户在自己的PC机上配置PC3的静态ARP地址,此时PC2查找PC3时,从PC2发出的将是ICMP(网间控制报文协议)报文,对于交换机而言,PC3的MAC地址已经解析,PC2的MAC地址没有学习到,仍产生源MAC未解析事件,报文将上CPU,经过判断丢弃此报文。而当PC1接在绑定的端口port1时,请求与PC3建立连接的过程为因为PC1的MAC地址MAC1已经被绑定在port1下,所以MAC地址MAC1已经解析,当PC1发出的针对MAC3的ARP请求报文被广播到port3端口时,PC3发出ARP响应报文,该报文被作为源MAC未解析报文上交给CPU,在非绑定端口port3下可以学习MAC地址,则MAC3被学习在port3下面,这样当PC1继续PC3时,由于MAC1和MAC3都被添加到MAC地址表中,交换芯片可以根据表中的MAC地址直接进行报文交换;在MAC3被添加至MAC地址表中的同时,PC3回应给PC2的报文还需要通过协议栈发送给PC1,避免port1下的PC1在MAC3添加至MAC地址表之前发送出的报文的回应报文被丢弃,防止正常用户通讯时首包丢弃。通过上述处理过程的描述可以看出,当交换机端口下绑定了相应的MAC地址,仅该端口允许学习的MAC地址数量为0时,所绑定的MAC地址以外的MAC地址再也无法由该端口接入网络,实现了本发明的目的。在本发明中,如果将某端口设置为静态MAC地址绑定和允许动态MAC地址学习两种情况并存,则对通过该端口接入网络的用户仅需要采用限制该端口允许学习的MAC地址数量的处理过程,即图1所示的步骤1至步骤11即可,此时,端口设置的静态绑定的MAC地址的作用仅是网络管理人员可以准确地定位接入网络的用户,而不再具有限制拥有其他MAC地址的用户由该端口接入网络的功能。权利要求1.一种基于媒体接入控制地址的网络接入控制方法,其特征在于包括a、设置网络接入设备端口允许动态学习MAC(媒体接入控制)地址的数量;b、根据设置的网络接入设备端口允许动态学习MAC地址的数量,控制通过该端口接入网络的非绑定用户数量。2.根据权利要求1所述的基于媒体接入控制地址的网络接入控制方法,其特征在于该方法还包括在网络接入设备端口上配置静态MAC地址,将MAC地址与网络接入设备端口的静态绑定,以确定通过该端口接入网络的绑定用户。3.根据权利要求2所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的将MAC地址与网络接入设备端口静态绑定为将网络接入设备端口与MAC地址静态添加到MAC地址表中,且将其老化时间设置为不老化。4.根据权利要求2所述的基于媒体接入控制地址的网络接入控制方法,其特征在于当MAC地址与网络接入设备端口静态绑定时,所述网络接入设备端口允许学习MAC地址的数量设置为零或者非零数值,设置为零时,表示该端口禁止动态学习MAC地址;设置为非零数值时,表示允许动态学习设置数值的MAC地址。5.根据权利要求1所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的步骤b包括b1、网络接入设备收到MAC地址解析请求报文时,获取该报文的源端口信息;b2、根据获取的源端口信息判断该源端口已经学习的MAC地址数量是否等于或大于设置的允许学习MAC地址的数量,如果是,则丢弃收到的MAC地址解析请求报文,否则,将收到的MAC地址解析请求报文的源MAC地址添加到MAC地址表中,并将该源端口已经学习的MAC地址数量加1。6.根据权利要求5所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的丢弃收到的MAC地址解析请求报文,进一步包括通过控制网络接入设备的交换芯片,禁止通过硬件方式将该MAC地址解析请求报文在VLAN(虚拟局域网)内广播,全部送设备的CPU(中央处理器)进行处理,由CPU对报文作丢弃处理。7.根据权利要求6所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的控制网络接入设备的交换芯片为向网络接入设备的交换芯片的寄存器写入一个数值,即将寄存器中用于确定是否允许未解析报文在VLAN内广播的标志位置位。8.根据权利要求5所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的步骤b还包括判断报文的目的MAC地址是否解析,如果未解析,则向网络中未绑定静态MAC地址的非绑定端口广播目的MAC地址解析请求报文,否则,不做处理。9.根据权利要求8所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的判断报文的目的MAC地址是否解析,是根据目的MAC地址是否已经存在于MAC地址表中确定的,如果目的MAC地址存在于MAC地址表中,则确定目的MAC地址已解析,否则,确定目的MAC地址未解析。10.根据权利要求8所述的基于媒体接入控制地址的网络接入控制方法,其特征在于所述的目的MAC地址解析后,向源MAC地址端发送携带着该目的MAC地址的报文。全文摘要本发明涉及一种基于媒体接入控制地址的网络接入控制方法。该方法为首先设置网络接入设备端口允许学习的MAC地址数量,并进一步将网络接入设备端口与静态MAC地址绑定,然后根据上述设置控制网络接入设备端口接入网络的用户。本发明的实现有效地控制了网络接入设备端口允许学习MAC地址的数量,从而限制了该端口接入用户的数量,同时还实现了MAC地址与端口绑定的解决方案,方便了网管人员对网络接入设备各端口接入用户的管理,为网络的运营管理提供了高度的灵活性。文档编号H04L12/24GK1571349SQ0314400公开日2005年1月26日申请日期2003年7月25日优先权日2003年7月25日发明者张剑锋,胡元章,晋兆琼,王燕平,孙松儿,刘新民,李玉涛申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1