OpenWrt的负载均衡及多线多拨控制应用mwan3

在家用路由器中,一般很少带负载均衡及多线多拨控制功能的,因为这些功能只在那些非常高端的路由器上才有,但你的路由器要是刷了OpenWrt系统,那要实现这些功能就非常简单了。本文我们就来讲解OpenWrt的负载均衡及多线多拨控制应用mwan3,让大家一起来享受一下这些看似很高深的功能是如何在OpenWrt环境下轻松实现的。

在实际应用中,WAN口的连接方式可以是多种多样的,就协议来说,它可以是DHCP的,也可以是PPPoe的;同样是采用PPPoe协议时,可以是单拨的,也可以是多拨的;涉及多拨时,可以是单线多拨的(即一个WAN口,多次拨号),也可以是多线多拨(即多个WAN口,多次拨号)。就传输的内容来说,可以是单播信号,也可以是组播信号,也可以是单播信号和组播信号混合传输的(即所谓的单线复用)。其中单线复用的情况我们在以后讲解“OpenWrt – 特殊应用 – IPTV”部分时会涉及到,这里略过。单线多拨的情况,虽然只存在一个物理WAN口,但是为了实现多拨功能,我们其实需要虚拟出多个WAN口来进行多拨任务,因此它比多线多拨的情况要更加复杂一些,我们留在后面的文章再讲解。今天我们主要还是讲解多线多拨的情况,另外因为有多个WAN口信号的存在(注:单线多拨情况也一样),需要对信号进行负载均衡及控制,即按一定的规则对传输的信号进行优先级及权重分配,以达到最优化使用的原则,而我们今天要讲解的mwan3应用就是为了实现这些功能而产生的。

前提条件:先设置多个WAN口

一般路由器都有1个WAN口,多个LAN口,我们需要在保留WAN口的同时,把其中一个或几个LAN变为WAN口。以Netgear R7800路由器为例,在OpenWrt系统的Luci设置界面,点“Network – Switch”进入交换机设置界面:

OpenWrt的负载均衡及多线多拨控制应用mwan3-1

从上图中,大家可以看出:在原设置下接口eth1.1所对应的交换机下,连接着LAN1、LAN2、LAN3、LAN4四个物理网口;接口eth0.2所对应的交换机下,连接着WAN物理网口。假设我们现在希望将LAN1物理网口单独拿出来也当WAN口来使用,那需要如何设置呢?请详见下图:

OpenWrt的负载均衡及多线多拨控制应用mwan3-2

首先将第一行中的,LAN1由“untagged”变更成“off“,然后再点”Add VLAN”按钮,在新增的第三行中将CPU(eth1)由“off”改为“tagged”,将LAN1由“off”改成“untagged”,最后点“Save & Apply”按钮即可。这时接口eth1.1所对应的交换机连着LAN2、LAN3、LAN4三个物理网口;接口eth0.2所对应的交换机下,还是连接着WAN物理网口没变,新增的接口eth1.3所对应的交换机连着LAN1物理网口,你可以用它来新增一个WAN口。同理如果你想新增多个WAN口,也可以将LAN2、LAN3、LAN4变为WAN来使用。

对于软路由来说上面的过程相对来说还要简单一点,因为其物理网口所对应的接口本来就是独立的,你可以在/etc/config/network里将任何一个或多个网口设置成WAN口来使用,具体我们在讲解“软路由”版块时再详细展开。

家里原先有两路宽带,一路是电信的,一路是移动的(套餐免费安装的),我曾经安装过mwan3测试过多线多拨的功能,总体效果还是可以的,但是后来我移动宽带的免费期限到了以后,我就停掉了移动宽带,而且当时设置时我也没有留下相应的过程图片等素材,所以现在讲解mwan3用多路PPPoe协议看来是条件不允许了,不过好在其基本原理是完全一样的,所以我这次准备用多路DHCP协议来代替PPPoe协议来演示mwan3的安装及配置过程,希望大家不要介意。

而且这次我们还要另辟蹊径,用TP-Link的TL-WR720N路由器来演示多线多“拨”功能的实现。前面我们已经讲过WR720N路由器只有一个WAN口和一个LAN口,唯一的一个LAN要连接电脑,不能设置用于WAN口,那怎么来实现多路DHCP协议的演示呢?“方法总比困难多”,对,想办法,就用无线作为另一个WAN口!很多人可能都要犯嘀咕了,无线当WAN口??路由器的无线不是拿来发射的吗?怎么还可以用作接收?对,就这么神奇,在OpenWrt系统中,所有的无线都可以配置成双向的,既可以是发射的(缺省状态),也可以设置成接收的。点“Network – Wireless”进入无线设置界面:

OpenWrt的负载均衡及多线多拨控制应用mwan3-3

点“Scan”查找可以连接的路由器,一步步按提示输入密码等,就可以将wlan0接口设置成WAN口,为了跟另一个WAN口区分,取名叫wwan,如下图所示(点“Network – Interfaces”:

OpenWrt的负载均衡及多线多拨控制应用mwan3-4

双WAN口设置完成,下面我们就可以进入mwan3的安装及配置过程了。

一、安装

root@OpenWrt:~# opkg update && opkg install mwan3 luci-app-mwan3

root@OpenWrt:~# reboot

二、配置

在Luci界面,点“Network – Load Balancing”(注:mwan3与其它常规应用不一样,不在Services菜单里)进入mwan3的设置界面:

OpenWrt的负载均衡及多线多拨控制应用mwan3-5

1、在Interfaces设置界面,会出现很多WAN口设置范例,你就留Name为wan的,其余的全部删除,然后再在Add输入框内输入wwan,点”Add“按钮,里面设置按wan的设置可以依葫芦画瓢。但这里有一个重要的事情要特别说明,大家看到Metric项没有,如果你在前面创建wan及wwan口没有特别设置的话,这里是不会有任何显示的。而且如果在没有显示的情况下,继续往下设置,即使后续的设置都没有问题,mwan3也无法正常运行,所以切记一定要事先设置好所有WAN口的Metric值。在哪里设置?点“Network – Interfaces”,再点wan及wwan行的”Edit“按钮,然后在“Advanced Settings”中就能发现Metric值的输入框了:

OpenWrt的负载均衡及多线多拨控制应用mwan3-6

找到“Use Gateway Metric”行,输入不同的Metric值即可,例如:wan输入10,wwan输入20。

Interfaces界面设置完成后,点“Save & Apply”保存并应用。Interfaces的设置主要用于判断要作用于mwan3的各WAN口的实时通断状态。

2、进入Members设置界面,设置mwan3要控制的WAN口成员,并且设置作用的先后顺序及权重。

OpenWrt的负载均衡及多线多拨控制应用mwan3-7

先将里面的范例全部删除,再新增wan1、wan2两个成员,分别对应wan口、wwan口,再设置两个成员的优先级,谁的优先级高,就一直用这个口的信号,除非这个口的信号断开了,才用优先级低的信号,也就是说如果设置了不同的优先级Metric值,后面Weight就会被忽略,因为优先级高的口其Weight权重值是100%。Metric值越小,其优先级越高。请注意这里的Metric值与Interfaces中我们设置的Gateway Metric值不是一回事,大家不要搞混了。上图中我设置wan1和wan2两成员的Metric值都为1,即他们的优先级是一样的,而且两成员的权重也都为1,即权重是各50%。在实际的多线多拨应用中,假设你的电信宽带是500M带宽的,移动宽带是200M带宽的,那你就可以设置电信的Weight为5,移动的Weight值为2,这样带宽高的就会被分配给更高权重的活,整个网络就会运行得更加高效。

3、进入Policies设置界面,在多个WAN口的情况下,你可能需要设置有些活是需要其中的某几个WAN口来共同完成的,就把这些WAN口放到同一个策略上,或者说某个服务就只有其中的某个WAN口能完成,那就把这个WAN口也设置成一个新的策略。

OpenWrt的负载均衡及多线多拨控制应用mwan3-8

我为了讲解方便,所以我的设置还是用最简单的。先将原先的范例全部删除干净,然后再增加一个叫balance的策略,设置这个策略要用到成员wan1,也要用到成员wan2,同时还设置其它成员是不使用的,即unreachable (Reject) 。

4、最后进入Rules设置界面,在这个界面中我们制定一些规则,即要设定具体的哪些活,例如http服务、https服务、FTP服务、Samba服务等等,交给哪个策略去完成。

OpenWrt的负载均衡及多线多拨控制应用mwan3-9

我又要偷懒了,就设置了一个rule,即将所有的服务都交给balance策略去完成。根据我们前面的设置,我们知道balance策略就wan1和wan2两个成员,即wan口和wwan口,它们将各按50%的权重去完成所有的任务。

其实Rules的设置是很复杂的,建议在删除所有范例之前,大家可以自己一个一个去研究一下其中的含义,以后再设置时就能做到心中有数了。

5、还有一个Globals全局设置界面,一般来说大家不需要去设置,保持原样就行:

OpenWrt的负载均衡及多线多拨控制应用mwan3-10

全部设置完成后,建议将路由器重启一下,然后再到Luci界面确认一下运行状态。

三、运行状态确认

mwan3专门设计了Luci形式的运行状态显示界面,点”Status – Load Balancing“就进入mwan3的运行状态显示界面,通过看里面的内容,大家就能发现mwan3到底有没有在正常运行:

1、Interface各接口运行状态

OpenWrt的负载均衡及多线多拨控制应用mwan3-11

2、运行细节Detail

OpenWrt的负载均衡及多线多拨控制应用mwan3-12

各接口都显示绿色,表明运行良好,接口一旦端口就会显示红色。wan口及wwan口的分工也很明确,权重为各50%,一切显示OK。

Ps:安装mwan3前,如果该路由器设置过DDNS,那么在多个WAN口的情况下,你还需要去DDNS设置界面设置一下,是将哪个WAN口的公网IP地址实时反馈回域名解析服务器。