2009-01-27

借助路由器,实现iAMT的本地管理

借助路由器,实现iAMT的本地管理


我们在开发支持Intel主动管理技术的控制台时,访问管理引擎(ME)提供的Web Service接口有两种方式,一种是通过网络访问,另外一种是本机直接访问。但是本机访问有比较多的限制,大部分iAMT功能接口对本地应用程序来说是不可用的,比如CircuitBreak,AgentPresence,SecurityAdministration等等。那么在没有两台机器的情况下,如何实现在iAMT机器的主机操作系统上就能对iAMT所有特性进行操作呢?
经过笔者的一些简单实验,我们只需要一台普通的路由器就能做得到。比如,一般的ADSL接入设备,无线路由器,或者自己用Linux搭建的网关都行。大概的原理是这样的:给iAMT和Host OS配置不同网段的IP地址,都将网关指向路由器;然后在路由器上设定所需的路由;在Host OS上的应用程序访问iAMT IP地址时,网络包首先被发送到默认网关,也就是路由器,然后路由器根据自身的路由表将网络包路由到iAMT,iAMT的返回结果同样也是先发送到路由器,然后由路由器再将网络包路由回Host OS。如下图所示。

在上图中,我们将一台Intel Core 2 vPro机器(内建iAMT功能)的主机操作系统IP地址配置为192.168.2.10,网关指向192.168.1.1,由于这里网关和主机地址不在同一个网段,只能手动配置静态IP了;将底层的iAMT的IP地址配置为192.168.1.10,网关指向192.168.1.1。
这里的路由器兼做网关(我们使用的普通路由器都是这么用的),LAN口配置的IP地址是192.168.1.1;为了使得路由器能够将iAMT返回的数据包回送给Host OS,我们需要在路由表里面增加一项: Destination:192.168.2.0 Netmask: 255.255.255.0 Gateway: 0.0.0.0 (如果是Windows做路由器, 这里就是192.168.1.1)
另外,如果路由器支持LAN接口配置多个IP地址,那只需要为路由器LAN口再配置一个IP地址:192.168.2.1,上面那条路由就能自动加入到路由表;这时候,Host OS的网关可以设置为192.168.2.1。这样,我们就可以在Host OS上通过直接访问底层iAMT的IP来访问iAMT的功能了。比如,通过IE打开:http://192.168.1.10:16992,就可以见到我们熟悉的iAMT WEBUI的登陆界面了。
我在一台LinkSys的无线路由器,和一台Windows 2003 Server的网关上测试过,上述的方法都可以成功。如果你有兴趣,欢迎一起交流探讨。

No comments: