实现支持虚拟局域网防火墙的方法

文档序号:6479197阅读:172来源:国知局
专利名称:实现支持虚拟局域网防火墙的方法
技术领域
本发明涉及一种实现支持虚拟局域网防火墙的方法,特别是指一种针对虚拟局域网环境在链路层、网络层和应用层对其支持的方法,属于网络技术领域。
目前,在交换式以太网中,利用VLAN技术,可以将由交换机连接成的物理网络划分成多个逻辑子网。也就是说,一个VLAN中的站点所发送的广播数据包将仅转发至属于同一VLAN的站点。而在传统局域网中,由于物理网络和逻辑子网的对应关系,因此任何一个站点所发送的广播数据包都将被转发至网络中的所有站点。
在交换式以太网中,各站点可以分别属于不同的VLAN。构成VLAN的站点不拘泥于所处的物理位置,它们既可以挂接在同一个交换机中,也可以挂接在不同的交换机中。
在目前的防火墙产品并不能支持VLAN,一些做法是把防火墙本身作为一个VLAN虚设备;但是这样的做法又不支持网桥,因此限制了防火墙在VLAN环境中的应用。
本发明的主要目的在于提出一种实现支持虚拟局域网防火墙的方法,其针对VLAN环境在链路层、网络层和应用层支持VLAN,解决目前防火墙对VLAN不支持或者支持的不彻底的问题;能够在虚拟网络环境中完全实现防火墙的包过滤、网络地址传输(Network Address Transmission,简称NAT)和代理功能。
本发明的目的是这样实现的一种实现支持虚拟局域网防火墙的方法,对到达虚拟局域网防火墙的数据包进行包过滤之前,根据该数据包的帧头信息分别处理,配合在链路层、网络层或应用层的数据包过滤;至少包括对到达防火墙的数据包在链路层进行交换的方法,在网络层的处理方法以及应用层代理的方法。
当到达防火墙的数据包的目的媒体存取控制(Media Access Control,简称MAC)地址和源MAC地址处于同一网段时,则仅在链路层交换该数据包;链路层进行交换方法的具体步骤为步骤100去掉数据包的帧头信息,然后进行数据包过滤;步骤110将过滤后的数据包发送。
如上所述的步骤100具体包括步骤101判断数据帧的类型;如果该数据帧为一般以太网帧,则执行步骤102;如果该数据帧为虚拟局域网帧,则执行步骤103;步骤102按照一般IP报文以太网帧头的长度移动该以太网帧头指针,执行步骤104;步骤103按照虚拟局域网帧头的长度移动该以太网帧头指针;步骤104进行数据包过滤。
当到达防火墙的数据包的目的MAC地址和源MAC地址不处于同一网段时,则通过网络层处理该数据包,具体的处理方法为步骤200接收从链路层传来的数据包,并去掉该数据包的帧头信息;步骤210记录VLAN标记和目的MAC地址信息;
步骤220进行网络层接收处理后进行数据包过滤;步骤230网络层发送处理;步骤240重构该数据包的帧头信息,并加入VLAN标记;步骤250将数据包发送到链路层。
去掉该数据包的帧头信息的具体步骤包括步骤201判断数据帧的类型;如果该数据帧为一般以太网帧,则执行步骤202;如果该数据帧为虚拟局域网帧,则执行步骤203;步骤202按照一般IP报文以太网帧头的长度移动该以太网帧头指针;步骤203按照虚拟局域网帧头的长度移动该以太网帧头指针。
网络层接收处理为在网络的接收处理中,当数据包被送到上层协议处理时,首先去掉相应的数据帧帧头,然后获取数据包的类型信息值;具体的步骤如下如果该数据帧头为虚拟局域网帧头;则按照虚拟局域网帧头的长度移动该以太网帧头指针;取出该数据帧头的数据包类型信息字。
网络层发送处理包括步骤231根据所记录的VLAN标记和目的MAC地址信息重新填写以太网的帧头,并将帧类型设为虚拟局域网数据帧类型;步骤232标记网桥的MAC地址与接口的映射表;步骤233分别用目的MAC地址和源MAC地址在该网桥MAC地址的哈希(hash)表中查找相应的VLAN标记;步骤234比较该两个VLAN标记是否相同;如相同,则将其填写到以太网帧头中;否则,将该数据包丢弃。
应用层代理的方法为
应用代理接收网络层处理的虚拟局域网报文;释放存储数据包帧头的缓冲区,并在代理发送该报文时重新分配一缓冲区,为以太网帧头预留出相应的长度;对地址解析协议(Address Resolution Protocol,简称ARP)报文进行防火墙应答或防火墙请求处理;具体如下当防火墙收到ARP请求时,重新分配一缓冲区;当报文为虚拟局域网数据时,则多分配4个字节,并预留相应的数据帧长度。
当防火墙发出ARP请求时,将该数据包循环填入当前记录的所有VLAN号进行发送。
本发明针对VLAN环境分别在链路层、网络层和应用层支持VLAN,解决了目前防火墙对VLAN不支持或者支持的不彻底的问题;并能够在虚拟网络环境中完全实现防火墙的包过滤、网络地址传输NAT和代理功能。
以下结合附图
及具体的实施例对本发明作进一步的详细说明。
在链路层交换时,即当到达防火墙的数据包的目的MAC地址和源MAC地址处于同一网段时,并不需要改变数据包以太网帧头的内容,而是直接将数据包的实际内容放入发送接口的队列中;在这种情况下不需要做多余的处理,只需正确地将移动指针指到IP包的头,以使状态包过滤能进行正确的过滤。
对于后两种数据包流向情况,即当到达防火墙的数据包的目的MAC地址和源MAC地址不处于同一网段时,首先在内存中开设一缓冲区,数据包传到网络层时,将以太网的数据帧头剥离,在数据包上到IP层以前,将VLAN标记和目的MAC地址保存在缓冲区之中;而在该数据包要被发送前,先从内存中查找相应的VLAN标记,并在重构以太网数据帧头时将VLAN标记再填回到相应的以太网帧头中。
参见表1其表示了正常IP报文以太网帧头和VLAN报文以太网帧头的结构

从上面的表1中可以看出VLAN报文的以太网帧头比一般的IP报文的帧头多四个字节,帧类型为0x8100,并且第16-17字节所表示的协议类型就是一般IP报文中的第12-13字节的帧类型。
链路层交换对VLAN处理的具体方法为在链路层对VLAN要进行两个处理第一、进行包过滤。第二、记录目的MAC地址和与之相关联的VLAN标记。
包过滤时必须将IP头指针移动到正确的位置,即指针指向IP报头。
网桥在处理数据帧时要记录目的MAC地址和接口的对应关系,所以可将VLAN标记记录下来,增加一个VLAN标记的参数。
网络层NAT的VLAN的处理在网络层做NAT时并不重新分配缓冲区,只是在原缓冲区中修改IP地址、MAC地址和协议类型等内容,所以只要正确地修改上述内容即可。
在网络层的接收处理中,当网桥处理完报文后,需要将这些报文送到上层协议处理时,需要正确的去掉以太网帧头并正确的给类型变量赋值,以使上层的协议能正确的处理该报文。
在网络层的发送处理中,要发送IP包时,重新填写以太网帧头。在这里将帧类型填写为0x8100。VLAN标记则在缓冲区中获取,分别用目的MAC地址和源MAC地址在网桥的MAC地址的哈希表中查找其相应的VLAN标记并比较这两个VLAN标记是否相同;如相同则将其填写到以太网帧头中,否则将该数据包丢弃。这样做的目的主要是防止不同VLAN之间的主机可以通讯。
应用代理的VLAN处理在网络层正确处理VLAN的报文后,应用代理就可以收到该报文,处理完后将为其分配的一段内存缓冲区释放。代理发送报文时重新分配这个缓冲区,为该以太网帧头预留出正确的长度。
ARP报文的处理对于ARP报文分为防火墙应答和防火墙请求两种情况。
其中,防火墙应答的处理为当防火墙收到ARP请求时,重新分配一缓冲区,如果为VLAN时则为该缓冲区多分配4个字节,并预留正确的帧长度。
防火墙请求的处理为当防火墙自己发出ARP请求时,会将目的MAC地址设置为0xffffff,因此并无精确的发送方向,所以必须将该数据包循环填入当前记录的所有的VLAN号进行发送。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种实现支持虚拟局域网防火墙的方法,其特征在于对到达虚拟局域网防火墙的数据包进行包过滤之前,根据该数据包的帧头信息分别处理,配合在链路层、网络层或应用层的数据包过滤;至少包括对到达防火墙的数据包在链路层进行交换的方法,在网络层的处理方法以及应用层代理的方法。
2.根据权利要求1所述的实现支持虚拟局域网防火墙的方法,其特征在于当到达防火墙的数据包的目的MAC地址和源MAC地址处于同一网段时,则仅在链路层交换该数据包;链路层进行交换方法的具体步骤为步骤100去掉数据包的帧头信息,然后进行数据包过滤;步骤110将过滤后的数据包放入发送接口的队列中进行发送。
3.根据权利要求2所述的实现支持虚拟局域网防火墙的方法,其特征在于步骤100具体包括步骤101判断数据帧的类型;如果该数据帧为一般以太网帧,则执行步骤102;如果该数据帧为虚拟局域网帧,则执行步骤103;步骤102按照一般IP报文以太网帧头的长度移动该以太网帧头指针,执行步骤104;步骤103按照虚拟局域网帧头的长度移动该以太网帧头指针;步骤104进行数据包过滤。
4.根据权利要求1所述的实现支持虚拟局域网防火墙的方法,其特征在于当到达防火墙的数据包的目的MAC地址和源MAC地址不处于同一网段时,则通过网络层处理该数据包,具体的处理方法为步骤200接收从链路层传来的数据包,分配一段用于存储数据包帧头的缓冲区,并去掉该数据包的帧头信息;步骤210记录VLAN标记和目的MAC地址信息;步骤220进行网络层接收处理后进行数据包过滤;步骤230网络层发送处理;步骤240重构该数据包的帧头信息,并加入VLAN标记;步骤250将数据包发送到链路层。
5.根据权利要求4所述的实现支持虚拟局域网防火墙的方法,其特征在于去掉该数据包的帧头信息具体包括步骤201判断数据帧的类型;如果该数据帧为一般以太网帧,则执行步骤202;如果该数据帧为虚拟局域网帧,则执行步骤203;步骤202按照一般IP报文以太网帧头的长度移动该以太网帧头指针;步骤203按照虚拟局域网帧头的长度移动该以太网帧头指针。
6.根据权利要求4所述的实现支持虚拟局域网防火墙的方法,其特征在于网络层接收处理为在网络的接收处理中,当数据包被送到上层协议处理时,首先去掉相应的数据帧帧头,然后获取数据包的类型信息值;具体的步骤如下如果该数据帧头为虚拟局域网帧头;则按照虚拟局域网帧头的长度移动该以太网帧头指针;取出该数据帧头的最后两个字节,以后一字节为高位字节,前一字节为低位字节,组合为数据包类型信息字。
7.根据权利要求4所述的实现支持虚拟局域网防火墙的方法,其特征在于网络层发送处理包括步骤231根据所记录的VLAN标记和目的MAC地址信息重新填写以太网的帧头,并将帧类型设为虚拟局域网数据帧类型;步骤232标记网桥的MAC地址与接口的映射表;步骤233分别用目的MAC地址和源MAC地址在该网桥MAC地址的hash表中查找相应的VLAN标记;步骤234比较该两个VLAN标记是否相同;如相同,则将其填写到以太网帧头中;否则,将该数据包丢弃。
8.根据权利要求1所述的实现支持虚拟局域网防火墙的方法,其特征在于应用层代理的方法为应用代理接收网络层处理的虚拟局域网报文;释放存储数据包帧头的缓冲区,并在代理发送该报文时重新分配一缓冲区,为以太网帧头预留出相应的长度;对ARP报文进行防火墙应答或防火墙请求处理。
9.根据权利要求8所述的实现支持虚拟局域网防火墙的方法,其特征在于ARP报文防火墙应答处理为当防火墙收到ARP请求时,重新分配一缓冲区;当报文为虚拟局域网数据时,则多分配4个字节,并预留正确的帧长度即可。
10.根据权利要求8所述的实现支持虚拟局域网防火墙的方法,其特征在于当防火墙发出ARP请求时,将该数据包循环填入当前记录的所有VLAN号进行发送。
全文摘要
一种实现支持虚拟局域网防火墙的方法,对到达虚拟局域网防火墙的数据包进行包过滤之前,根据该数据包的帧头信息分别处理,配合在链路层、网络层或应用层的数据包过滤;至少包括对到达防火墙的数据包在链路层进行交换的方法,在网络层的处理方法以及应用层代理的方法;本发明分别针对VLAN环境分别在链路层、网络层和应用层支持VLAN,解决了目前防火墙对VLAN不支持或者支持的不彻底的问题;并能够在虚拟网络环境中完全实现防火墙的包过滤、网络地址传输NAT和代理功能。
文档编号G06F17/00GK1435969SQ0210085
公开日2003年8月13日 申请日期2002年2月1日 优先权日2002年2月1日
发明者宋斌, 刘春梅, 宋春雨 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1