找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 27945|回复: 28

[vpn] [已解决]ROS做PPTP客户端,内网全部通过PPTP上网,并且解决回流问题。

  [复制链接]
发表于 2012-2-16 21:06:13 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 helijohnny 于 2012-3-31 23:34 编辑

昨天又研究了一下,似乎找到了解决的方法,首先还是要感谢之前给我帮助的几位朋友。
可能我的方法会有问题,不过可以给大家参考一下,至少我是暂时没有出现问题。
要同时避免出现回流问题,又让指定网段通过VPN的通讯办法如下,当然,前提是之前已经处理过回流(我的方法是在内网接口上也建立伪装),当然还有一个办法是用于上网的伪装不指定接口,好像更加方便一些。

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规则吧,这个大家应该很熟悉啦。

  1. :global newipaddress
  2. :global lodipaddress
  3. :set newipaddress [/ip address get [/ip address find dynamic=yes interface="pppoe-out1"] address]
  4. :set newipaddress [:pick $newipaddress 0 ([:len $newipaddress] -3)]
  5. :set lodipaddress [/ip firewall nat get [/ip firewall nat find comment="80"] dst-address]
  6. :if ($newipaddress != $lodipaddress) do={/ip firewall nat set [/ip firewall nat find comment="80"] dst-address=$newipaddress
  7. /ip firewall nat set [/ip firewall nat find comment="51413"] dst-address=$newipaddress
  8. /ip firewall mangle set [/ip firewall mangle find comment="fix_loop"] dst-address="!$newipaddress"
  9. }
复制代码
----------之前的问题2------------

感谢几位大大的帮助,已经解决了设置路由表的问题。
但是设置完通过PPTP的路由表以后,那个烦人的回流问题又出现了,
不知道在有路由规则的时候应该怎么处理回流问题,
希望可以再次得到高手们的帮助,谢谢



----------之前的问题------------

大家好,向各位大大请教一个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。

请问我是哪里出错了么?
routeros
发表于 2012-2-16 21:33:22 | 显示全部楼层
本帖最后由 newmean 于 2012-2-16 21:40 编辑

路由错了
   我给你说一个我用的思路吧,先做一个PPPOE,并设为default route,这时,内网所有机器都会走这条路由
   再做一条pptp client 不勾选 default route 并连通,这时你在路由表里会发现已经有了vpn的本地路由了
   这时,你再在路由表里加一条0.0.0.0/0的default route 并设置routing mark
   再将要走vpn的电脑选择成走route mark表就行了。完美解决你这个问题。
1.JPG
   新建一个路由表名为SBVPN
2.JPG
   让192.168.88.0/24段全走SBVPN这张路由表
3.JPG
   再给SBVPN做一个NAT 也可以根据实际情况不做,而使用路由的方式。
routeros
回复

使用道具 举报

发表于 2012-2-16 22:19:35 | 显示全部楼层

如果服务器地址是动态的呢?手工建的话不太现实。
routeros
回复

使用道具 举报

发表于 2012-2-16 22:44:12 | 显示全部楼层
bobwalker 发表于 2012-2-16 22:29
一般VPN服务器都是静态IP的,楼主也没有说VPN服务器是动态IP。
我只是不想简单问题复杂化。

我的意思是在多种情况下,楼主确实没有说明远程服务器的情况,在这时,我想在解决方案里给一个比较全的解决方法更优一点,再说,如果用routing mark的话,对内可以有选择性路由也可以排除地址问题。
routeros
回复

使用道具 举报

发表于 2012-2-17 08:29:21 | 显示全部楼层
樓上的二位真是"皇帝不急急死太監".....................!
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-17 23:14:49 | 显示全部楼层
首先感谢几位大大的解答,非常感谢。
现在去研究下大家的方案,的确VPN服务器并不是动态IP。
不管怎么样,还是非常感谢大家。
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-17 23:21:41 | 显示全部楼层
newmean 发表于 2012-2-16 21:33
路由错了
   我给你说一个我用的思路吧,先做一个PPPOE,并设为default route,这时,内网所有机器都会走这 ...

按照您的方法成功解决问题,太感谢您了!!
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-17 23:24:19 | 显示全部楼层
bobwalker 发表于 2012-2-16 22:08
路由:
建立一条到VPN服务端公网IP的静态路由,网关设置为你的外网网关,distance=1。
再建立一条到全网静 ...

也非常感谢您提出的方案,我稍后也去尝试一下。
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-17 23:54:15 | 显示全部楼层
newmean 发表于 2012-2-16 21:33
路由错了
   我给你说一个我用的思路吧,先做一个PPPOE,并设为default route,这时,内网所有机器都会走这 ...

不好意思,还有一个问题想请教您,这样设置好以后,我要怎么解决这个通过VPN的网段的回流问题呢?
之前通过pppoe的网段可以通过给这个网段设置一个在内网网卡上的伪装,
但是对于设置了通过VPN路由的网段,这样的设置似乎不起作用了。

比如刚才192.168.88.0/24这个网段的通讯全部通过VPN来进行了,
我想让这个网段的机器,也能使用ROS的公网IP来访问内网映射出去的服务器,要怎么设置呢?

再次表示感谢。
routeros
回复

使用道具 举报

发表于 2012-2-18 17:45:38 | 显示全部楼层
helijohnny 发表于 2012-2-17 23:54
不好意思,还有一个问题想请教您,这样设置好以后,我要怎么解决这个通过VPN的网段的回流问题呢?
之前通 ...

尝试做一个dst-nat吧
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-18 19:53:59 | 显示全部楼层
本帖最后由 helijohnny 于 2012-2-18 19:54 编辑
newmean 发表于 2012-2-18 17:45
尝试做一个dst-nat吧


恩?可以详细的说一下么?

我目前的映射是这样做的
114.95.34.72 是我的公网IP
192.168.0.126 是内网要映射出去的机器
ether2-master-local 是内网网卡

规则如下

映射内网端口
chain=dstnat action=dst-nat to-addresses=192.168.0.126 to-ports=9091 protocol=tcp dst-address=114.95.34.72 dst-port=9091

内网伪装
chain=srcnat action=masquerade src-address=192.168.0.0/24 out-interface=pppoe-out1

处理回流
chain=srcnat action=masquerade src-address=192.168.0.0/24 out-interface=ether2-master-local

但是按照您的设置以后,通过PPTP出去的那个网段,没办法用114.95.34.72:9091来访问映射出去的机器了

但是原来的网段192.168.0.0/24可以使用114.95.34.72:9091来访问映射出去的机器
routeros
回复

使用道具 举报

发表于 2012-2-25 20:36:17 来自手机 | 显示全部楼层
有人做了,我刚好学习下
routeros
回复

使用道具 举报

发表于 2012-3-26 06:42:58 | 显示全部楼层
老兄怎么弄.我按你的方法没有成功哦.
routeros
回复

使用道具 举报

 楼主| 发表于 2012-3-30 23:55:37 | 显示全部楼层
yuefy 发表于 2012-3-26 06:42
老兄怎么弄.我按你的方法没有成功哦.

不好意思,这几天都没来看论坛,你遇到什么问题了?
走PPTP不成功?还是出现回流问题了?
routeros
回复

使用道具 举报

发表于 2012-3-31 18:59:27 | 显示全部楼层
helijohnny 发表于 2012-3-30 23:55
不好意思,这几天都没来看论坛,你遇到什么问题了?
走PPTP不成功?还是出现回流问题了?

我就是想80端口全走PPTP,可以看国外新闻.PPTP拔上了(连通了),但就是不走PPTP隧道.我也标记路由了.高手指点
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 17:26 , Processed in 0.081899 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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