由于更改宽带业务,联通的网线需要停止一段时间,为了这段空白期,于是乎家里加装了一条一年的移动宽带,所以置使家里现在有两条宽带,为了不浪费家里多的这条宽带,所以开始研究双宽带的利用。
听说双宽带可以叠加网速,所以我变成了折腾狂魔。
利用搜索引擎,我在双宽带的利用上得到了以下词条
多拨
负载平衡
多拨,跟多拔其实是一个词条,可能是字长得太像,所以我的理解是可能网上的多拔跟多拨只是打错了字。多拨这个概念大概在ADSL的年代,利用一个宽带账号,在一个终端上多次进行拨号,以达到网速叠加的效果。
按照线路的不同可以分为,单线多拔及多线多拔。
单线多拨大多数实在早期,现在大多数运营商都在进行检测,加之现在家庭宽带的带宽基本都在100M-200M的区间所以导致现在进行单线多拨基本无法实现,即便实现了意义也不大。
单线多拨的必要条件:
1.宽带进户方式为FTTB/FTTH
FTTB 是英文Fiber to the building(光纤到楼)的缩写
FTTH 是英文Fiber to the home(光纤到户)的缩写
2. 宽带端口激活速率大于所签约宽带大小,你可以自己慢慢测试出来,也可以内部去查询。
3. 宽带帐号可以同时拨号 两次以上(有的地区可以用脚本并发同时强制拨号也能成功)
4.支持第三方openwrt固件、支持负载均衡,且openwrt中,集成了带宽叠加程序NWan,MWan,MutiWan,M-Route,等其中的任意一款。(如果负载不均衡,即便拨号成功,速率也不叠加)或者具备tomato dualwan功能,WAYOS,ROS等支持双WAN多WAN的路由。
简单来说就是,运营商给你的线路是20M的带宽,而这条线路最高的带宽可以达到200M,你就可以通过10拔来将你的原本的20M的带宽提升至200M的带宽。
技术上,运营行没有封堵多拨,多半和以前无路由状态,多台机器允许PPPOE上网有关系,因为当年ADSL本身带宽有限,多拨也无所谓,但是到了EPON时代,变天了,运营商在大部分地区,做了多拨不限制带宽,即为可以达到线路承载上线,通常EPON光猫带宽为100M,如果你20M下行1M上行,也就成就了你3拨达到60M下行3M上行。由此其实解决了一个很根本的问题,提高了上行带宽! 这是原理,不过有的地方运营商封掉这样的技术,不一定不允许多拨,只是多拨后,总带宽不变。
也就是说,你原本20M的下载速度,即便多个终端同时使用一个账号进行联网,多个终端的下行总带宽为20M,而不会是每个终端的下行带宽都为20M,所以即便在同一终端进行多拨可能也并不能达到提高网速的效果。
但多拨也在特定的场所会有一定的作用,例如校园网恶心到逆天的8M、10M带宽。
或者在网吧,小型的公司。进行三次多拨后,你拥有3个IP,3条独立带宽,比如当你游戏时,其实多拨没有帮助的,因为游戏只能走一条线路出去,断开走第二条你就会掉线然后等待很久在重新连接。真正帮助在于带宽扩大时,Web与下载可以将负载分布至3条线路上,来保证下载速度,当然路由器本身QOS要好,保证在带宽跑满的情况下,优先数据的稳定性
由于以前家里标明200M的宽带,结果实际下载速度在11M/s时跟联通公司沟通时联通公司给的答复是,我们所在的这个小区由于物理机器的问题,只能达到100M的带宽,所以单线多拨并不能对我的带宽进行提升,所以研究到此为止。
多线多拨跟单线多拨其实是一个原理,无非单线多拨是一个运营商提供的一组宽带账号进行多拨,,而多线多拨则是多个运营商提供的账号分别进行多拨。
首先多拨对我而言,因为带宽的问题,我已经不打算在多拨这个问题上继续纠结下去了,所以我面临的问题是,双宽带的利用。
明确一个信息,双宽带并不能使我的网速进行叠加,也就是说我两条100M带宽的网线并不能实现1+1=2,不能实现叠加为200M的带宽,所以两条宽带对我而言的意义是,当我在进行下载任务的时候使用一条宽带,另一条宽带用于正常的视频播放或者进行其他网络需求任务,或者当一条宽带在进行任务时,这条宽带余下的带宽并不能支持我去进行高清视频的观看时,跳转另一个宽带执行我的上网需求,这个时候就有一个名词为负载均衡,或者称为均衡带宽。
双出口负载均衡/基于连接的策略路由其实不太适用于家用,因为会增加延迟,得不偿失。但研究已经到了这里,并不想半途而废,于是,综合网上能看到的消息还是说一下基于连接的策略路由,这里直接引用知乎的策略(侵删)。
iptables -t mangle -A PREROUTING -s [子网] -m conntrack --ctstate NEW -m statistic --mode nth --every 2 --packet 1 -j CONNMARK --set-mark 1
iptables -t mangle -A PREROUTING -s [子网] -m conntrack --ctstate NEW -m statistic --mode nth --every 2 --packet 0 -j CONNMARK --set-mark 2
iptables -t mangle -A PREROUTING -m connmark --mark 1 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -m connmark --mark 2 -j MARK --set-mark 2
前两条是轮流为连接标记connmark,后两条是根据连接的connmark为该连接的数据包标记mark
这样做是1:1的,因为every 2 packet 1标记为1,2/2标记为2
如果你要不同的比例,比如4:1,那么就做成
1/4~3/4 connmark 1,4/4 connmark 2
这样任意整数比都可以做吧然后是
iptables -t nat -A POSTROUTING -s [子网] -o [出口1] -j MASQUERADE
iptables -t nat -A POSTROUTING -s [子网] -o [出口2] -j MASQUERADE
这是配置nat然后要配置路由表
ip route add default dev [任意出口]
ip route add table 1 via [出口网关1] dev [出口1]
ip route add table 2 via [出口网关2] dev [出口2]
ip rule add fwmark 1 table 1
ip rule add fwmark 2 table 2
样可能导致依赖ip稳定性的关键业务频繁掉线(比如游戏),这是不可接受的,按照原答案一顿操作以后,导致吃鸡儿一局网络延迟检测N次,微信掉线无数次。
众所周知,网络上有两种应用,一种需要低延迟,越低越好,但对带宽没有太大要求;一种延迟无所谓,但带宽越高越好,所以家里和个人组网最好的做法是,要求低延迟的业务走低延迟网络,不要求低延迟的业务走高延迟网络,当没有低延迟业务运行时,高延迟业务可以走低延迟网络。
其实比较简单的做法是两台机器,一台运行低延迟业务(比如说游戏),另一台运行高延迟业务(比如下载),高延迟机器根据低延迟机器的状态改变自己的路由表,可以占双线的时候就用基于策略路由的负载均衡(当然和上面的写法不太一样),不能占线的时候就改回去。
但是有时候事情不是那么简单的,很多时候,访问某服务器用电信的线路比较快,又有些线路访问用联通的线路比较快,这就很头疼了对吧。
但本着折腾就要折腾到底的原则。
我将所有的信息梳理了一遍,最后决定,平时下载任务都走移动的宽带,当下载任务不是点对点的下载任务时且联通线路空闲时,下载任务走双宽带。
这样就可以一边下载达到10M左右,同时又可以看4K视频,也算是把双宽带给利用上了。
祭奠下我这被浪费的48小时,我他萌的到底折腾出来个啥。
好在利用OpenWrt把Shadowscok给鼓捣上路由器了,也算是种安慰,另奉劝没啥基本功底不是鼓捣企业网络的攻城狮不要再穷折腾了,大佬请随意。
(使用的软硬件包括:外置网卡、海蜘蛛、ikuai、OpenWrt、多WAN口路由、VMware)