一种基于nat类型的设备互通方法和系统的制作方法
【专利摘要】本发明提供一种基于NAT类型的设备互通方法,该方法包括:公网中的服务器Server向第一NAT设备内的第一业务设备发送获取第一NAT设备类型的报文,第一业务设备向server反馈该第一NAT设备的类型;Server向第二NAT设备内的第二业务设备发送获取第二NAT设备类型的报文,第二业务设备向server反馈该第二NAT设备的类型;Server根据获取的第一NAT设备和第二NAT设备的类型判断是否进行NAT设备类型的设置;如果是,则发送设置NAT类型的报文;否则不发送设置NAT类型的报文;对应的NAT设备根据设置报文进行NAT类型的重新设置。本发明解决了在一些安全性非常高的NAT类型设备后的设备能实现和其他安全性非常高的NAT类型设备后的设备的互通。
【专利说明】一种基于NAT类型的设备互通方法和系统
【技术领域】
[0001] 本发明涉及网络【技术领域】,尤其涉及基于NAT类型的设备互通方法和系统。
【背景技术】
[0002] 完整的视频监控系统是由摄像、传输、控制、显示、存储5大部分组成。请参图1,本 专利申请主要涉及传输部分。
[0003] 众所周知,随着IP监控技术、互联网技术的推广普及,跨地区部门分支机构、商业 集团全球分部越来越多地使用远程互联网视频监控。而在实际使用中,用户显示设备和监 控摄像机通常位于不同的NAT路由器构建的内网中。用户显示设备和监控摄像机在内网中 通过各自不同的NAT路由器接入互联网。当用户想要访问摄像机时,由于各自接入的NAT 类型复杂以及IP地址、端口等的变化,有的时候该访问会不成功。
[0004] 如何基于已有的接入互联网的公网中的视频监控平台服务器Server和将监控设 备接入网络的NAT路由器,灵活便捷、安全地实现NAT内显示设备和NAT内摄像机之间的互 联访问是本文要解决的问题。
【发明内容】
[0005] 有鉴于此,本发明提供一种基于NAT类型的设备互通方法和系统。
[0006] 该基于NAT类型的设备互通方法包括:公网中的服务器Server向第一 NAT设备 内的第一业务设备发送获取第一 NAT设备类型的报文,第一业务设备向server反馈该第一 NAT设备的类型;Server向第二NAT设备内的第二业务设备发送获取第二NAT设备类型的 报文,第二业务设备向server反馈该第二NAT设备的类型;Server根据获取的第一 NAT设 备和第二NAT设备的类型判断是否进行NAT设备类型的设置;如果是,则发送设置NAT类 型的报文;否则不发送设置NAT类型的报文;NAT设备根据设置报文进行NAT类型的重新设 置。
[0007] 优选地,该方法还包括:第一业务设备和第二业务设备分别向Server进行注册, 第一 NAT设备和第二NAT设备基于所述注册分别记录对应的NAT表项;Server基于第一业 务设备和第二业务设备分别和自身建立的注册会话,分别向第一业务设备和第二业务设备 发送获取第一 NAT设备类型和第二NAT设备类型的报文。
[0008] 优选地,Server发送设置NAT类型的报文给第一业务设备,该设置NAT类型的报文 包括第一 NAT设备所需设置的类型;该设置NAT类型的报文被第一 NAT设备接收,第一 NAT 设备对该设置NAT类型的报文进行解析,并根据所需设置的类型设置自身的NAT类型,且设 置该新的NAT类型只对第一业务设备和第二业务设备的会话起作用。
[0009] 优选地,该Server还分别获取第一 NAT设备和第二NAT设备是否支持对NAT类型 的重新设置;当需要进行NAT设备类型的设置时,向支持NAT类型重新设置的NAT设备发送 设置NAT类型的报文。
[0010] 优选地,Server根据获取的第一 NAT设备和第二NAT设备的类型判断是否进行 NAT设备类型的设置包括:如果第一 NAT设备和第二NAT设备中一个为Symmetric类型,另 一个为Port Restricted Cone或者Symmetric类型,则Server确定对其中一个或者两个 NAT设备进行设置,以使得第一业务设备和第二业务设备至少能通过NAT打洞技术进行互 通。
[0011] 该基于NAT类型的设备互通系统包括:公网中的服务器Server向第一 NAT设备 内的第一业务设备发送获取第一 NAT设备类型的报文,第一业务设备向server反馈该第一 NAT设备的类型;Server向第二NAT设备内的第二业务设备发送获取第二NAT设备类型的 报文,第二业务设备向server反馈该第二NAT设备的类型;Server根据获取的第一 NAT设 备和第二NAT设备的类型判断是否进行NAT设备类型的设置;如果是,则发送设置NAT类 型的报文;否则不发送设置NAT类型的报文;NAT设备根据设置报文进行NAT类型的重新设 置。
[0012] 相较于现有技术,本发明解决了在一些安全性非常高的NAT类型设备后的设备能 实现和其他安全性非常高的NAT类型设备后的设备的互通。
【专利附图】
【附图说明】
[0013] 图1是现有的一种基本监控系统组网图。
[0014] 图2是包含有NAT设备的网络图。
[0015] 图3是本发明实施例流程图。
【具体实施方式】
[0016] NAT 设备具有多种不同的类型,"Full Cone NAT","Restricted Cone NAT","Port Restricted Cone NAT" 和 "Symmetric NAT,'。
[0017] "Full Cone NAT":内网主机建立一个UDP socket (LocalIP:LocalPort),第一次使 用这个socket给外部主机发送数据时,NAT会给其分配一个公网(PublicIP:PublicPort), 以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。 此夕卜,任何外部主机只要知道这个(PublicIP:PublicPort)就可以发送数据给 (PublicIP:PublicPort),内网的主机就能收到这个数据包。
[0018] "Restricted Cone NAT" :内网主机建立一个 UDP socket (LocalIP:LocalPort), 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网 (PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对 (PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知 道这个(PublicIP:PublicPort),并且内网主机之前用这个socket曾向这个外部主机IP发 送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据 给(PublicIP:PublicPort),内网的主机就能收到这个数据包。
[0019] Port Re s tr i c t e d Cone NAT :内网主机建立一个 UDP socket (LocalIP:LocalPort),第一次使用这个socket给外部主机发送数据时NAT会给其 分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将 使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主 机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外 部主机(IP,P〇rt)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP, Port)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。
[0020] Symmetric NAT :内网主机建立一个 UDP socket (LocalIP,LocalPort),当用 这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1), 以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-l,P 〇rt-l),如果 内网主机同时用这个socket给外部主机2发送数据,第一次发送时,NAT会为其分配 一个(PublicIP-2, Port-2),以后内网主机发送给外部主机2的所有数据都是用这个 (PublicIP-2,Port-2)。如果 NAT 有多于一个公网 IP,则 PublicIP-1 和 PublicIP-2 可 能不同,如果NAT只有一个公网IP,则Port-Ι和Port-2肯定不同,也就是说一定不能是 PublicIP-1等于PublicIP-2且Port-Ι等于Port-2。此外,如果任何外部主机想要发送数 据给这个内网主机,那么它首先应该收到内网主机发给他的数据,然后才能往回发送,否则 即使他知道内网主机的一个(PublicIP,Port)也不能发送数据给内网主机,这种NAT无法 实现UDP-P2P通信。
[0021] 请参图2的组网图,公网中有一个Server20, NAT设备21所构建的内网1中有若 干业务设备;NAT设备22所构建的内网2中也存在若干业务设备。根据前文对NAT类型的 介绍可知,在 NAT 设备 21 为 Symmetric ΝΑΤ,ΝΑΤ 设备 22 为 Port Restricted Cone NAT 或 者Symmetric NAT时,无法通过NAT打洞技术实现内网1中的业务设备和内网2中的业务 设备的互通;在 NAT 设备 21 为 Port Restricted Cone NAT,NAT 设备 22 为 Symmetric NAT 时,也无法通过NAT打洞技术实现内网1中的设备和内网2中的设备的互通。
[0022] 在一些应用场景中,需要配置Symmetric NAT,主要是从安全的角度考虑。如果配 置如Full Cone NAT类型NAT时,黑客很容易获取内网终端设备的一些数据。现实中就发 生过这样的案例:在一监控网络,家庭用户在家中安装了一些摄像机,这些监控摄像机位于 家庭出口 NAT路由器构建的内网中,由于这些NAT路由器的NAT类型为Full Cone NAT,导 致了黑客轻而易举地获得了用户家庭的监控图像,并将之传播到网上,造成了恶劣的影响。
[0023] 所以后续用户很希望将自己家中的NAT设备配置为最安全的级别,即Symmetric NAT,但是这又将造成上文提到的访问不通的问题。比如说,用户在公司上班,中间休息时想 看下家中的监控图像,若该用户的观看设备,如PC机,手机终端也位于一 Symmetric NAT的 网络中,则用户将无法观看家中的视频监控画面。
[0024] 下面的方案将基于视频监控网络来进行说明,但是可以理解的是,其他非视频监 控的网络同样可以应用本发明的技术方案。
[0025] 请参图3所示的本发明实施例流程图。
[0026] S31、公网中的服务器Server向第一NAT设备内的第一业务设备发送获取第一NAT 设备类型的报文。
[0027] S32、第一业务设备向server反馈该第一 NAT设备的类型。
[0028] S33、Server向第二NAT设备内的第二业务设备发送获取第二NAT设备类型的报 文,第二业务设备向server反馈该第二NAT设备的类型。
[0029] S34、Server根据获取的第一 NAT设备和第二NAT设备的类型判断是否进行NAT设 备类型的设置;如果是,转步骤S35,否则转步骤S36。
[0030] S35、发送设置NAT类型的报文。
[0031] S36、不发送设置NAT类型的报文。
[0032] S37、NAT设备根据设置报文进行NAT类型的重新设置。
[0033] 上述流程各步骤之间的顺序可以进行一定的调整。比如说,S31和S33之间显然 没有明显的先后关系。
[0034] 在第二NAT设备内的第一业务设备有访问第一 NAT设备内的第二业务设备的需求 时,Server根据获取的第一 NAT设备和第二NAT设备的类型判断是否进行NAT设备类型的 设置;如果是,则发送设置NAT类型的报文;否则不发送设置NAT类型的报文;对应的NAT设 备根据设置报文进行NAT类型的重新设置。
[0035] 对NAT类型的重新设置是将安全级别高的类型往安全级别低的类型进行设置,所 以最好在有访问需求的时候再进行NAT类型的调整,即NAT类型的调整是基于会话的,在本 发明中将称之为Session模式的类型设置。
[0036] 在视频监控系统中,Server为视频监控平台服务器,其管理和控制着若干业务设 备。比如说,第一和第二业务设备均需要向Server进行注册;第一业务设备若需要访问第 二业务设备时,先将访问请求发送给Server, Server根据两者之间的权限、绑定或者其他 关系确认是否允许访问。
[0037] 在第二NAT设备内的第二业务设备有访问第一 NAT设备内的第一业务设备的需求 时,如果此时Server已经获取了第一 NAT设备和第二NAT设备的类型,则直接根据这两者 的类型判断是否需要进行NAT类型的变更设置。如果此时Server还不清楚第一 NAT设备 和第二NAT设备的类型,则可以向第一业务设备和第二业务设备获取。第一业务设备和第 二业务设备属于Server管理的设备,且第一业务设备和第二业务设备通过一些现有的方 式可以获取到NAT的类型,所以Server向这两个设备获取NAT设备的类型。
[0038] Server获取第一 NAT设备和第二NAT设备的类型包括:Server向第一 NAT设备 内的第一业务设备发送获取第一 NAT设备类型的报文,第一业务设备向server反馈该第一 NAT设备的类型。Server向第二NAT设备内的第二业务设备发送获取第二NAT设备类型的 报文,第二业务设备向server反馈该第二NAT设备的类型。
[0039] 上述获取NAT设备类型的报文可以是如下的一种报文:
[0040]
【权利要求】
1. 一种基于NAT类型的设备互通方法,其特征在于,该方法包括: 公网中的服务器Server向第一 NAT设备内的第一业务设备发送获取第一 NAT设备类 型的报文,第一业务设备向server反馈该第一 NAT设备的类型;Server向第二NAT设备内 的第二业务设备发送获取第二NAT设备类型的报文,第二业务设备向server反馈该第二 NAT设备的类型; Server根据获取的第一 NAT设备和第二NAT设备的类型判断是否进行NAT设备类型的 设置;如果是,则发送设置NAT类型的报文;否则不发送设置NAT类型的报文; NAT设备根据设置报文进行NAT类型的重新设置。
2. 如权利要求1所述的方法,其特征在于,所述方法还包括:第一业务设备和第二业务 设备分别向Server进行注册,第一 NAT设备和第二NAT设备基于所述注册分别记录对应的 NAT表项;Server基于第一业务设备和第二业务设备分别和自身建立的注册会话,分别向 第一业务设备和第二业务设备发送获取第一 NAT设备类型和第二NAT设备类型的报文。
3. 如权利要求1所述的方法,其特征在于,Server发送设置NAT类型的报文给第一业 务设备,该设置NAT类型的报文包括第一 NAT设备所需设置的类型;该设置NAT类型的报文 被第一 NAT设备接收,第一 NAT设备对该设置NAT类型的报文进行解析,并根据所需设置的 类型设置自身的NAT类型,且设置该新的NAT类型只对第一业务设备和第二业务设备的会 话起作用。
4. 如权利要求1所述的方法,其特征在于,所述Server还分别获取第一 NAT设备和第 二NAT设备是否支持对NAT类型的重新设置;当需要进行NAT设备类型的设置时,向支持 NAT类型重新设置的NAT设备发送设置NAT类型的报文。
5. 如权利要求1所述的方法,其特征在于,Server根据获取的第一 NAT设备和第二NAT 设备的类型判断是否进行NAT设备类型的设置包括: 如果第一 NAT设备和第二NAT设备中一个为Symmetric类型,另一个为Port Restricted Cone或者Symmetric类型,则Server确定对其中一个或者两个NAT设备进行 设置,以使得第一业务设备和第二业务设备至少能通过NAT打洞技术进行互通。
6. -种基于NAT类型的设备互通系统,其特征在于,该系统包括: 公网中的服务器Server向第一 NAT设备内的第一业务设备发送获取第一 NAT设备类 型的报文,第一业务设备向server反馈该第一 NAT设备的类型;Server向第二NAT设备内 的第二业务设备发送获取第二NAT设备类型的报文,第二业务设备向server反馈该第二 NAT设备的类型; Server根据获取的第一 NAT设备和第二NAT设备的类型判断是否进行NAT设备类型的 设置;如果是,则发送设置NAT类型的报文;否则不发送设置NAT类型的报文; NAT设备根据设置报文进行NAT类型的重新设置。
7. 如权利要求6所述的系统,其特征在于,第一业务设备和第二业务设备分别向 Server进行注册,第一 NAT设备和第二NAT设备基于所述注册分别记录对应的NAT表项; Server基于第一业务设备和第二业务设备分别和自身建立的注册会话,分别向第一业务设 备和第二业务设备发送获取第一 NAT设备类型和第二NAT设备类型的报文。
8. 如权利要求6所述的系统,其特征在于,Server发送设置NAT类型的报文给第一业 务设备,该设置NAT类型的报文包括第一 NAT设备所需设置的类型;该设置NAT类型的报文 被第一 NAT设备接收,第一 NAT设备对该设置NAT类型的报文进行解析,并根据所需设置的 类型设置自身的NAT类型,且设置该新的NAT类型只对第一业务设备和第二业务设备的会 话起作用。
9. 如权利要求6所述的方法,其特征在于,所述Server还分别获取第一 NAT设备和第 二NAT设备是否支持对NAT类型的重新设置;当需要进行NAT设备类型的设置时,向支持 NAT类型重新设置的NAT设备发送设置NAT类型的报文。
10. 如权利要求6所述的方法,其特征在于,Server根据获取的第一 NAT设备和第二 NAT设备的类型判断是否进行NAT设备类型的设置包括: 如果第一 NAT设备和第二NAT设备中一个为Symmetric类型,另一个为Port Restricted Cone或者Symmetric类型,则Server确定对其中一个或者两个NAT设备进行 设置,以使得第一业务设备和第二业务设备至少能通过NAT打洞技术进行互通。
【文档编号】H04L29/12GK104243629SQ201410494843
【公开日】2014年12月24日 申请日期:2014年9月24日 优先权日:2014年9月24日
【发明者】周迪, 关春天 申请人:浙江宇视科技有限公司