|
马上注册成为ROSABC会员,随时发帖回复。
您需要 登录 才可以下载或查看,没有账号?会员注册
x
---------如果要同时处理回流-----------
之前的方法并没有考虑内网有映射服务器的情况,如果内网有映射服务器,需要这样处理。
1.先建立PPPoE连接,并且设置为默认路由
2.建立PPTP连接,不要设置为默认路由,而是手动设置一条到0.0.0.0/0通过网关为PPTP接口(我是5.12可以直接指定接口为网关),并且设置routing mark为vpn
3.到IP FireWall Mangel,新建一条规则,Src.address为需要通过VPN上网的网段,Dst.address为!1.1.1.1(1.1.1.1为你的公网IP,前面有感叹号,不等于。),这样会让用公网访问访问内网服务器的时候不通过VPN走。 最后给这条Mangel的Action设置为标记路由,名称是vpn。
Ps:之前只能ping同第一个包的问题,是因为我把连接状态设置为了new,自己学艺不精,听说设置为new可以改善性能,其实在这里不能这样做。
4.给PPPoE接口和PPTP接口都做个伪装。
现在指定的内网网段应该已经可以通过VPN上网,并且可以用ROS软路由的公网IP访问从内网映射出去的服务器。
如果是动态的公网IP,就用这个脚本来更新Mangle规则和NAT规则吧,这个大家应该很熟悉啦。
- :global newipaddress
- :global lodipaddress
- :set newipaddress [/ip address get [/ip address find dynamic=yes interface="pppoe-out1"] address]
- :set newipaddress [:pick $newipaddress 0 ([:len $newipaddress] -3)]
- :set lodipaddress [/ip firewall nat get [/ip firewall nat find comment="80"] dst-address]
- :if ($newipaddress != $lodipaddress) do={/ip firewall nat set [/ip firewall nat find comment="80"] dst-address=$newipaddress
- /ip firewall nat set [/ip firewall nat find comment="51413"] dst-address=$newipaddress
- /ip firewall mangle set [/ip firewall mangle find comment="fix_loop"] dst-address="!$newipaddress"
- }
复制代码
------------------------------
原来是我的思路错误了,正确的做法如下
首先设置好pppoe连接,并确设置为默认路由。
然后再创建一条PPTP连接,但是不要创建默认路由。
在Route List的Routes里加一条0.0.0.0/0的路由,出口设置为PPTP,并且加上Routing Mark,比如VPN
切换到Route List中的Rules,创建一个规则,源地址范围是需要通过VPN上网的网段,并且选择刚才设置的Routing Mark。
最后,给网段做伪装,完美解决。
---------下面是我原来的想法--------------
大家好,向各位大大请教一个ROS软路由做PPTP客户端的问题。
想用ROS软路由做VPN的客户端,让内网的所有数据通过VPN来上网。
我用ROS软路由做了如下设置
1.在Interfaces里创建PPTP客户端端口,已经成功建立连接。
2.创建静态路由优先为1,删除pppoe拨号的路由(尝试过保留pppoe拨号,但是通过Mangle标记内网网段,把路由设置到pptp接口)
3.创建在pppoe接口的伪装,和在pptp接口的伪装。(尝试过关闭在PPTP接口的伪装)
目前的情况表现为,在ROS软路由上可以直接通过pptp接口通讯,ping其他网站,或者ping pptp服务端局域网的电脑,都没有问题。
但是在ROS软路由的内网的电脑,ping网站的时候只有第一个包是有返回的,之后全部都是timeout。
请问我是哪里出错了么? |
|