|
楼主 |
发表于 2012-8-10 10:59:39
|
显示全部楼层
哎大伙先冷静下,这几天我主要研究了一下,这个问题主要的原因不是ROS路由的问题,是对方VPN SERVER的协议机制问题(我找到的一点资料,大伙分析下):以下如果不对请高手指正,谢谢
网关VPN原理
一、VPN概述
宽带计费网关支持的VPN方式为:智能VPN、自动VPN、手工选择VPN三种可选方式,当遇到特殊VPN的情况还可以通过穿透IP的方式手工配置实现VPN的全支持。本文同时叙述了网关实现NAT的原理和实现方式。
二、 智能VPN方式原理
2.1工作原理
智能VPN通过自动分析用户所使用VPN协议的端口进行自动设置。
2.2智能VPN的实现方式
(1)当用户使用vpn方式上网时,报文被网关kernel捕获,网关会对用户报文进行分析,获取到用户报文的vpn port. 这里比如为ipsec 端口为50\51\500,那么就将此用户的报文在mangle链中增加一个VPNMARK;
(2)在kernel中的ACL会对此报文进行ACCEPT, 允许此mark报文通过;
(3)kernel会通过vpn_ip中设置的公网地址池对此用户单独下发一个nat规则;
(4)程序在eth1接口增加子IP方式设置给此用户分配的公网IP地址;
(5)此用户能够正常使用VPN。
三、手动VPN方式工作原理
(1)用户在打开认证页面后手动勾选使用vpn,前台程序会将命令发送给后台daemon;
(2)程序在后台通过vpn ip pool拿出空闲的公网ip地址;
(3)然后记录到数据库中。并增加一个nat规则,对应此vpn用户;
(4)当用户下线后,会将此用户占用的ip资源马上释放;
(5)用户能够正常使用vpn。
四、自动VPN方式工作原理
(1)管理页面设置后,当用户上网时,程序会自动通过vpn ip pool给每个上线用户增加一个单独的nat规则;
(2)程序记录管理这些用户和ip地址,将记录存入数据库中;
(3)当用户下线,或者发生改变时候,对数据库中记录进行删除,同时释放ip pool池中的地址;
(4)用户能够正常使用vpn;
(5)由于当前很多vpn都是支持 nat-t 穿越方式的,因此基本上我们使用“自动vpn”,”手动vpn”功能就可以支持以上大部分vpn。
四、穿透IP方式
在用户使用VPN的方式中也有一些特殊客户使用的是比较旧版本或者是安全级别设置较高的VPN的情况,这些server会认为经过NAT方式送出的报文被篡改,认为是不安全报文,因此会丢弃。造成“自动vpn”无法使用。
虽然我们NAT方式无法解决这个问题,但是现在我们的网关已经有了BR穿透IP方式,这种桥接模式下,用户可以直接使用公网地址,这样送出的报文不再使用NAT方式,报文不会被篡改,因此vpn server端检查就应当正常了,问题就解决了。
五、NAT原理
NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。
NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有 内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。内部网络中分配给节点的私有IP地址只能在内部网络中使用,不能被路由。内部地址通常使用下面的地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。
宽带计费网关对NAT的支持是通过使用配置文件配置NAT指令来实现的。
|
|