sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:1356回复:2

NAT内网的机器使用IPSEC的技术原理?

楼主#
更多 发布于:2004-01-15 11:15
我在网络上发现有一个公司的产品可以实现在NAT内网的PC之间建立IPSEC。我研究了一下,但是不知道他们具体实现的原理是什么,大家可以看看(www.comexe.cn)。

如果IPSEC一端是内网,另外一端是公网固定IP,如果内网主动发起访问,就应该可以访问到公网端。如果一旦建立了IPSEC连接,是不是双方都可以主动发起访问了?这个我就有点不明白。公网端访问内网的IP是怎么处理的? NAT server怎么会把这个packet给接收进来?

对于ipsec两地都是内网,我更不能理解了。实现方法是什么?
请大家帮忙给分析一下!

谢谢!!!
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-15 17:04
首先我觉得你应该彻底了解一下NAT协议,它是实现内部IP地址+内部端口<――――>外部IP地址+外部端口的映射代理协议;)

1、按照IPSEC协议的加密处理的传输模式,IP包除包头部分之外的所有数据被加密处理(当然包括端口信息),也就是说端口信息已经被封装了,这样的数据包只把IP包头(主要是IP地址)更换为外部IP包头,但是可能整个包需要重新认证一下
2、如果是隧道模式的话,应该与1的方式差不多,你自己分析吧;)
3、重要的是应该维护一张映射表
成功不是天上掉下来的免费的丰盛的晚餐!
sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-15 20:41
我感觉问题也是在NAT。我看了一些NAT的原理。对于带端口转换的NAT,我不明白的是外网的包怎么进来。

如果内网首先发起,NAT server会保持一个映射表,当接受到外网发送的IP包,会查表,如果能找到,就会接受并转为内网IP和相应的端口。这样内网的PC就可以访问NAT外的公网上的主机。

但是这个时候如果外网主动发送IP包,NAT server上怎会有相应的表项?这个地方我不是很明白。是不是ipsec两端都要有listen的 server?

对于两端都是内网的情况,我感觉这个问题更难解决。

至于IPSEC穿过NAT,倒是可以看RFC的draft。有没有研究NAT具体实现的,给指点一下。我看Linux下netfilter中的NAT非常复杂。使用了协议的状态跟踪。
游客

返回顶部