APP下载

IAD动态IP地址的H248模块认证处理

2009-10-14钟少新

现代企业文化·理论版 2009年17期

摘要:软交换中IAD分配地址一般是固定的,为了合理地使用不多的IP地址资源,使IP地址不产生浪费,并且为安全考虑,引入了IAD动态IP地址处理。

关键词:NGN;IAD;H248;动态IP

中图分类号:TN915文献标识码:A

文章编号:1674-1145(2009)26-0154-02

在中兴下一代网络NGN中,H248模块收到网关来的H248消息,调用接口GetNodeIdFromAddr如果成功说明是静态配置的,或者是动态已经认证成功的。此时MgId与IP地址已经绑定成功。如果失败,然后判断是否是需要动态IP认证的(根据IP地址判断是否是动态IP地址,可能需要数据提供接口,表明此IP是否需要认证),如果是则进行动态IP认证的处理,否则丢掉此H248非法包(数据库无法提供此接口,原因是IP地址所有的范围,提供不太现实,这样可能产生的直接问题是H248不能区分一个合法的H248包,可能将一个非法包进行认证的处理),如果是需要动态IP地址认证的,进行动态IP地址的认证的处理,期间获得其认证码,调用数据库的接口USE_PD_DevAuthorization获得其网关号与其所在的处理板(所在的处理板需要通知NIC,以后NIC的处理会发向真正的处理板),期间如果认证失败则认为注册或事务失败,H248可以给网关回某个错误值,例如505,同时置网关为不可用状态(或者认证通过!),可以发送LINKDOWN(一旦认证失败,需要将此网关的转发表清除,已存在的呼叫拆掉,同时需要给后台一个告警),由于无法提供判断此网关是否是动态、静态配置的,因此H248在调用GetNodeIdfromAddr时,即简单的认为需要认证(而不是舍弃),然后进入认证函数的处理,获得认证码,调用一个数据接口,得到MgId与处理板的板号!如果认证、处理板分属不同的板号且此事务中的Service Change注册认证命令后还有其他命令,例如Notify等,由认证板将此整个事务消息发送至真正的处理板。否则将此ServiceChange消息发送至CA模块,并接收CA进程来的REPLY消息。只要是动态IP地址来的包含有认证码就需要进行一次认证处理。在网关成功注册后,Softswitch可能需要主动进行一次(或周期性的)鉴权认证,认证的方式周期性要好些,可以防止IAD欺骗,方法可以是SS将认证码通过某种算法加密,通过H248的Package发送给IAD,IAD经过解密处理将认证码在其应答消息中带过来,然后进行认证处理,如果没有带过来或者带过来的信息不正确,则认为认证失败。可能需要IAD定期的进行认证(这一点在IAD的链路检测消息中添加即可),同样的Softswitch获得认证码后就进行一次数据的认证。

流程解析:

IAD向Softswitch注册内含认证码

MEGACO/1[168.1.14.28]:2944

Transaction = 37524

{

Context = -

{

ServiceChange = ROOT

{

Services

{

Method = Restart ,

Reason = 901 ,

Delay = 0 ,

Version = 1 ,

20020401T08463100 ,

ServiceChangeAddress = 2944 ,

Profile = AnalogLineProfile/1 ,

X-VENDER = ZTE ,

X-IDMETH = 1 ,

X-IDDATA = c03eecffffff460a08013e2233bfbe87b994ce96000128460000628fb99452e400015c5c00005c9db994317a00012d960000598db9948e88

}

}

}

}

Softswitch进行认证处理后回给IAD的应答 MEGACO/1 [168.1.98.160]:2944 Reply =37524

{Context = - {ServiceChange = ROOT { Services {87654321T12345678}}}}

Softswitch ---> IAD

Send the authentication Code to the IAD

Softswitch 将认证码按照某种算法加密后发送给IAD,等待IAD返回的认证码。

MEGACO/1 [202.202.202.202]:2944

Transaction = 10001 {

Context = - {

Modify = ROOT {

Signals {auth/authreq{key=4568976031148111}}

}

}

}

IAD to softswitch

IAD analysis the authentication key and return the result to softswitch

IAD收到此认证码后按照同样的解密算法解出认证码后带回给Softswitch

MEGACO/1 [202.202.202.112]:2944

Reply = 10001 {

Context = - {Modify = ROOT{signals{auth/authreq{key=010203040506}}}}

}

关于语法查证了一下好像是可以的,此消息可能需要定期发送,类似于链路测试消息,这样可以防止IAD欺骗。如此以来IAD的链路测试消息是否不必带认证码了?

H248 TTM的处理方式:先找到Service Change命令,ServiceChange前的命令可以丢弃,然后进行Service Change命令的认证,认证通过后获得处理板的模块号,如果处理板的模块号与认证板的相同,则将此Service Change命令发送至CA进程,如果有后续的命令同样处理,如果处理板的模块号与认证板的不同,则由TTM将此消息完整的发送给处理板由处理板进行此消息的处理,此情况下在认证板的事务可删除!

关于定期发送鉴权认证的消息,在TTM设立一个定时器( TTM清楚是否具有认证码),定时器超时后由TTM给CA发送EV_P_H248_AUTH_REQ消息,CA收到此消息后,发送AUTH/AUTHREQ给网关,内带一Key(SS、MG的Ip地址与一随机值进行的组合),MG回来的消息中将Key带回,可以只带回RAND值,然后SS判断带回的KEY是否是自己所期望的,如果不是所期望的对此网关进行LINKDWON的处理,并且更改网关的状态为退出服务!

参考文献

[1]中兴通讯股份有限公司.ZXMSG9000网关培训教材.

[2]中兴通讯股份有限公司.ZXSS10 A/B培训教材.

作者简介:钟少新(1971- ),供职于中国电信股份有限公司普宁分公司,研究方向:S1240和中兴软交换维护。