利用VMWare和软路由多播实现校园网带宽叠加

    • 利用VMWare和软路由多播实现校园网带宽叠加
      • 声明
      • 文章概述
      • 带宽限制原理
      • 在此特定条件下的思路
      • 可行性
      • 具体操作和原理
        • 爱快软路由的安装
        • 登录并配置
        • 实现每个网卡的认证
        • 负载均衡
        • 结果展示
      • 软路由工作原理与疑问
      • 不足与展望

利用VMWare和软路由多播实现校园网带宽叠加

tags:有趣小实验

声明

  1. 文章可以随意转载,但请注明出处。
  2. 文中有一些地方引用了其他文章,但都已标明出处。如有侵犯,可立即删除。
  3. 文中肯定会有不足和错误,欢迎指出讨论。

文章概述

实验室里限制了网速,一般情况下网速最快能达到1MB/s” role=”presentation” style=”position: relative;”>MB/s。平日里用的话还凑合,但是如果想下载点资料什么的网速是大大的不够。所以萌生了一个“突破网速限制的想法”。我们实验室里电脑的上网方式是这样的:

电脑可以设置动态获取IP地址或者自己设置一个静态的和网关在同一个网段中的IP地址,然后打开浏览器随便上一个网页,就会跳转到一个认证的页面,填写好自己的学号、密码之后就可以随意上网了。
而且,更为重要的是我们校园网一个账号可以多终端登录。也就是说,一个账号在电脑A” role=”presentation” style=”position: relative;”>A上登录之后在电脑B” role=”presentation” style=”position: relative;”>B上还可以登录。

所以这篇文章针对如上所述的情况,利用工具VMWare、爱快软路由和我们校园网账号可以多终端登录的特性,实现了一号多播带宽叠加

由于是读研狗,下面写的东西设计的理论和思考过程可能比较多,如果只是对具体的操作过程感兴趣,请借助目录直接跳转到具体操作

带宽限制原理

刚开始解决这个问题的时候,最先进入脑海的问题就是学校是如何进行限速的,知道了限速的原理才能更好的解决这个问题,所谓知己知彼。在知乎上面看到了一个比较靠谱的说法:

  1. 基于以太网(链路层)的限速,因为802.3规范里有PAUSE帧,还有各种各样的QoS,只要用这些就可以达到限速的目的,同时对于低速设备和不支持PAUSE帧的设备,可以采用发冲突包的方法(以太网报文遇到冲突包会自动重发)。
  2. 基于IP层的限速,因为IP包头有源地址,而转发(过路由)的时候源地址都要重写的,那么如果发现某个源地址流量过大,直接把IP包丢了就行了。
  3. 基于TCP的限速,同样的,因为转发要过路由,所以不停的发retransmission就可以了。
  4. 基于协议的、UDP的限速,限速时,解析其端口号等内容,判断包的性质,超过流量了就丢了。

由于不大好确定学校具体使用的那种方式,所以找到一个普适的方法还是很关键的。

在此特定条件下的思路

虽然不能够确定学校里使用的具体的方法,但是通过分析了上述的校园网认证网页的源码,发现其(中的逻辑或者说浏览器)不仅上传了登陆用的学号和密码,还收集了本机的IP地址、Mac地址上传到了服务器。这样也就是说,学生S” role=”presentation” style=”position: relative;”>S点击了登录之后,校园网中有这样一个设备,能够以某种方式记录下来IP地址为IPA” role=”presentation” style=”position: relative;”>IPA,mac地址为MacA” role=”presentation” style=”position: relative;”>MacA的主机A拥有了上网的权限(此处具体的是接入的电信还是教育网我也不大明白,因为我从百度IP看到的自己IP地址和从教育直通车看到的自己的IP地址是不一样的,但是不影响我们的进一步工作),换言之校园网中的路由设备只把认证过的主机发送的数据包转发到校园外的网络中去。通过如上的讨论,

如果能有这样一套工具、方法使我自己的电脑能有多个网卡连接到校园网上面,或者能连接到一个有多个网卡的路由器上,此路由器连接到校园网上。然后为每个网卡都完成上述的验证登录,再通过一种方式实现流量的均衡。

那么就能够实现设想的带宽的叠加了。

可行性

幸好有前人的努力,借助VMWare和软路由,上面这样一个想法可以很方便地实现。实际测试了几个软路由,分别是。海蜘蛛和爱快基本功能相似属于“傻白甜”式的路由器,但是爱快比海蜘蛛方便在可以动态的检测整个路由器系统的状态,而且界面也好看。至于mikrotik,专业级路由器,绝对可以实现设想的功能,但是配置实在是太复杂了,折腾了好几天也没搞定,最终还是选用了爱快软路由,以下简称爱快。

爱快提供了方便配置的负载均衡的方法,至于如何为每一个网卡实现校园网认证,就需要手动的配置了。

具体操作和原理

1.爱快软路由的安装

软路由的安装比较简单,爱快官网上面下载好镜像之后,参照这个安装教程完成安装。安装过程中需要注意的是,硬盘选择IDE类型,所有加入的网卡都是桥接模式。我为路由器虚拟了五个网卡,都是桥接模式。最终虚拟的配置如下图

爱快安装完成重启后的样子
此时容易理解的拓扑如下图所示:
连接爱快时的IP地址
这个时候在浏览器中输入:,回车。然后就可以看到爱快路由器的登陆界面了。

2.登录并配置

爱快默认的登录密码是用户名,密码。

选择网卡
然后,配置网卡为DHCP模式,并且按照要求设置次wan口对应的带宽。
获得IP地址后的样子
下面的操作比较机械了,点击图示“加号”,多添加几个网卡,然后按照上面的步骤配置好
默认路由示意图
首先选择选择wan1作为默认路由,在浏览器中其他页面随便打开一个地址就会弹出“上网登录”的页面,登陆之。

四个网口对应的登录
此时四个网口都经过了认证,需要做的就是对所有(TCP)连接,使其在四个wan口负载均衡。具体的原理在下文中讨论,下面需要做的具体的事情是:

4.负载均衡

爱快中路由规则强弱为,也就是说设置负载均衡之后还有问题去测试修改默认路由的时候,需要先禁用负载均衡的规则。在爱快中添加负载均衡规则

具体规则设置
点击完确定不管你信不信,这个时候已经实现带宽的叠加了。此时我的dota2更新速度
CPU的负载情况
我试了一下我自己的电脑,五年前的五千块的华硕普通笔记本,三个wan口已经是极限了,网速最快也就能达到3MB/s。不过现在限制我网速的已经不是校园网,而是我自己的CPU的计算能力了,开心。^_^

软路由工作原理与疑问

上面稍微提到过配置好了软路由之后的上的拓扑关系,但是逻辑上的拓扑是这样的。参照一图看懂host_only nat bridge拓扑结构和VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系,此时的网络实际拓扑如下图所示:

网络拓扑
为了验证上图的拓扑结构(注意VMNet0是一个交换机,不是路由器,并不能在中看到它),可以在启动了爱快并为每一个wan口动态申请到IP地址之后,进行测试。假设此时wan1口IP地址为,主机中直接使用测试该IP地址可得:

下面的部分均为个人推测,如果有任何问题,欢迎指正。

可以看出数据包不需要经过路由器直接到达了wan1口。那么在这样的拓扑的情况下,爱快软路由是如何工作的呢于主机中配置的默认路由为,在最开始的情况下主机是不知道这个网口对应的mac地址的。于是,在想要发送第一个数据包的时候主机使用arp协议通过VMNet0找到了lan1口的mac地址。从此之后,主机发送的数据包的都是lan1口的mac地址了。在VMNet0收到数据包之后,通过分析发现mac地址和爱快软路由lan1的mac地址相等,于是将数据包给lan1口,这样数据包就到了爱快软路由里面了。假设此时已经开启了负载均衡,爱快会分析这是不是一个数据包,就是说这是不是一个TCP三次握手的第一次的数据包。如果是的话,假设此数据包的目的IP地址为,找到几个wan口上面最小的一个wan口wan1,使用NAT技术将此次的TCP连接映射wan1口上,也就是说主机发给的数据包原IP地址 (原端口也改了,此处省略端口暂不讨论) 都被爱快软路由改成了wan1的IP地址。

但是这里不能确定的是爱快究竟是依照的一元组还是的二元组来区别两个链接的。

另外测试发现, 迅雷,BT下载可以使用使用此方法加速, 百度网盘,一般的网盘工具是不可以加速的。


不足与展望

  1. 通过上面的讨论知道,即使多次打开这同一个页面,主机通过NAT伪装的IP地址也可能是不一样的,因为这是多个HTTP连接。所以可能会导致CSDN老是提醒需要登陆。
  2. 虽然相对ros软路由来说,爱快需要配置的东西已经很少了,但是如果wan口比较多的话配置起来还是挺麻烦的,下一步想看看如果能够快速的配置和对每一个网卡登录校园网。
  3. 看到知乎上面的这个问答,其中还是有很多东西可以搞一搞的,有时间了弄一弄,有什么进展会随时在博客更新。

来源:樱花树樱花开

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年1月10日
下一篇 2017年1月10日

相关推荐