找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 14113|回复: 3

[其它] ROS防封杀VPN上行、原线路下行解决方案

[复制链接]
发表于 2012-7-6 13:44:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 glpl 于 2012-7-6 13:44 编辑

      封杀,是电信网通等运营商为了禁止多用户共享上网而采取的措施。封杀技术手段有很多种且一般封杀手段保密导致很难针对性的应对。

      不管采用何种封杀技术,都需要对用户的互联网访问数据流做检测(大多数要做传输层及应用层的检测)。要想达到防封杀目的,需要将用户的互联网访问做加密,而VPN正是此功能。

      使用VPN防封杀有两种方式:一种是用户的所有请求和应答均经过VPN服务器,如图中红线所示;一种是用户的所有请求通信数据(上行数据)经过VPN服务器,而应答通信数据(下行数据)则按原先路由走,如紫线和橙线所示。

      从图中可以很明显的看出,红线方式请求和应答数据均经过VPN服务器,也就是说VPN服务器要负担起用户的所有访问;紫线方式只有用户的请求数据(通常情况下,这种通信数据量很小)经过VPN服务器,应答数据则不经过VPN服务器,因此给VPN服务器带来的通信负担要小的多。

      要想让应答数据包走橙色线路,只需要向目标服务器请求的包的源IP为本地ros的WAN接口IP即可。由于回程不走VPN服务器,因此,在VPN服务器上不能有对客户访问目标服务器的通信做NAT的(因为NAT是有状态的且NAT时包的某些字段会被修改)。也就是说,客户访问目标服务器的包从VPN服务器出时只是被简单的转发。这就需要在VPN服务器上的NAT规则的源要排除VPN客户端的公网IP。而一般情况下,VPN服务器上的NAT的src-address不可能是公网IP。

      本地ROS要达到此目的的方法是:从vpn客户端接口出去的数据包的源IP为本地ROS的WAN接口IP,即针对out-interface=VPN接口的包做SRC-NAT:

       chain=srcnat action=src-nat to-addresses=WAN接口IP out-interface=VPN接口名称

       当WAN接口IP变化时,大致可以用类似如下的脚本来重新配置:

:local wanip [/ip address get [/ip address find interface=WAN] address]
:local wanip [:pick $wanip 0 [:find $wanip "/"]]
:local toaddress [/ip firewall nat get [/ip firewall nat find comment="forvpn"] to-addresses]
:if ($wanip!=$toaddress) do={
ip firewall nat remove [/ip firewall nat find comment="forvpn"]
ip firewall nat add chain=srcnat out-interface=pptp-out1 action=src-nat to-addresses=$wanip comment="forvpn"
}

上行包全部走VPN,就要去掉原先的缺省网关,改用VPN作为缺省网关(需要注意,需要添加一条静态路由,即本机到VPN服务器的通信包下一跳是本地网关。
2664723604537290387.jpg
routeros
发表于 2012-7-6 13:49:14 | 显示全部楼层
一直不了解Isp关于封杀多台电脑上网的原理,现在学习了。谢谢分享
routeros
回复

使用道具 举报

发表于 2012-10-7 04:13:39 | 显示全部楼层
求教程 有酬谢
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-12-22 23:49 , Processed in 0.050761 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表