关闭

OpenWrt路由器macvlan单线多拨的方法

标签: openwrt负载均衡运营商宽带
9074人阅读 评论(0) 收藏 举报

之前写过一篇文章《OpwnWrt 路由器MWAN3多线多拨实现方法》,介绍了如何在具备多根入室宽带网线的情况下实现网络带宽的叠加。多线多拨一般应用在多个不同运营商线路的负载均衡场景中,那么对于同一运营商,多个帐号又该如何实现呢?

比如有如下一个应用场景,我有两个联通的宽带帐号,在普通情况下,我会购买两个路由器,两个卧室可能都有宽带接口,于是我每个卧室放一个路由器,分别通过不同的PPPOE帐号密码进行拨号,两个卧室的公网IP都不同。这是在没有OpenWrt路由器时候的使用方法,但是这样无法将两个宽带帐号的带宽叠加,如果我两个帐号都是20兆宽带,那么每次我下载最多就跑到20M,现在我想利用我两个宽带帐号的优势实现40兆宽带,那么应该怎么做呢?

首先我们依然可以用以前介绍的多线多拨的方式,不过首先我们需要一个交换机,把单根的入户网线通过交换机分出两个来接到路由器的两个WAN口上,再在路由器上对每个WAN口分别PPPOE拨号,获得两个不同的公网IP,然后再使用mwan3进行路由表级的负载均衡。实现方法可以去看《OpwnWrt 路由器MWAN3多线多拨实现方法》这篇文章。

那么什么叫做“单线多拨”呢。由于我们是同一个运营商的同一根网线进行拨号,所以我们没有必要在路由器上搞出两个WAN口,也不需要再买个交换机,直接在同一个WAN口拨号两次就可以了,路由器内部搞一个虚拟交换机,通过划分VLAN的方式解决。所以通过单线多拨能节省我们一个交换机的钱。

单线多拨的大体实现步骤是这样的

1、新建两个虚拟的vlan,以公网的网卡为端口

2、在两个vlan中分别使用不同的PPPOE帐号密码进行拨号,获得两个不同的公网IP

3、通过mwan3实现路由表级的负载均衡


首先第一步虚拟vlan是通过kmod-macvlan这个模块实现的,换句话说macvlan为我们提供了一个虚拟交换机,省下了我们一个小交换机的钱。具体方法如下

安装opkg update

opkg install kmod-macvlan mwan3 luci-app-mwan3

1、删除OP系统原WAN接口,比如WAN和WAN6两个接口,只保留LAN接口,删完以后的配置截图如下:


在LEDE系统中,如果把所有桥接WAN口的接口都删掉后,我们会丢失掉连接外网的物理网卡eth0.2,在ifconfig中就看不到了,此时我们就无法在eth0.2这个外网物理网卡上部署虚拟vlan了

所以第一步我们要把eth0.2这块网卡找回来。有人会问那么我们之前不删除原来OP默认的WAN和WAN6接口不就好了?答案是不行的,因为OP默认的WAN接口是桥接eth0.2的,只要有任何一个接口桥接eth0.2我们之后新建的vlan就不可能拨号成功,所以WAN接口必须删除。那么我们又如何找回eth0.2呢,方法就是新建一个接口,协议选择“不配置协议”即可,这里我把这个专门用来召唤eth0.2接口的接口命名为interface如下图

注意最重要的是“包括一下接口”选择“eth0.2”,不要忘记选择“开机自动运行”,不要勾选“桥接接口”


防火墙选择“wan”

这样我们的eth0.2就回来了,截图如下

下面我们就可以在eth0.2的上面建立vlan了,执行如下代码建立vth0和vth1两个vlan

ip link add link eth0.2 name vth0 type macvlan
ifconfig vth0 up

ip link add link eth0.2 name vth1 type macvlan
ifconfig vth1 up

然后使用ifconfig就能发现我们又多了两个虚拟接口,如下

下面就可以在vth0和vth1上面设置拨号了,所以我们新建WAN口,选择PPPOE协议,填好第一个帐号密码

注意为了之后路由表的负载均衡配置,我们每一个虚拟wan的metric值(网关跃点)都要不同,注意别忘了勾选“开机自动运行”

然后对接我们刚刚新建的vth0


防火墙一定要选择wan区域

然后我们点击“保存&应用”,就会发现它已经自动拨号了,获得了第一个公网IP地址

这样一拨就完成了,下面我们只需要再新建一个wan1接口,对接vth1虚拟vlan,然后其他的和wan0一样即可,注意这里的PPPOE帐号,metric(网关跃点)要与wan0不同



点击“保存&应用"后会发现wan1也自动拨号成功了,获得了第二个公网IP(下图的wan应该为wan0)

有了这两个wan口之后基本就成功一大半了,剩下的步骤可以按照《OpwnWrt 路由器MWAN3多线多拨实现方法》文章里介绍的通过mwan3进行负载均衡,一模一样所以就不多赘述了。

但是要注意vth0和vth1由于是我们使用shell命令建立的虚拟vlan,所以路由器重启之后就会失效了,所以我们需要在路由器开机的时候自动添加这两个vlan,方法就是把上面添加vlan的语句放到rc.local里执行


肯定有人会问,如果没有两个不同的PPPOE帐号,只有一个能不能拨两次。这个问题要看运营商怎么配置了,有些地区,当然很罕见,用同一个PPPOE帐号可以先后拨号并都能拨上,这样你和你的邻居就可以共用同一个帐号使用宽带了,当然这种情况不多。还有一种是在宽带的签约的时候就签两个以上的session,这样你和你的邻居就可以使用同一个PPPOE帐号任意的上网了。并且如果使用上面的单线多拨的时候,vth0和th1的帐号密码可以相同,并且都能拨上号。

当然更多的时候你使用同一个帐号密码,vth0和vth1只能拨通一个,只获得一个IP,如下图,但此时可以通过一种叫“并发多拨”的技术强制进行拨号,原理就是两个拨号进程同时执行,时间要控制的非常精确,不要让服务器发现你是“一先一后”进行拨号,当然由于精度要非常高,一次往往难以拨成,一般要通过写个小脚本重复拨号多次才能成功。这种拨号不仅拨的慢,而且违反了和运营商的合同约定,属于薅社会主义羊毛的行为,不推荐使用,网上有这种并发多拨的固件,所以我这里就不详细介绍了。





0
0
查看评论

【转1】 OpenWrt Chaos Calmer 15.05使用mwan3单线多拨教程

【转1】 OpenWrt Chaos Calmer 15.05使用mwan3单线多拨教程 mwan3的教程网上并不少,但都是针对BB版的,而我使用的是官方CC正式版,按老的教程走没有一个是成功的。每次设置好mwan3后就上不了网,甚至进不了路由设置界面,也ping不通路由,扯了wa...
  • bingyu9875
  • bingyu9875
  • 2017-04-17 08:56
  • 1800

OpwnWrt 路由器MWAN3多线多拨实现方法

OpenWrt上的MWAN3可以支持多根网线或者多个PPPOE账号的同时拨号使用和负载均衡。并且还可以通过Ping方式来检测中断线路并自动屏蔽中断线路。更厉害的是还支持通过IP、端口、甚至配合dnsmasq使用的域名来进行智能的多线路分流。十分实用。主要可以用在如下几个场景: 1、上网人数众多,一...
  • lvshaorong
  • lvshaorong
  • 2017-03-13 14:59
  • 9522

openwrt单线单帐号多拨的一点总结

  • 2014-09-16 15:31
  • 2KB
  • 下载

校园网&openwrt记(十二)多线多播与mwan3

多线多播,并使用mwan3来负载均衡
  • liubiggun
  • liubiggun
  • 2016-03-04 21:46
  • 3389

openwrt单线单帐号多拨的一点总结

  • 2013-01-26 20:46
  • 2KB
  • 下载

openwrt下VLAN的配置

想要改变你的路由器wankouvlan配置
  • jk110333
  • jk110333
  • 2014-08-21 11:38
  • 29335

使用macVLAN网络模式的容器连通性和延迟的测试

创建docker及其macVLAN网络环境 准备 创建macVLAN网络 创建容器 测试是否work 联通性测试 背景 结果 延迟 背景 结果 结论 创建docker及其macVLAN网络环境准备 使用VMWARE创建两台虚拟机,master : 192.168.91.133.,node : 192...
  • baby6046
  • baby6046
  • 2017-06-04 23:18
  • 2499

图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN

Linux的网卡驱动中内含了很多“虚拟网卡”。早先的文章曾经详细分析过tun,ifb等虚拟网卡,类似的思路,在虚拟化大行其道的趋势下,Linux源码树中不断增加对“网络虚拟化”的支持,不光是为了支持“虚拟机”技术,更多的是给了用户和程序员更多的选择。    &...
  • dog250
  • dog250
  • 2015-05-17 13:57
  • 21431

tun/tap macvtap macvlan

TUN/TAP虚拟网络设备为用户空间程序提 供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支 持TUN/TAP虚拟网络设备,其他UNIX也 是支持的,他们之间只有少许差别。 原理简介 TUN/TAP虚拟网络设备的原理比...
  • jincm13
  • jincm13
  • 2014-03-26 13:25
  • 4446

网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP

转载TUN 设备TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便得模拟网络行为。先来看看物理设备是如何工作的:所有物理网卡收到的包会交给内核的 Network Stack 处理,然后通过 Socket API 通知给用户程序。下面看看 TUN 的工作方式:普通的网卡通过网线收发数据包,但是 ...
  • halcyonbaby
  • halcyonbaby
  • 2014-11-22 00:34
  • 7622
    个人资料
    • 访问:568108次
    • 积分:6108
    • 等级:
    • 排名:第4918名
    • 原创:151篇
    • 转载:0篇
    • 译文:1篇
    • 评论:217条
    最新评论