发明内容
为解决运营商的网络环境中不支持多个变化的私网地址间的数据通信,本发明的主要目的在于提供一种私网设备间通信的实现方法,应用于包括一台中心端设备、第一私网设备和第二私网设备的系统中,所述第一私网设备通过第一NAT设备与所述中心端设备连接,所述第二私网设备通过第二NAT设备与所述中心端设备连接,其特征在于,所述方法具体包括:
A、所述第一私网设备与所述中心端设备建立第一UDP隧道;所述第二私网设备与所述中心端设备建立第二UDP隧道;
B、所述中心端设备将所述第一UDP隧道的信息通告给所述第二私网设备,并将所述第二UDP隧道的信息通告给所述第一私网设备;
C、所述第一私网设备与所述第二私网设备利用所述中心端设备通告的信息进行通信。
进一步地,步骤A中,所述第一私网设备与所述中心端设备建立第一UDP隧道,具体包括:
A11、所述第一私网设备以已配置的中心端设备的公网地址为目的地址,以连接所述第一NAT设备的第一接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带所述第一接口的私网地址和所述第一私网设备自身的标识信息;
A12、所述中心端设备收到所述第一私网设备的隧道请求报文后,提取经过所述第一NAT设备转换后的源地址和源端口号以及所述隧道请求报文中携带的第一接口的私网地址和第一私网设备的标识信息,创建包含所述第一接口的私网地址、第一私网设备的标识信息和经过所述第一NAT设备转换后的源地址及源端口号的映射表项;并以所述第一NAT设备转换后的源地址及源端口号作为目的地址和目的端口号回复隧道应答报文给所述第一私网设备;
A13、所述第一私网设备收到所述中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则向中心端设备发送一个隧道确认报文,同时将作为本端隧道出接口的第一接口连通;
A14、中心端设备收到所述私网设备发送的隧道确认报文后,将作为本端隧道出接口的连接第一NAT设备的接口连通,同时将对应的映射表项生效,所述第一UDP隧道建立成功;
所述第二私网设备与所述中心端设备建立第二UDP隧道,具体包括:
A21、所述第二私网设备以已配置的中心端设备的公网地址为目的地址,以连接所述第二NAT设备的第二接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带所述第二接口的私网地址和所述第二私网设备自身的标识信息;
A22、所述中心端设备收到所述第二私网设备的隧道请求报文后,提取经过所述第二NAT设备转换后的源地址和源端口号以及所述隧道请求报文中携带的第二接口的私网地址和第二私网设备的标识信息,创建包含所述第二接口的私网地址、第二私网设备的标识信息和经过所述第二NAT设备转换后的源地址及源端口号的映射表项;并以所述第二NAT设备转换后的源地址及源端口号作为目的地址和目的端口号回复隧道应答报文给所述第二私网设备;
A23、所述第二私网设备收到所述中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则向中心端设备发送一个隧道确认报文,同时将作为本端隧道出接口的第二接口连通;
A24、中心端设备收到所述私网设备发送的隧道确认报文后,将作为本端隧道出接口的连接第二NAT设备的接口连通,同时将对应的映射表项生效,所述第二UDP隧道建立成功。
进一步地,所述步骤B中,所述第一UDP隧道的信息包括所述第一接口的私网地址、第一私网设备的标识信息和经过所述第一NAT设备转换后的源地址及源端口号的映射表项及中心端设备上第一UDP隧道的隧道出接口信息;所述第二UDP隧道的信息包括所述第二接口的私网地址、第二私网设备的标识信息和经过所述第二NAT设备转换后的源地址及源端口号的映射表项及中心端设备上第二UDP隧道的隧道出接口信息;所述第一UDP隧道的信息和所述第二UDP隧道的信息汇入映射表中。
进一步地,所述步骤C中,所述第一私网设备与所述第二私网设备利用所述中心端设备通告的信息进行通信,具体包括:
所述第一私网设备利用所述中心端设备通告的第一UDP隧道的信息,为待发送到第二私网设备的UDP报文封装一个UDP隧道头部,并将封装后的UDP隧道报文通过所述第一UDP隧道发送到中心端设备;中心端设备收到所述UDP隧道报文后,去掉所述UDP隧道头部,识别出所述UDP报文的目的地址为第二私网设备的第二接口的私网地址;所述中心端设备在映射表中查找所述第二接口的私网地址对应的映射表项,依据查询到的映射表中第二UDP隧道的信息为所述UDP报文封装一个新的UDP隧道头部,并将该封装后的新的UDP隧道报文通过第二UDP隧道发送到第二私网设备上。
进一步地,所述方法还包括:
中心端设备根据第一私网设备和第二私网设备的标识信息,将中心端设备上第一UDP隧道的隧道出接口和第二UDP隧道的隧道出接口进行绑定,当第一私网设备的第一接口收到其下行接口发向所述第二私网设备的第二接口的下行接口的UDP报文后,以第一UDP隧道的信息为所述UDP报文封装UDP隧道头部,并将封装后的UDP隧道报文发送到所述中心端设备;当所述中心端设备从第一UDP隧道接收到来自第一私网设备的UDP隧道报文后,直接去掉UDP隧道头部,以第二UDP隧道的信息为所述UDP报文封装一个新的UDP隧道头部,并将封装后的新的UDP隧道报文从第二UDP隧道发送至第二私网设备上,所述第二私网设备收到所述新的UDP隧道报文后,去掉UDP隧道头部,依据去封装后获取的UDP报文的目的地址进行报文转发。
进一步地,所述方法还包括:
当第一私网设备的第一接口的私网地址发生改变时,第一私网设备会通过第一UDP隧道发送一个地址更新报文到中心端设备,所述地址更新报文的内容包含第一接口的私网地址和第一私网设备的标识信息;
中心端设备收到第一私网设备的地址更新报文后,根据第一私网设备的标识信息查找到对应的映射表项,并对所述映射表项进行更新;
中心端设备将包含更新后的第一私网设备的映射表项的映射表从第二UDP隧道通告给第二私网设备。
本发明的另一目的还在于提供一种私网设备,所述私网设备的私网接口配置有运营商分配的私网地址,所述私网接口通过NAT设备连接运营商的中心端设备,其特征在于,所述私网设备包括:
报文发送模块,用于以已配置的中心端设备的公网地址为目的地址,以连接所述NAT设备的私网接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带所述私网接口的私网地址和所在的私网设备自身的标识信息;
报文接收模块,用于收到所述中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则触发报文发送模块向中心端设备回复隧道确认报文,并将作为本端隧道出接口的私网接口连通。
进一步地,
所述报文发送模块,还用于利用所述中心端设备通告的信息,为待发送到其他私网设备的UDP报文封装一个UDP隧道头部,并将封装后的UDP隧道报文通过自身与中心端设备建立的UDP隧道发送到中心端设备。
进一步地,所述报文发送模块,还用于当私网设备的所述私网接口的私网地址发生改变时,私网设备会通过与中心端设备建立的UDP隧道发送一个地址更新报文到中心端设备,所述地址更新报文的内容包含所述私网接口的私网地址和所在的私网设备的标识信息。
本发明的又一目的还在于提供一种中心端设备,其特征在于,包括:
映射表管理模块,用于提取经过NAT设备转换后的源地址和源端口号以及隧道请求报文中携带的私网接口的私网地址和所在的私网设备的标识信息,创建包含所述私网接口的私网地址、私网设备的标识信息和经过所述NAT设备转换后的源地址及源端口号的映射表项;
所述映射表管理模块,还用于将包括提取到的所有私网设备对应的映射表项和中心端设备上所有私网设备对应的UDP隧道的隧道出接口信息汇入映射表中;
报文接收模块,用于收到某一私网设备的隧道请求报文后,触发报文发送模块以所述NAT设备转换后的源地址及源端口号作为目的地址和目的端口号回复隧道应答报文给所述私网设备;
所述报文接收模块,还用于收到某一私网设备发送的隧道确认报文后,将作为本端隧道出接口的接口连通,并触发映射表管理模块将对应的映射表项生效;
报文发送模块,用于将映射表通告给所有的私网设备。
进一步地,所述报文接收模块,还用于收到UDP隧道报文后,去掉UDP隧道头部,识别出UDP报文的目的地址为某一私网接口的私网地址;触发映射表管理模块在映射表中查找所述私网接口的私网地址对应的映射表项;
所述报文发送模块,还用于依据查询到的映射表中某一私网接口的私网地址对应的UDP隧道的信息在UDP报文中封装一个UDP隧道头部,并将封装后的UDP隧道报文通过所述UDP隧道发送到所述私网接口所在的私网设备上;
所述映射表管理模块,还用于根据私网设备的标识信息,将私网设备在中心端设备上对应UDP隧道的隧道出接口进行绑定。
进一步地,所述报文接收模块,还用于收到某一私网设备的地址更新报文后,触发映射表管理模块根据所述私网设备的标识信息查找到对应的映射表项,并对所述映射表项进行更新;
所述报文发送模块,还用于将包含更新后的私网设备的映射表项的映射表通告给所有的私网设备。
本发明的有益效果为:本发明通过建立UDP隧道来实现私网设备间的数据通信,和传统的隧道技术相比,本发明的隧道技术不受私网设备地址变化的影响,通过从中心端设备获取到的私网设备对应的映射表项,本发明中的私网设备能够动态的获取到其他私网设备的地址变化信息,并且可以获取到经过NAT转换后的公网地址和端口号,实现配置为私网地址的私网设备间的数据通信。在本发明中,中心端设备上不会存在过多的选路过程,不用配置大量的映射表项或路由表项来实现数据的转发。
具体实施方式
为使本发明的技术方案更加清楚明白,现结合附图对本发明做进一步详细说明:
本发明实施例提供一种利用隧道技术来实现配置为私网地址的设备间的相互通信的方法,该方法应用于包括一台中心端设备和多台私网设备的网络环境中,所述私网设备获取到运营商分配的私网地址,所述中心端设备使用运营商的公网地址,运营商的NAT设备对用户来说不可见,其主要进行NAT转换。
本发明实施例一提供一种私网设备间通信的实现方法,应用于包括一台中心端设备、第一私网设备和第二私网设备的系统中,所述第一私网设备通过第一NAT设备与所述中心端设备连接,所述第二私网设备通过第二NAT设备与所述中心端设备连接,如图1所示,本发明所述方法具体包括:
S101、所述第一私网设备与所述中心端设备建立第一UDP隧道;所述第二私网设备与所述中心端设备建立第二UDP隧道。
在本发明中,私网设备以已配置的中心端设备的公网地址为目的地址,以连接所述NAT设备的接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带连接所述NAT设备的接口的私网地址和所述私网设备自身的标识信息,此处的标识信息默认使用设备的MAC地址,也可以根据用户需要配置为设备序列号或其他的标识信息;
中心端设备在收到某一私网设备发送的隧道请求报文后,发送一条隧道应答报文给所述私网设备。所述隧道应答报文的目的地址、源地址、目的端口和源端口隧道请求报文的源地址、目的地址、源端口和目的端口分别对应一致。隧道应答报文的内容除标志位外同隧道请求报文一致,同时,提取所述隧道请求报文的源地址、源端口号、目的地址和目的端口号以及所述隧道请求报文中携带的连接NAT设备的接口的私网地址和私网设备的标识信息,创建一条包含连接NAT设备的接口的私网地址、私网设备的标识信息和运营商NAT转换后的公网地址及端口号的映射表项,并将该条映射表项和隧道出接口进行关联,每个隧道出接口都有一个唯一的映射表项。因此当数据报文到达中心端设备时,不会存在过多的选路过程,不用配置大量的映射表项或者路由表项来实现数据的转发。由于经过运营商的NAT转换后UDP报文的源地址发生了改变,UDP报文的源端口可能会发生改变,因此中心端设备提取的是经过运营商的NAT转换后的源地址和源端口。
私网设备收到中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则向中心端设备发送一个隧道确认报文,同时将本端隧道出接口连通;
中心端设备收到私网设备发送的隧道确认报文后,将本端隧道出接口连通,同时将对应的映射表项生效,所述UDP隧道建立成功。如果隧道建立不成功则继续请求连接。
在本发明实施例中,所述第一私网设备与所述中心端设备建立第一UDP隧道,具体包括:
S111、所述第一私网设备以已配置的中心端设备的公网地址为目的地址,以连接所述第一NAT设备的第一接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带所述第一接口的私网地址和所述第一私网设备自身的标识信息;
S112、所述中心端设备收到所述第一私网设备的隧道请求报文后,提取经过所述第一NAT设备转换后的源地址和源端口号以及所述隧道请求报文中携带的第一接口的私网地址和第一私网设备的标识信息;创建包含所述第一接口的私网地址、第一私网设备的标识信息和经过所述第一NAT设备转换后的源地址及源端口号的映射表项;并以所述第一NAT设备转换后的源地址及源端口号作为目的地址和目的端口号回复隧道应答报文给所述第一私网设备;
S113、所述第一私网设备收到所述中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则向中心端设备发送一个隧道确认报文,同时将作为本端隧道出接口的第一接口连通;
S114、中心端设备收到所述私网设备发送的隧道确认报文后,将作为本端隧道出接口的连接第一NAT设备的接口连通,同时将对应的映射表项生效,所述第一UDP隧道建立成功;
所述第二私网设备与所述中心端设备建立第二UDP隧道,具体包括:
S211、所述第二私网设备以已配置的中心端设备的公网地址为目的地址,以连接所述第二NAT设备的第二接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带所述第二接口的私网地址和所述第二私网设备自身的标识信息;
S212、所述中心端设备收到所述第二私网设备的隧道请求报文后,提取经过所述第二NAT设备转换后的源地址和源端口号以及所述隧道请求报文中携带的第二接口的私网地址和第二私网设备的标识信息,创建包含所述第二接口的私网地址、第二私网设备的标识信息和经过所述第二NAT设备转换后的源地址及源端口号的映射表项;并以所述第二NAT设备转换后的源地址及源端口号作为目的地址和目的端口号回复隧道应答报文给所述第二私网设备;
S213、所述第二私网设备收到所述中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则向中心端设备发送一个隧道确认报文,同时将作为本端隧道出接口的第二接口连通;
S214、中心端设备收到所述私网设备发送的隧道确认报文后,将作为本端隧道出接口的连接第二NAT设备的接口连通,同时将对应的映射表项生效,所述第二UDP隧道建立成功。
S102、所述中心端设备将所述第一UDP隧道的信息通告给所述第二私网设备,并将所述第二UDP隧道的信息通告给所述第一私网设备;其中,所述第一UDP隧道的信息包括所述第一接口的私网地址、第一私网设备的标识信息和经过所述第一NAT设备转换后的源地址及源端口号的映射表项及中心端设备上第一UDP隧道的隧道出接口信息;所述第二UDP隧道的信息包括所述第二接口的私网地址、第二私网设备的标识信息和经过所述第二NAT设备转换后的源地址及源端口号的映射表项及中心端设备上第二UDP隧道的隧道出接口信息;所述第一UDP隧道的信息和所述第二UDP隧道的信息汇入映射表中。
S103、所述第一私网设备与所述第二私网设备利用所述中心端设备通告的信息进行通信。
所述中心端设备通告的信息为映射表,所述第一私网设备与所述第二私网设备利用所述中心端设备通告的信息进行通信,主要包含3中实现方式,具体包括:
第一种实现方式为:所述第一私网设备利用所述中心端设备通告的第一UDP隧道的信息,为待发送到第二私网设备的UDP报文封装一个UDP隧道头部,并将封装后的UDP隧道报文通过所述第一UDP隧道发送到中心端设备;中心端设备收到所述UDP隧道报文后,去掉所述UDP隧道头部,识别出所述UDP报文的目的地址为第二私网设备的第二接口的私网地址;所述中心端设备在映射表中查找所述第二接口的私网地址对应的映射表项,依据查询到的映射表中第二UDP隧道的信息为所述UDP报文封装一个新的UDP隧道头部,并将该封装后的新的UDP隧道报文通过第二UDP隧道发送到第二私网设备上。
第二中实现方式为:中心端设备根据第一私网设备和第二私网设备的标识信息,将中心端设备上第一UDP隧道的隧道出接口和第二UDP隧道的隧道出接口进行绑定,当第一私网设备的第一接口收到其下行接口发向所述第二私网设备的第二接口的下行接口的UDP报文后,以第一UDP隧道的信息为所述UDP报文封装UDP隧道头部,并将封装后的UDP隧道报文发送到所述中心端设备;当所述中心端设备从第一UDP隧道接收到来自第一私网设备的UDP隧道报文后,直接去掉UDP隧道头部,以第二UDP隧道的信息为所述UDP报文封装一个新的UDP隧道头部,并将封装后的新的UDP隧道报文从第二UDP隧道发送至第二私网设备上,所述第二私网设备收到所述新的UDP隧道报文后,去掉UDP隧道头部,依据去封装后获取的UDP报文的目的地址进行报文转发。此种数据通信方式无需再查找映射表。只要私网设备的标识信息不发生改变,即使是私网设备上连接NAT设备的接口的私网地址或经过运营商的公网地址发生了改变,都可以根据私网设备的标识信息查找到对应的隧道出接口。
第三种实现方式为:在某一私网设备上配置接口绑定或网段绑定,所述接口绑定为:在某一私网设备上将该私网设备的与NAT设备相连的接口的某一下行接口与一台私网设备的标识信息对应绑定;所述网段绑定为:在某一私网设备上设置一个网段与一台私网设备的标识信息对应绑定,由于私网设备通过中心端设备通告的信息能够获取到一包含连接NAT设备的接口的私网地址、私网设备的标识信息和运营商NAT转换后的公网地址及端口号的映射表,该映射表中包含所有私网设备的标识信息,因此私网设备间能够通过私网设备的标识信息查询到对应的映射表项中的UDP隧道信息后进行通信。
开启绑定后,来自某一私网设备的与NAT设备相连的接口的某一下行接口的UDP报文或来自某一私网设备上某一网段的UDP报文经过所述私网设备时,在所述私网设备上以与所述下行接口或网段对应绑定的私网设备相连的NAT设备经过NAT转换后的公网地址和端口号为目的地址和目的端口号进行封装UDP报文,由于与所述下行接口或网段对应绑定的私网设备相连的NAT设备存在和与所述下行接口或网段对应绑定的私网设备对应的NAT表项,因此该UDP报文将被发送到与所述下行接口或网段对应绑定的私网设备上,此种实现方式能够实现来自某一私网设备的与NAT设备相连的接口的某一下行接口的UDP报文或来自某一私网设备的某一网段的UDP报文将直接被发送到与其绑定的私网设备上,而不再从中心端设备进行转发,能够满足一台私网设备和多台私网设备间进行通信。
现结合附图对UDP隧道建立成功后,获取到运营商分配的私网地址的私网设备间的进行数据通信的实现方式进行举例说明:
如图2所示,私网设备A和私网设备B获取到运营商分配的私网地址,中心端设备C使用运营商提供的公网地址,g1接口为私网设备B与私网设备B对应的NAT设备相连的接口,当私网设备A和私网设备B需要进行通信时,私网设备A利用所述中心端设备C通告的私网设备A与中心端设备C之间建立的UDP隧道信息,为待发送到私网设备B的UDP报文封装一个UDP隧道头部,并将封装后的UDP隧道报文通过私网设备A与中心端设备C之间建立的UDP隧道发送到中心端设备C;中心端设备C收到所述UDP隧道报文后,去掉所述UDP隧道头部,识别出所述UDP报文的目的地址为私网设备B的g1接口的私网地址;所述中心端设备C在映射表中查找所述g1接口的私网地址对应的映射表项,依据查询到的映射表中私网设备B与中心端设备C建立的UDP隧道信息为所述UDP报文封装一个新的UDP隧道头部,并将该封装后的新的UDP隧道报文通过私网设备B与中心端设备C建立的UDP隧道发送到私网设备B上。
如图2所示,私网设备A和私网设备B获取到运营商分配的私网地址,中心端设备C使用运营商提供的公网地址,g0接口为私网设备A与私网设备A对应的NAT设备相连的接口,g1接口为私网设备B与私网设备B对应的NAT设备相连的接口,g2为g0的下行接口,g3为g1的下行接口,当下行接口g2和下行接口g3间需要进行通信时,中心端设备C根据私网设备A和私网设备B的标识信息,将私网设备A与中心端设备C间建立的UDP隧道的隧道出接口G1和私网设备B与中心端设备C间建立的UDP隧道的隧道出接口G2进行绑定,当私网设备A的g0接口收到其下行接口g2发向所述私网设备B的g1接口的下行接口g3的UDP报文后,以私网设备A与中心端设备C之间建立的UDP隧道信息为所述UDP报文封装UDP隧道头部,并将封装后的UDP隧道报文发送到所述中心端设备C;当所述中心端设备C从私网设备A与中心端设备C之间建立的UDP隧道接收到来自私网设备A的UDP隧道报文后,直接去掉UDP隧道头部,以私网设备B与中心端设备C建立的UDP隧道信息为所述UDP报文封装一个新的UDP隧道头部,并将封装后的新的UDP隧道报文从私网设备B与中心端设备C建立的UDP隧道发送至私网设备B上,所述私网设备B收到所述新的UDP隧道报文后,去掉UDP隧道头部,依据去封装后获取到UDP报文的目的地址为g3接口后进行报文转发。
当第一私网设备的第一接口的私网地址发生改变时,第一私网设备会通过第一UDP隧道发送一个地址更新报文到中心端设备,所述地址更新报文的内容包含第一接口的私网地址和第一私网设备的标识信息;
中心端设备收到第一私网设备的地址更新报文后,根据第一私网设备的标识信息查找到对应的映射表项,并对所述映射表项进行更新;
中心端设备将包含更新后的第一私网设备的映射表项的映射表从第二UDP隧道通告给第二私网设备。
中心端设备每建立、更新、删除一条映射表项,都将通过广播报文发送给所有私网设备。
在本发明实施例中的使用的报文均采用标准的UDP报文,UDP报文的源和目的端口号选定成功后固定不变,仅在标准的UDP报文中自定义了标志位,用于区别不同的报文内容,其报文格式如下表1:
表1
其中,标志位为0x01:表示隧道请求报文;标志位为0x02:表示隧道应答报文;标志位为0x03:表示隧道确认报文;标志位为0x06:表示地址更新报文。
在隧道建立成功后私网设备会定时发送隧道保活Keepalive报文,用于维护建立好的隧道。隧道保活报文的内容为隧道维护信息,其目的地址是中心端设备的公网地址,源地址为连接NAT设备的接口的私网地址,中心端设备在收到隧道保活报文后会对该报文进行应答。在没有数据通信的信息时默认10秒发送一次,发送时间可配置。连续6次未收中心端设备的隧道保活应答报文,私网设备端的隧道断掉。中心端设备默认60秒未收到保活报文,中心端设备端的隧道断掉,并清除相应的映射表项。隧道保活报文可不用携带大量的数据信息,其报文格式如下表2:
表2
其中,标志位为0x04:表示隧道保活报文;标志位为0x05:表示隧道保活应答报文。
如图3所示,本发明实施例二提供一种私网设备30,所述私网设备30的私网接口配置有运营商分配的私网地址,所述私网接口通过NAT设备连接运营商的中心端设备,所述私网设备30包括:
报文发送模块301,用于以已配置的中心端设备的公网地址为目的地址,以连接所述NAT设备的私网接口的私网地址为源地址,发送隧道请求报文给所述中心端设备,所述隧道请求报文中携带所述私网接口的私网地址和所在的私网设备自身的标识信息;
报文接收模块302,用于收到所述中心端设备的隧道应答报文后,识别出所述隧道应答报文的内容和自己发送的隧道请求报文的内容一致,则触发报文发送模块301向中心端设备回复隧道确认报文,并将作为本端隧道出接口的私网接口连通。
所述报文发送模块301,还用于利用所述中心端设备通告的信息,为待发送到其他私网设备的UDP报文封装一个UDP隧道头部,并将封装后的UDP隧道报文通过自身与中心端设备建立的UDP隧道发送到中心端设备。
所述报文发送模块301,还用于当私网设备的所述私网接口的私网地址发生改变时,私网设备会通过与中心端设备建立的UDP隧道发送一个地址更新报文到中心端设备,所述地址更新报文的内容包含所述私网接口的私网地址和所在的私网设备的标识信息。
如图4所示,本发明实施例三提供一种中心端设备40,所述中心端设备40包括:
映射表管理模块403,用于提取经过NAT设备转换后的源地址和源端口号以及隧道请求报文中携带的私网接口的私网地址和所在的私网设备的标识信息,创建包含所述私网接口的私网地址、私网设备的标识信息和经过所述NAT设备转换后的源地址及源端口号的映射表项;
所述映射表管理模块403,还用于将包括提取到的所有私网设备对应的映射表项和中心端设备上所有私网设备对应的UDP隧道的隧道出接口信息汇入映射表中;
报文接收模块402,用于收到某一私网设备的隧道请求报文后,触发报文发送模块401以所述NAT设备转换后的源地址及源端口号作为目的地址和目的端口号回复隧道应答报文给所述私网设备;
所述报文接收模块402,还用于收到某一私网设备发送的隧道确认报文后,将作为本端隧道出接口的接口连通,并触发映射表管理模块将对应的映射表项生效;
报文发送模块401,用于将映射表通告给所有的私网设备。
所述报文接收模块402,还用于收到UDP隧道报文后,去掉UDP隧道头部,识别出UDP报文的目的地址为某一私网接口的私网地址;触发映射表管理模块403在映射表中查找所述私网接口的私网地址对应的映射表项;
所述报文发送模块401,还用于依据查询到的映射表中某一私网接口的私网地址对应的UDP隧道的信息在UDP报文中封装一个UDP隧道头部,并将封装后的UDP隧道报文通过所述UDP隧道发送到所述私网接口所在的私网设备上;
所述映射表管理模块403,还用于根据私网设备的标识信息,将私网设备在中心端设备上对应UDP隧道的隧道出接口进行绑定。
所述报文接收模块402,还用于收到某一私网设备的地址更新报文后,触发映射表管理模块根据所述私网设备的标识信息查找到对应的映射表项,并对所述映射表项进行更新;
所述报文发送模块401,还用于将包含更新后的私网设备的映射表项的映射表通告给所有的私网设备。
综上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。