软交换网中保持防火墙/地址转换设备的端口开启的方法

文档序号:7624344阅读:76来源:国知局
专利名称:软交换网中保持防火墙/地址转换设备的端口开启的方法
技术领域
本发明涉及一种软交换网中保持防火墙和/或地址转换设备的端口开启的方法,确切地说,涉及一种利用会话初始协议的信令交互功能,使软交换网中的防火墙/地址转换设备保持软交换通信过程中使用的UDP端口开启的方法,属于软交换为核心的下一代网络通信技术领域。
背景技术
以软交换为核心的下一代网络(NGN,Next Generation Network)技术已经走过了最初的协议研究和设备研发阶段,进入了NGN的商用部署阶段。在这个阶段中,网络如何组织、服务质量QoS的保证措施、网络和业务的安全保障等技术问题开始得到更多的关注。
为了保证NGN的网络安全,NGN网络中增加了一个边缘接入控制设备(BAC,Border Access Control),该设备位于软交换与终端之间(参见图1)。
BAC设备的主要用途是(1)避免由用户终端的不可信任造成核心网络设备(例如软交换、应用服务器等网元)产生不安全性。(2)终端(包括软终端或IAD设备)可能位于私网内,这些终端设备必须支持网络地址转换NAT设备的穿越功能,才能进入软交换网实现通信;即NAT设备更改了数据包的网络层地址,但是它不能更改SIP协议中表明通信地址的相关参数,需要BAC设备进行消息的转换;当通信方由于部署防火墙或严格对称的地址转换设备NAT等原因不能直接进行媒体通信时,需要BAC设备进行媒体的转接。(3)为软交换业务的QoS提供相应配合。
由于BAC设备连接的终端包括有软终端和IAD终端,因此BAC与软交换之间的通信协议也有多种,典型的协议有SIP、H.248(Megaco)和MGCP。本发明主要适用于BAC通过SIP协议与软交换进行通信的应用场合。
企业网和园区局域网用户一般使用私有地址,在网络出口处,由地址转换设备NAT统一进行地址转换,以提高IP地址的使用效率。对于企业网,出于网络安全的考虑,一般在企业网与公众IP网络连接处都部署防火墙。在为企业或园区用户提供软交换业务时,上述两种设备会影响软交换业务的正常提供。
对于防火墙设备,一般设置先出后进的通信策略只有内部网的主机先向网外的主机发出通信请求后,防火墙才允许外部主机返回的数据包进入内部网。出于安全考虑,防火墙还会对已开启的端口定时进行检查,超过一定时间没有通信流量,就自动关闭该端口。对于UDP协议,防火墙的端口开启时间一般都比较短,在几分钟到几十分钟不等。
对于地址转换设备,包括只进行地址转换的设备和同时进行地址和端口转换的设备,一般是在收到第一个内部网发往外部主机的数据包后,进行内部地址/端口和外部地址/端口的映射,为内部网主机分配公有地址和端口。在这个步骤之前,外部主机不知道内部主机地址,不能首先发起和内部网主机的通信。通常NAT设备也会对已分配的端口定时进行检查,关闭一定时间内没有通信流量的端口。
因此,软交换业务的信令连接会遇到防火墙或地址转换设备的端口定时关闭的问题。当内部网终端发起注册后,防火墙/NAT设备打开了相应的信令端口,注册正常。在该端口开启期间,终端通信完全正常;但如果超出上述端口开启的时间间隔,终端始终没有与软交换通信——包括终端始终没有发起呼叫,也没有其他用户设备寻找该终端的情况,防火墙/NAT设备就可能将该端口关闭;此时,软交换再按注册的地址向终端发送的消息就会被丢弃,终端不能正常作为被叫。(参见图2(A))。
解决防火墙/NAT设备的信令端口关闭问题的技术方案是以短于该端口开启时长的周期不断发送消息,维持该信令端口的开启(参见图2(B)所示的一种解决方案的示意图-也是本发明方法的基础)。
目前,用于保持端口开启的消息各不相同。
对SIP终端而言,一个重要特征是在使用业务之前,首先发送注册消息。当终端注册成功后,为了便于网络控制,SIP终端还会周期地不断发送注册消息,及时向网络报告自己的当前位置。鉴于注册行为本身具有周期性,与上述保持防火墙/NAT设备的信令端口开启的要求正好吻合。因此,目前有一种方法是利用注册消息作为心跳信息,维持信令端口的开启。
这样,同一个注册消息将会有两种角色一个是作为注册业务的消息,这类消息位于SIP终端与软交换之间,BAC设备需要将该类消息转发到软交换设备,这类消息的周期一般为30分钟以上;另一个是作为保持防火墙/NAT端口开启,在SIP终端与BAC之间传递的心跳信息,这类消息的周期一般为3分钟左右。
由于这两个应用场合的注册消息重发周期不同,而且同一个注册消息可能会根据应用需求适配在不同场合。因此BAC需要将属于心跳的注册消息终结,而将属于注册行为的消息转发到注册服务器。此时BAC设备需要一个定时器,对周期更新的注册消息进行计次,累加到设定次数后,再将该消息转发到注册服务器,同时对计数器清零(图3展示了利用注册消息作为心跳时的BAC的操作流程)。
参见图3,从图中可以看出,上述方案要求BAC具有以下功能1)BAC设备需要记录每个用户账号当前注册的地址信息;2)由于SIP中存在同一用户账号绑定多个IP地址的情况,以及分别进行注册查询、注册注销等不同操作行为,因此BAC在对注册请求信息进行分析时,需要对每个请求消息中的Contact域(该域中填写联系地址)、Expire域(该域中填写生存周期的时长)进行判断;3)BAC需要为每个用户账号的各个相关IP地址分别开启各自的定时器;4)对于初始注册消息,BAC需要将注册服务器回应的200消息中的Expire值进行修改,再发送给终端;5)对于周期更新消息,BAC在向注册服务器转发时,需要进行修改;同时需要修改的还包括BAC向终端转发的200消息中的Expire值;
6)由于任何与注册相关的操作必须要求鉴权认证,BAC在实现上述功能时,必须考虑该种情况。
以上6点要求对BAC的性能将是个考验,似乎很难同时满足之。因此,如何提出一种新的SIP注册消息作为维持防火墙/NAT设备的信令端口开启的心跳,使其能够普遍地适用于各种防火墙/BAC设备,就成为业内技术人员关注的新课题。

发明内容
有鉴于此,本发明的目的是提供一种软交换网中保持防火墙/地址转换设备的端口开启的方法,该方法利用会话初始协议的信令交互功能,在BAC与终端之间周期性地传送心跳信息-信令包,使得在整个通信期间防火墙/NAT设备为SIP通信而开启的UDP端口始终保持开启状态,SIP终端与软交换能够顺利穿越防火墙和NAT进行信息交流,实现安全的SIP通信。
为了达到上述目的,本发明提供了一种软交换网中保持防火墙/地址转换设备NAT的端口开启的方法,其特征在于由边缘接入控制BAC设备向SIP终端周期性发送会话初始协议SIP中的选择消息-OPTIONS消息而不是Register消息-作为心跳消息,以使防火墙/地址转换设备NAT维持软交换通信信令使用的端口处于开启状态,SIP终端能够在部署了防火墙和地址转换设备NAT的网络环境中实现通信功能;SIP终端对该OPTIONS消息返回响应,并在发生异常时直接向BAC发送注册消息。
所述OPTIONS消息是IETF标准化组织在RFC3261中定义的一种用于会话过程中携带能力协商信息的消息,当其作为心跳消息由BAC发送给SIP终端时,在当前没有特殊业务需求时,不携带能力查询参数,只是作为连接性信号发往对端实体;SIP终端收到该OPTIONS消息时,应立即返回200成功响应消息。
所述OPTIONS消息组成结构中至少包括下述字段请求的uri地址Rquest-uri、经过的地址Via、目的地址或账号To、源地址或账号From、呼叫标识Call-ID、消息序列CSeq、消息体长度Content-Length。
该方法包括下列操作步骤(1)SIP终端经由BAC设备向软交换网络发起注册消息;(2)SIP终端注册成功后,BAC设备向SIP终端周期性发送OPTIONS消息,该消息的发送周期由BAC设备控制,消息中不携带表征能力查询的参数;(3)SIP终端收到OPTIONS消息时,立即返回成功响应;(4)BAC设备判断其是否收到SIP终端返回的成功响应,如果接收到SIP终端返回的成功响应,则顺序执行后续操作;如果没有接收到SIP终端返回的成功响应,表明BAC发送的心跳信息没有被该终端接收,跳转执行步骤(6);(5)BAC设备继续向该SIP终端周期性发送OPTIONS消息,并且,转发软交换发送给该SIP终端的消息;(6)BAC将该终端所在的地址置为“不可达”,且在后续时间不再向该终端发送心跳信息;此时,若有软交换寻址该地址的呼叫时,BAC直接向软交换回送呼叫失败消息,防止软交换的呼叫重发;(7)BAC设备判断是否重新收到SIP终端发送的注册消息,如果接收到该注册消息,则BAC认为该终端地址为“当前可达”,返回执行步骤(5)的操作;否则,返回执行步骤(6)的操作。
该方法进一步包括下列操作步骤(8)当SIP终端发现异常情况时,立即向BAC直接发送注册消息,要求BAC或软交换重新确认该终端的当前联系地址,以保证当前地址的有效性。
所述步骤(8)进一步包括下列操作步骤(81)发生事务层消息交互失败时,SIP终端要向BAC发送注册消息;(82)SIP终端注册成功后,如果在设定时间内该终端与BAC之间没有任何信令消息交互,该SIP终端要向BAC重新发送注册消息。
所述SIP终端需要配置一个定时器,用于在发生异常场景情况下,确定终端与BAC之间没有任何信令消息交互的时间,以缩短重新发送注册消息的时间。
所述方法适用于SIP终端处于网络中存在有防火墙和/或NAT的环境,且不论其为单层防火墙/NAT或多级防火墙/NAT。
本发明是一种利用会话初始协议的信令交互功能使软交换网中的防火墙和/或地址转换NAT设备保持端口开启的方法,本发明的最大创新之处是找到一种科学、实用的心跳技术,在BAC与终端之间周期性地传送心跳信息-OPTIONS消息,使得通信期间的防火墙/NAT设备始终保持软交换通信使用的UDP端口处于可用状态,SIP终端与软交换间的通信消息能够顺利穿越防火墙和NAT进行交互,实现安全的SIP通信。
本发明优点主要是采用OPTIONS消息而不是传统的登记注册Register消息作为心跳信号。众所周知,Register消息通常与业务相关联,进而牵涉到相关设备的鉴权认证。从本发明的初衷出发,所涉及的心跳信息作用单一,不应当与用户的任何业务有关联。本发明选用的OPTIONS消息本身就与业务无关,不会对业务产生任何影响,同时又对其自身的查询实体能力进行省略处理,不带有能力查询参数,只是作为连接性信号发往对端实体,因此,OPTIONS消息非常适合作为心跳信号;也是本发明创新的心跳技术关键。
此外,BAC设备对Register和OPTIONS两种消息的处理行为存在不同。前者是传统的注册消息,跟业务有关联,当接收到每个Register消息后,BAC都会扫描本地数据库,然后再判断该消息是用作心跳,还是用作注册其他相关业务的消息;相比而言,采用OPTIONS消息用作心跳的处理操作就没有这么复杂。
再者,本发明由BAC设备定期给SIP终端发送OPTIONS消息来保持防火墙/NAT端口的开启状态,操作方法步骤简单,工作可靠。而且,对BAC设备的性能没有额外其它要求,具有普遍适用的推广应用前景。


图1是本发明应用场合-软交换网络体系架构的示意图。
图2(A)、(B)分别是目前在防火墙或NAT设备中传递SIP消息时存在的问题及其一种解决方案的示意图。
图3是利用注册消息作为心跳时BAC的操作流程方框图。
图4是本发明软交换网中保持防火墙/地址转换设备的端口开启方法的流程图。
图5是本发明方法中的正常情况下,BAC设备与SIP终端的交互时序图。
图6是本发明方法中,在BAC发现终端不可达时的操作行为时序图。
图7(A)、(B)分别是本发明方法中,在异常情况时的SIP终端的两种操作行为时序图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明作进一步的详细描述。
本发明是一种软交换网中保持防火墙/地址转换设备NAT的端口开启的方法,是由边缘接入控制BAC设备向SIP终端周期性发送会话初始协议SIP中的可选择OPTIONS消息作为心跳消息,使得防火墙/地址转换设备保持其信令端口处于开启状态,SIP终端能够穿越防火墙和/或NAT实现通信功能;SIP终端则对该OPTIONS消息返回响应,并在发生异常时直接向BAC发送注册消息。
本发明用作心跳信号的OPTIONS消息是IETF标准化组织在RFC3261中定义的一种消息,用于携带会话过程中的能力协商相关信息。当其作为心跳消息由BAC向终端发送给SIP终端时,在当前没有特殊业务需求时,不携带能力查询参数,其功能仅仅是作为连接性信号发往对端实体。SIP终端收到OPTIONS消息时,应当立即产生200成功响应。终端在发现异常情况时,直接向BAC发送注册消息,要求BAC或软交换重新确认其当前的联系地址,保证当前地址的有效性。
用作心跳信息的OPTIONS消息的结构如下OPTIONS <request_uri>
Via
ToFromCall-IDCSeqContent-Length0参见图4,介绍本发明方法的具体操作步骤如下所述(1)SIP终端经由BAC设备向软交换网络发起注册消息;(2)SIP终端注册成功后,BAC设备向SIP终端周期性发送OPTIONS消息,该消息的发送周期由BAC设备控制,且消息中不携带表征能力查询的参数;(3)SIP终端收到OPTIONS消息时,立即返回成功响应;(4)BAC设备判断其是否收到SIP终端返回的成功响应,如果接收到SIP终端返回的成功响应,则顺序执行后续操作;如果没有接收到SIP终端返回的成功响应,表明BAC发送的心跳信息没有被该终端接收,跳转执行步骤(6);(5)BAC设备继续向该SIP终端周期性发送OPTIONS消息,并且,转发软交换发送给该SIP终端的消息;(6)BAC将该终端所在的地址置为“不可达”,且在后续时间不再向该终端发送心跳信息;此时,若有软交换寻址该地址的呼叫时,BAC直接向软交换回送呼叫失败消息,防止软交换的频繁试呼;(7)BAC设备判断是否重新收到SIP终端发送的注册消息,如果接收到该注册消息,则BAC认为该终端地址为“当前可达”,返回执行步骤(5)的操作;否则,返回执行步骤(6)的操作。
(8)当SIP终端发现异常情况时,立即向BAC直接发送注册消息,要求BAC或软交换重新确认该终端的当前联系地址,以保证当前地址的有效性。例如发生任何情况的事务层消息交互失败时,SIP终端要向BAC发送注册消息;当SIP终端注册成功后,如果在设定时间(建议为5分钟)内SIP终端与BAC之间没有任何信令消息交互,则该SIP终端要向BAC发送注册更新消息。
参见图5,介绍本发明工作正常时的BAC与SIP终端之间的行为交互时序
①SIP终端注册成功后,BAC设备向SIP终端周期性地发送OPTIONS消息作为心跳信息,心跳行为与具体的呼叫或业务无关,故该OPTIONS消息不带有能力查询参数;发送OPTIONS消息的周期间隔由BAC设备灵活调整控制(图示为3分钟);②SIP终端收到OPTIONS消息时,立即返回200成功响应;③SIP终端穿越BAC设备与软交换网传递业务信令流和媒体流;④、⑤分别重复前述步骤①、②的操作。
参见图6,介绍本发明在BAC设备发现SIP终端不可达时的BAC与SIP终端之间的行为交互时序收到终端的注册消息后,BAC设备将向终端周期地发送OPTIONS心跳信息。在UDP传送的情况下,如果在指定时间内没有收到响应消息,将会重发请求。根据RFC3261的规定,事务层有两个定时器,分别为T1和T2。假设其中T1=500毫秒,T2=4秒。
①BAC向SIP终端发送OPTIONS消息后,如果没有收到响应消息,首先以T1的间隔周期重发,后续则分别以2T1、4T1、8T1的间隔周期重发;②当时间间隔达到T2(T2=8T1)时,后续过程都将以T2的周期间隔重发;如果在64T1的时间间隔后,BAC设备仍然没有收到响应消息,则BAC认为当前SIP终端所在的位置“不可达”;③当BAC认为某一位置的SIP终端“不可达”后,为了减少网络负载流量和降低BAC设备的处理损耗,BAC将停止向该终端发送心跳信息;同时,BAC设备对来自该终端的除了注册以外的其它请求消息,一概不作响应;④当BAC认为某一位置的终端不可达后,通常该终端在软交换的注册信息仍然有效,因此软交换仍然会发起针对该终端地址的呼叫;⑤BAC直接向软交换回送呼叫失败消息,防止软交换设备的消息重发行为;⑥当BAC重新收到该终端发送的注册消息时,即认为该终端地址当前可达,立即返回200成功响应;⑦BAC又向SIP终端周期性地发送OPTIONS消息作为心跳信息,SIP终端收到该OPTIONS消息,也立即返回200成功响应;两者再次进入正常工作状态。
参见图7,介绍本发明在发生异常情况时的SIP终端的两种处理行为时序异常情况的场景很多,包括BAC设备当前宕机重启、软交换设备宕机重启、软交换容灾的考虑、SIP终端与BAC设备间的承载出现故障等等。在正常情况下,SIP终端会与BAC之间进行消息交互,包括呼叫信令、与呼叫无关的心跳信息、注册消息等。一旦出现上述提到的各种异常场景时,由于BAC设备的端口重置,或者软交换设备重启或容灾后,BAC或软交换设备都不会对SIP终端发起的除了注册以外的其它请求或响应消息进行应答。所以,出现异常场景时,SIP终端与BAC之间的消息交互将会失败(类似于OTPIONS消息的事务交互,参见RFC3261),消息交互失败的情况包括SIP终端向BAC设备发送请求消息,没有收到任何的响应消息;SIP终端向BAC发送响应消息,也没有收到确认消息等情况。此时SIP终端必须先向BAC设备发送注册请求消息,以便在当前BAC或当前软交换设备中重置地址信息(参见图7(A))。
另外一种比较常见的情况是由于承载网络的问题或BAC设备本身的问题,SIP终端注册成功后,在设定时间内(建议定义为5分钟)SIP终端与BAC设备之间没有任何信令消息交互。出现该场景时,SIP终端也需要向BAC设备发送注册请求消息,以便在当前工作正常的BAC或当前软交换设备中重置地址信息(参见图7(B))。
权利要求
1.一种软交换网中保持防火墙/地址转换设备NAT的端口开启的方法,其特征在于由边缘接入控制BAC设备向SIP终端周期性发送会话初始协议SIP中的选择消息-OPTIONS消息-作为心跳消息,以使防火墙/地址转换设备NAT维持其信令端口处于开启状态,SIP终端能够穿越防火墙/NAT实现通信功能;SIP终端对该OPTIONS消息返回响应,并在发生异常时直接向BAC发送注册消息。
2.根据权利要求1所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于所述OPTIONS消息是IETF标准化组织在RFC3261中定义的一种用于会话过程中携带能力协商信息的消息,当其作为心跳消息由BAC发送给SIP终端时,在当前没有特殊业务需求时,不携带能力查询参数,只是作为连接性信号发往对端实体;SIP终端收到该OPTIONS消息时,应立即返回200成功响应消息。
3.根据权利要求2所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于所述OPTIONS消息组成结构中至少包括下述字段请求的u ri地址Rquest-uri、经过的地址Via、目的地址或账号To、源地址或账号From、呼叫标识Call-ID、消息序列CSeq、消息体长度Content-Length。
4.根据权利要求1所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于该方法包括下列操作步骤(1)SIP终端经由BAC设备向软交换网络发起注册消息;(2)SIP终端注册成功后,BAC设备向SIP终端周期性发送OPTIONS消息,该消息的发送周期由BAC设备控制,且消息中不携带表征能力查询的参数;(3)SIP终端收到OPTIONS消息时,立即返回成功响应;(4)BAC设备判断其是否收到SIP终端返回的成功响应,如果接收到SIP终端返回的成功响应,则顺序执行后续操作;如果没有收到SIP终端返回的成功响应,表明BAC发送的心跳信息没有被该终端接收,跳转执行步骤(6);(5)BAC设备继续向该SIP终端周期性发送OPTIONS消息,并且,转发软交换发送给该SIP终端的消息;(6)BAC将该终端所在的地址置为“不可达”,且在后续时间不再向该终端发送心跳信息;此时,若有软交换寻址该地址的呼叫时,BAC直接向软交换回送呼叫失败消息,防止软交换的呼叫重发;(7)BAC设备判断是否重新收到SIP终端发送的注册消息,如果接收到该注册消息,则BAC认为该终端地址为“当前可达”,返回执行步骤(5)的操作;否则,返回执行步骤(6)的操作。
5.根据权利要求4所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于该方法进一步包括下列操作步骤(8)当SIP终端发现异常情况时,立即向BAC直接发送注册消息,要求BAC或软交换重新确认该终端的当前联系地址,以保证当前地址的有效性。
6.根据权利要求5所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于所述步骤(8)进一步包括下列操作步骤(81)发生事务层消息交互失败时,SIP终端要向BAC发送注册消息;(82)SIP终端注册成功后,如果在设定时间内该终端与BAC之间没有任何信令消息交互,该SIP终端要向BAC重新发送注册消息。
7.根据权利要求1或4或5或6所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于所述SIP终端需要配置一个定时器,用于在发生异常场景的情况下,确定终端与BAC之间没有任何信令消息交互的时间,以缩短重新发送注册消息的时间。
8.根据权利要求1所述的保持防火墙/地址转换设备的端口开启的方法,其特征在于所述方法适用于SIP终端处于网络中存在有防火墙和/或NAT的环境,且不论其为单层防火墙/NAT或多级防火墙/NAT。
全文摘要
一种软交换网中保持防火墙/地址转换设备NAT的端口开启的方法,由边缘接入控制设备(BAC)向SIP终端周期性发送会话初始协议SIP中不携带能力查询参数的OPTIONS消息作为心跳信号,使得在整个通信期间防火墙/NAT设备为SIP通信而开启的UDP端口始终保持开启状态,SIP终端与软交换能够顺利穿越防火墙/NAT进行信息交流,实现安全的SIP通信;SIP终端则对该OPTIONS消息返回响应,并在发生异常时直接向BAC发送注册消息。其中采用OPTIONS消息作为连接信号发往对端实体是本发明创新的心跳技术关键。操作方法步骤简单,工作可靠。且对BAC设备的性能没有额外要求,具有普遍适用的推广应用前景。
文档编号H04L29/06GK1750540SQ200510104960
公开日2006年3月22日 申请日期2005年9月22日 优先权日2005年9月22日
发明者陆立, 梁柏青, 张鹏生, 吕屹, 娄颖 申请人:广东省电信有限公司研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1