helijohnny 发表于 2012-2-16 21:06:13

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

本帖最后由 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规则吧,这个大家应该很熟悉啦。
:global newipaddress
:global lodipaddress
:set newipaddress address]
:set newipaddress [:pick $newipaddress 0 ([:len $newipaddress] -3)]
:set lodipaddress dst-address]
:if ($newipaddress != $lodipaddress) do={/ip firewall nat set dst-address=$newipaddress
/ip firewall nat set dst-address=$newipaddress
/ip firewall mangle set dst-address="!$newipaddress"
}
----------之前的问题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。

请问我是哪里出错了么?

newmean 发表于 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表就行了。完美解决你这个问题。

   新建一个路由表名为SBVPN

   让192.168.88.0/24段全走SBVPN这张路由表

   再给SBVPN做一个NAT 也可以根据实际情况不做,而使用路由的方式。

newmean 发表于 2012-2-16 22:19:35

bobwalker 发表于 2012-2-16 22:08 static/image/common/back.gif
路由:
建立一条到VPN服务端公网IP的静态路由,网关设置为你的外网网关,distance=1。
再建立一条到全网静 ...

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

newmean 发表于 2012-2-16 22:44:12

bobwalker 发表于 2012-2-16 22:29 static/image/common/back.gif
一般VPN服务器都是静态IP的,楼主也没有说VPN服务器是动态IP。
我只是不想简单问题复杂化。

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

wanken 发表于 2012-2-17 08:29:21

樓上的二位真是"皇帝不急急死太監".....................!

helijohnny 发表于 2012-2-17 23:14:49

首先感谢几位大大的解答,非常感谢。
现在去研究下大家的方案,的确VPN服务器并不是动态IP。
不管怎么样,还是非常感谢大家。

helijohnny 发表于 2012-2-17 23:21:41

newmean 发表于 2012-2-16 21:33 static/image/common/back.gif
路由错了
   我给你说一个我用的思路吧,先做一个PPPOE,并设为default route,这时,内网所有机器都会走这 ...

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

helijohnny 发表于 2012-2-17 23:24:19

bobwalker 发表于 2012-2-16 22:08 static/image/common/back.gif
路由:
建立一条到VPN服务端公网IP的静态路由,网关设置为你的外网网关,distance=1。
再建立一条到全网静 ...

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

helijohnny 发表于 2012-2-17 23:54:15

newmean 发表于 2012-2-16 21:33 static/image/common/back.gif
路由错了
   我给你说一个我用的思路吧,先做一个PPPOE,并设为default route,这时,内网所有机器都会走这 ...

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

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

再次表示感谢。

newmean 发表于 2012-2-18 17:45:38

helijohnny 发表于 2012-2-17 23:54 static/image/common/back.gif
不好意思,还有一个问题想请教您,这样设置好以后,我要怎么解决这个通过VPN的网段的回流问题呢?
之前通 ...

尝试做一个dst-nat吧

helijohnny 发表于 2012-2-18 19:53:59

本帖最后由 helijohnny 于 2012-2-18 19:54 编辑

newmean 发表于 2012-2-18 17:45 static/image/common/back.gif
尝试做一个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来访问映射出去的机器

wasps 发表于 2012-2-25 20:36:17

有人做了,我刚好学习下

yuefy 发表于 2012-3-26 06:42:58

老兄怎么弄.我按你的方法没有成功哦.

helijohnny 发表于 2012-3-30 23:55:37

yuefy 发表于 2012-3-26 06:42 static/image/common/back.gif
老兄怎么弄.我按你的方法没有成功哦.

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

yuefy 发表于 2012-3-31 18:59:27

helijohnny 发表于 2012-3-30 23:55 static/image/common/back.gif
不好意思,这几天都没来看论坛,你遇到什么问题了?
走PPTP不成功?还是出现回流问题了?

我就是想80端口全走PPTP,可以看国外新闻.PPTP拔上了(连通了),但就是不走PPTP隧道.我也标记路由了.高手指点
页: [1] 2
查看完整版本: [已解决]ROS做PPTP客户端,内网全部通过PPTP上网,并且解决回流问题。