IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用邻居的CMCC宽带加速

    microcai (microcaicai@gmail.com)发表于 2016-12-07 00:00:00
    love 0

    基于某些特殊原因,我知道邻居家的wifi密码。

    但是他家信号在我家虽然能收到,但是比较弱。所以一直没用。最近获得了一个叫 Ubnt AirMAX 的山寨产品,有个定向天线。 这使得我可以在家接收邻居家的信号了。于是就开始用啦!

    先上图。

    这是在阳台装好的效果。这货还支持 POE 供电,非常不错,网线到就可以干活了。

    邻居家使用的是CMCC的网络,这是我要连上他家网络的主要原因。因为据说 CMCC 的出国带宽好啊! 而我呢,则是重度的墙外网络使用者。 所以想用他家的网络来加速我的国外访问。

    连接的办法是 ERX -> POE交换机 -> 山寨网桥。

    POE 交换机是网管交换机,所以划了单独 VLAN 给网桥。我用了 port 2 接的网桥,划分了 vlan 3389, pvid = 3389 。 由于我用的 port 7 接的 ERX。port 7 做 trunk 端口,允许通过 3389 即可。 ERX 的 eth2是接入的交换机,所以在 eth2 上创建 vlan 3389 即可。在 eth2.3389 接口上配置 ip 地址,静态 192.168.100.2 。因为邻居家是 192.168.100.0/24 的网络嘛。

    然后在 ERX 上 ping 192.168.100.1 成功。意味着能连上邻居的路由器了。

    接着为 eth2.3389 接口开 NAT 伪装。这是必要的。因为我不想在邻居家的路由器上配置静态路由表 —— 因为他家的路由器并不支持动态路由协议 —— 当然我也不希望我家内部的网络被他访问到。

    接下来才是重点。我需要做策略路由, 要求如下:

    对所有 CMCC 的ip地址,通过他家访问。 对部分 CMCC 访问更快的朝外地址,用他家访问。 但是如果他家的网络不通了,以上策略路由要立即 fallback 到使用我自己家的网络。 只对 NAS 直接执行 1:1 负载均衡做宽带叠加,把 CMCC 和我家的宽带进行叠加。因为 NAS 上跑迅雷下载,需要大带宽。 对其他不需要 CMCC 加速的地址,使用 1:1 宽带叠加我双拨的2条PPPOE线路。 但是对于网银地址,不使用叠加(防止 ip 跳动导致的登录问题)。

    于是,折腾了一下 ERX 的 firewall 规则,搞定。

    基本思路是,使用 ERX 自带的 load-balance 功能。 load-balance 建立3个组,叫 A B C 吧。

    A 组,包含 pppoe0 pppoe1 两条线路,做负载均衡。 B 组,包含 eth2.3389 和 pppoe0 两条,pppoe0 做 fallback-only。 C 组,包含 pppoe0 pppoe1 eth2.3389 三条线路,做负载均衡。

    关键规则如下:

    对 src 为 NAS 的流量,使用 C 组。

     rule 60 {
         action modify
         description "use CMCC for NAS"
         modify {
             lb-group C
         }
         source {
             address 100.64.1.10
         }
     }
    

    对 dst 为 cmccip 的线路,使用 B 组。

     rule 70 {
         action modify
         description "use CMCC for cmcc ip"
         destination {
             group {
                 network-group cmcc-ip
             }
         }
         modify {
             lb-group B
         }
     }
    

    防止银行被负载均衡

     rule 50 {
         action modify
         description "do not load blance on some site"
         destination {
             group {
                 network-group bank
             }
         }
         modify {
             table main
         }
     }
    
    

    默认做负载均衡

     rule 999 {
         action modify
         modify {
             lb-group A
         }
     }
    
    

    这样就搞定了。只要把相应的 IP 加到 network-group 里就可以了。 我是用的 http://bgp.he.net/AS9808 获取的 移动的 IP 段。



沪ICP备19023445号-2号
友情链接