77家的会客2010

远程自动添加AS400路由网关
Weather:いい天気

目前状态:

一台内网的AS400服务器,想要在远程访问(即外网或内网其它网段),这样就可以实现分布式开发,并且即用即改,安全性方面也能得到一些保证.

思路是这样的:

外网对内网的AS400访问,只要在路由器上设置23号端口的转发就可以了,但是对于AS400本身,还要设置客户端(要连接400的外网客户)的网段的访问权限.

于是我们在AS400上写一个CL程序,进行400上路由及网关设置,然后再在内网开一个WEB服务器对外网开放(可以在任何地方访问得到),通过WEB服务器上的程序,来调用400上的这个CL程序,以达到能自动更改的目的.

这样一来,对于WEB SERVER和AS400之间,WEB SERVER可以单向(WEB->AS400)的完全控制400上的网关(为什么叫单向?因为我们限制WEB SERVER只能删除自己添加的网关,不要去改动400上原来已有的设置).并且我们在WEB SERVER上设置访问权限,AS400本身也需要用户名密码才能连接,这样的双重验证,尽量将安全威胁降低到最小,不过这只是相对AS400开发机而言,在线使用的机器有这个功能的必要吗?

废话不多说,直接上解决方案内容:

AS400上的CL程序

/*********************************************************************/
/*    プログラム名   : システムの経路を自動化設定                */
/*    プログラム№   :  ASTHOP001                                  */
/*                                                                   */
/*    作成日         :  2009/01/20                                 */
/*    作成者         : 戚宏波                                    */
/*********************************************************************/
/*パラメータ                                                       */
/*AGTIP:USER'S AGENT IP WITH "0" AS LAST AREA +
  OPTTYPE:OPERATION TYPE('A':ADD,'D':DELETE')                        */
PGM PARM(&AGTIP &OPTTYP)
             DCL        VAR(&AGTIP)  TYPE(*CHAR) LEN(15)
             DCL        VAR(&OPTTYP) TYPE(*CHAR) LEN(1)
             DCL        VAR(&NETMSK) TYPE(*CHAR) LEN(15) +
                                                 VALUE('255.255.255.0')
             DCL        VAR(&HOPIP)  TYPE(*CHAR) LEN(15) +
                                                 VALUE('192.168.10.1')
/**/
/* ADD A NEW HOP SET */
             IF         COND(&OPTTYP *EQ 'A')   THEN(DO)
             ADDTCPRTE  RTEDEST(&AGTIP) +
                          SUBNETMASK(&NETMSK) +
                          NEXTHOP(&HOPIP)
             MONMSG       MSGID(CPA0000 TCP0000)
             ENDDO
/**/
/* REMOVE A SPECIFIC HOP */
             IF         COND(&OPTTYP *NE 'A')   THEN(DO)
             RMVTCPRTE  RTEDEST(&AGTIP) +
                          SUBNETMASK(&NETMSK) +
                          NEXTHOP(&HOPIP)
             MONMSG       MSGID(CPA0000 TCP0000)
             ENDDO
RETURN
            ENDPGM

而在WEB SERVER上,我们使用.NET通过IBM.Data.DB2.iSeries.dll来连接AS400,并进行CL调用,而使用方法,请参考之前的关于.NET连接AS400的文章.

如果你想要这个方案的详细的源代码,欢迎与我联系.

(02/06) AS400简介(2)
都江堰 (02/06)

[远程自动添加AS400路由网关]的回复

Post a Comment~