本发明属于网络安全技术领域,具体涉及一种在安全网络中保证报文不被分片的方法和系统。
背景技术:
现有技术中,在进行报文的网络传输时,通常会加入一个带ip的网络设备处理报文的加解密,同时处理mtu(maximumtransmissionunit)的事宜,保证加密后每个报文的大小不超过pmtu(pathmaximumtransmissionunit)。然而,这一技术方案存在以下问题:(1)需要在网络中添加一个带ip的网络设备,对原有业务造成一定影响;(2)通常用sslvpn或ipsecvpn加上nat技术进行组网,网络规划比较复杂。
数据报文在加密之后,会比原有的未加密的网络报文大。如果原有网络报文的大小已经接近或等于pmtu的最大报文大小,在加密后,就会超过pmtu的限制,网络传输中,会被其它网络设备作分片处理。即一个大的报文拆分成2个小的报文。而单个报文的加解密信息是分别存储的,如协商出来的过程密钥信息或随机数信息,甚至校验用的mac值都是存在单个报文中的。由于加解密设备不拥有ip地址,故通常不能把分片报文重新组装,也就无法正确解密被分片的加密报文。
为了解决在安全网络中保证报文不被分片的问题,不影响原有网络架构,又要保证网络通信的安全,可以在服务器和客户端各自加入一个无ip的设备来对数据进行加解密。但是由于加密后的报文通常会比不加密的报文大,并且这个过程对客户端和服务器端是透明的,所以容易造成加密后的报文大小大于pmtu,导致报文分片并且分片后的报文不能被正确解密。因此,急需一种新的技术解决方案来解决现有技术中所存的上述问题。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的是提供一种在安全网络中保证报文不被分片的方法和系统。该方法和系统能够在无ip的加解密设备上,在安全网络中保证报文不被分片,从而更高效的进行数据传输。
为达到以上目的,本发明采用的技术方案是:
一种在安全网络中保证报文不被分片的方法,包括以下步骤:
在服务器和客户端分别增加一个加解密设备,用于保护数据在internet上的传输安全;
预先在加解密设备上设置一个安全的mtu值,加解密设备监控所有报文,并分析出dhcpack报文;
当有dhcpack报文经过时,设备分析出该报文的分配给客户机的ip地址,所述的ip地址通常在“yiaddr”域中;
结合服务器的源ip构造出一个伪的icmp报文,将事先设置的安全mtu值填入icmp报文中的“next-hopmtu”,让客户端认为pmtu是预先设定的值。
进一步,所述的加解密设备是一个无ip地址的网络设备;
进一步,所述的安全阀值为1300-1450个字节。
更进一步,所述的安全阀值为1400个字节。
本发明还提供了一种在安全网络中保证报文不被分片的系统,包括服务器和客户端,并且在服务器和客户端分别增加了一个加解密设备,用于保护数据在internet上的传输安全,所述的加解密设备是一个无ip地址的网络设备。
进一步,所述的加解密设备包括以下模块:
mtu值设置模块,用于预先在加解密设备上设置一个安全的mtu值;
报文监控模块,用于监控所有报文,并分析出dhcpack报文;
ip地址解析模块,用于当有dhcpack报文经过时,设备分析出该报文的分配给客户机的ip地址,所述的ip地址通常在“yiaddr”域中;
伪的icmp报文构造模块,用于结合服务器的源ip构造出一个伪的icmp报文,将事先设置的安全mtu值填入icmp报文中的“next-hopmtu”,让客户端认为pmtu是预先设定的值。
本发明的效果在于:采用本发明所述的方法和系统,可以在无ip的加解密设备上,在安全网络中保证报文不被分片,从而更高效的进行数据传输。
附图说明
图1是现有技术中的网络架构图;
图2是采用本发明所述方法和系统后的网络架构图;
图3是本发明具体实施方式中所述方法的流程图;
图4是本发明具体实施方式中所述系统中的加密设备的结构框图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步描述。
本发明的核心在于采用了新的网络架构,在服务器和客户端都加了一个加解密设备,用于保护数据在internet上的传输安全。新加入的加解密设备,为了不影响原有的网络架构,可以是一个无ip地址的网络设备。
如图2所示,一种在安全网络中保证报文不被分片的系统,包括服务器和客户端,并且在服务器和客户端分别增加了一个加解密设备,用于保护数据在internet上的传输安全,所述的加解密设备是一个无ip地址的网络设备。
本实施例中,所述的加解密设备包括以下模块:
mtu值设置模块,用于预先在加解密设备上设置一个安全的mtu值;
报文监控模块,用于监控所有报文,并分析出dhcpack报文;
ip地址解析模块,用于当有dhcpack报文经过时,设备分析出该报文的分配给客户机的ip地址,所述的ip地址通常在“yiaddr”域中;
伪的icmp报文构造模块,用于结合服务器的源ip构造出一个伪的icmp报文,将事先设置的安全mtu值填入icmp报文中的“next-hopmtu”,让客户端认为pmtu是预先设定的值。
如图3所示,一种在安全网络中保证报文不被分片的方法,包括以下步骤:
步骤s1,在服务器和客户端分别增加一个加解密设备,用于保护数据在internet上的传输安全;
步骤s2,预先在加解密设备上设置一个安全的mtu值,加解密设备监控所有报文,并分析出dhcpack报文;
步骤s3,当有dhcpack报文经过时,设备分析出该报文的分配给客户机的ip地址,所述的ip地址通常在“yiaddr”域中;
步骤s4,结合服务器的源ip构造出一个伪的icmp报文,将事先设置的安全mtu值填入icmp报文中的“next-hopmtu”,让客户端认为pmtu是预先设定的值。
所述的加解密设备是一个无ip地址的网络设备,所述的安全阀值为1300-1450个字节。本实施例中,所述的安全阀值为1400个字节。
要想解决报文被分片的问题,必须要在源头控制报文大小,让源头的主机“认为”pmtu的值是一个比实际pmtu更小的值,这样从这主机发出的报文大小就在安全阀值之内,通过加密设备之后也不会被分片。
由于加密设备是不拥有ip地址的,所以无法按照标准协议进行pmtu的协商和传递。
本发明提出的解决方案是:预先在加解密设备上设置一个安全的mtu值(如1400)。同时,加解密设备监控所有报文,并分析出dhcpack报文。当有dhcpack报文经过时,设备分析出该报文的分配给客户机的ip地址,通常在“yiaddr”域中。结合服务器的源ip就能构造出一个伪的icmp报文,将事先预制的安全mtu值填入icmp报文中的“next-hopmtu”,让客户端认为pmtu是预先设定的值。
举例如下:
通常,网络中的pmtu的值为1500,加密要预留100个字节左右的冗余空间,那么安全阀值是1400个字节。加解密设备上预设一个安全的mtu值为1400。加解密设备时刻监控经过的报文,当有dhcpack报文经过时,就分析该报文的分配给客户机的ip地址,通常在“yiaddr”域中。结合服务器的源ip就能构造出一个伪的icmp报文,将事先预制的安全mtu值(1400)填入icmp报文中的“next-hopmtu”,让客户端认为pmtu是预先设定的值(1400)。今后客户端的报文就会小于或等于1400个字节,从而避免了安全网络中报文分片的问题。
如果某个目的地址的pmtu的值为1500,加密要预留100个字节左右的冗余空间,那么安全阀值是1400个字节。也就是如果收到了大于1400个字节的报文,就触发加密设备向报文来源设备发送伪icmp报文,将1400填入icmp报文中的“next-hopmtu”,让报文来源设备认为pmtu是1400。其中,icmp报文中的目的地址和源地址采用原报文中的目的地址和源地址,从而规避加解密设备没有ip的问题。同时丢弃原始ip报文。
通过上述实施例可以看出,本发明技术方案带来的有益效果:在无ip的加解密设备上,用伪icmp报文告知主机一个假pmtu,从而让主机发送更小的报文,加解密的顺利进行,从而更高效的进行数据传输。
本领域技术人员应该明白,本发明所述的方法和系统并不限于具体实施方式中所述的实施例,上面的具体描述只是为了解释本发明的目的,并非用于限制本发明。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围,本发明的保护范围由权利要求及其等同物限定。