1、VPN /(本地光纤)跑上传,ADSL 跑下载,可以解决几个问题,第一,有效躲避某些地方 ISP 对ADSL 共享检测(网络尖兵等) ,第二,本地光纤跑上 传,ADSL 跑下载可以解决 ADSL 的技术缺陷,避免 ADSL 由于上行带宽过小,而影响下行的问题,让网络更加流畅。第三,对光纤线路带宽占用也比较小, 这样予己予人都比较合理,而不象以前的传统的 VPN 模式,我们 1M 的下载,会占用对方服务器一上一下 2M 带宽。第四,因为 VPN 技术的极高加密性,会给帮 助我们解决很多问题。最后,VPN /(本地光纤)跑上传的至关重要的关键点,比如电信 ADSL 和本地电信光纤组合,因为出口的
2、ADSL 的 IP 地址和光纤是一个 ISP 商,验证源地址方面一般 没问题,如果是借线外地的 VPN SERVER 就要看对方是否会验证源地址,如果要验证就没办法,只有另外寻觅 VPN SERVER,很多各地方的 ISP 有限制,非本地的 IP 段是禁止转发的。另外最好是同一营运商,比如都是电信或者都是联通,这样速度才够快,否则一个联通 一个电信,等你数据包到了对方 VPN SERVER 延迟都几百 ms,那就没意义了。一般小于 100ms 的延迟还可以接受,当然越小越好。首先设置 4 条 PPPOE 拨号,我这里是光纤到楼,网线到户,一条物理线路可以多账号拨入,一个账号 4M,可以通过 P
3、CC 达到带宽叠加。后面 4 条线路都按照此设置,有本地光纤线路的,add default route 就不需要打勾,因为本地光纤是默认线路。纯 ADSL 环境的可以勾上,因为无论有多少条 PPPOE 线路,最后只有第一条拨上号的生效成为默认线 路。这样就不用我们制定到底是哪条 PPPOE 做默认,一切交给系统决定,这样至少保证有一条能拨上号的成为默认线路,网络始终不会中断的,除非全部账号都 到期,或者全部 ADSL 猫都坏了,那是真是平田真悲剧平男了。因为我家是纯 PPPOE 环境,我需要拨一条 VPN 线路来帮我逃避我本地 ISP 商的 panabit 服务器对 P2P软件的屏蔽(其实这是
4、我最终的目的,哈 哈),因为 VPN 是高度加密的。这里推荐对方 VPN SERVER 使用 L2TP 模式,它是 UDP 协议,效率更高,加密性是最好的,和 IPSEC 一样,比 PPTP 加密性更高。当然 PPTP 也一样,我也是用的 PPTP。PCC 的做法我就不再赘述,大家可以参考论坛讲 PCC 的帖子,有很多。下面是设置的关键 2 个步骤:这是 NAT 里的设置,我有 4 条线路,就需要设置 4 条规则,以此类推。把我们发出去的 PCC 包的源地址修改成我们 PPPOE 的外网地址,这样最终响应端会把 数据包按这个 IP 地址发回来,这样就上行走的 VPN 线路,数据包直接按我们修改
5、后的源地址发回来。这里可能有些朋友还有些疑问不会掉线吗?我再罗嗦两句, 打个生动比方由于我们本地邮局 A 很严格,导致我发出去的很多信件的内容它都要审查,不能通过,那我没办法只有将信件加密过后,先送到附近邮局 B 帮我发送, 但是发信人地址我还是写的我在邮局 A 的收件地址,由于邮局 B 比较耿直,不管是外来投递还是本地投递的邮件,它都一律按照目的地址送到,对方收到我的邮件过 后,就按照我在邮局 A 的地址把信给我回过来了,我就收到了对方的回信然后和组织联系上了,邮局 B 就是借了个道而已,但是一定要注意邮局 B 要允许外来投递的 信件噢。下面是路由表里的设置最后注意几个地方:new-conn
6、ection-mark 的名字一定要以 1 2 3 4 为顺序,否则脚本不能正常工作,4条 mark routing 的路由标记设定成同一个名称,设置完 PCC 后,运行该脚本,NAT 里的规则脚本会自动生成。手动添加的规则标签名一定要以 pppoe- out1 2 3 4 为顺序。如果本地有光纤线路,作为默认线路的话,那么直接路由标记可以选择 main动态 IP 自动修改脚本::local ipa “:local ipb “:local pname “/interface pppoe-client:for ii from 1 to 4 do=:set pname (“pppoe-out“.
7、$ii)monitor $pname once do=:if ($status=“connected“ :set ipb $ipa:if ($ipb != $ipa) do=/ip fir nat set find connection-mark=$ii to-addresses=$ipa disabled=no:log warning (“D0DEB8C45B“ . $pname . “5DD3B3C9E4B5BD“ . $ipa):beep length=3000ms frequency=1800注意红色部分,有几条线就改成几的阿拉伯数字再加上我的 DDNS 更新脚本,自动找到默认线路后更
8、新 IP:local ddnsint /ip route get /ip route find dst-address=0.0.0.0/0 dynamic=yes active=yes interface:local ddnsip /ip address get /ip address find dynamic=yes interface=$ddnsint address:local ddnsnip :pick $ddnsip 0 :find $ddnsip “/“:if ($ddnsnip != :resolve ““) do=:log info /tool dns-update name= address=$ddnsnip key-name=xxx key=xxx感谢本论坛灰太狼(ID : 47771885)脚本支持,无懈可击的脚本。所有设置和测试均在 3.30 版本上通过。最后,如果教程有不当之处,或者有更好,更科学,可以改进的地方,请大家指出斧正,请跟贴。此方法我相信论坛很多朋友都已经掌握,我也只是图文并茂更生动的描述一下而已,谢谢为 ROS 作出贡献的网友们,谢谢你们。还有谢谢我们的论坛,谢谢太美,石头。