[硬核长文]IPv6与单线/多线多拨的“冲突”——IPv6时代下MWAN(多广域网连接)的出路

注意!:如果你只是想解决IPv6和单线/多线多拨(MWAN3)的“冲突”,请移步:8.解决方案。如果你想了解其中的技术原因和分析,请继续阅读。

0.引言

这是我全新的尝试,写一篇长的技术分析文章,主要还是源于我在编译和使用OpenWrt的感想和启发,希望对大家有帮助。

编写本文的时候地皮因为个人能力的原因其实很菜,只略微了解OSI,有关层次甚至没有碰过,有机会会去学习和了解,所以这只是个人臆测,如有不正确的地方,请各位指正。

本文可能会耗费大量时间及精力来完成,开始筹备这篇文章的时间是2020/04/13/23点28分,发文的时间是。

地皮我最近一直在学习和研究OpenWrt相关的网络技术,踩了很多坑,也学到了很多东西,有关IPv6和MWAN技术是目前我感受最深的,现在分享给大家。

1.IPv6的介绍

网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网网络层协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。

来自维基百科

总而言之,IPv6设计继承了因特网下IPv4“端到端的透明性”反人设计理念,有人认为这种理念已经过时,我倒觉得在当今万物互联的背景下,这种理念尤为重要。

1.1相关补充(个人看法)

什么能称之为“端到端的透明性”呢?

我们在互联网上访问、使用的各种服务,都需要和其他“端”连接,举个很简单的例子

小明很喜欢王者荣耀,每天晚上回到家都会开几盘才睡觉。时间长了,他开始思考这个游戏是怎么运转的,他思索许久,发现是这样的:红方和蓝方完家连接到游戏服务器,然后和服务器通信,交换数据包实现地图、玩家数据(包括位置、血量、技能等数据)的同步,同步数据消耗的时间就是“PING”——延迟。小明很疑惑,为什么要设置服务器呢,玩家之间互相同步数据不是也可以吗?

没错,CS:GO是可以这样进行游戏的(实际并不完全是),可是由于现有的技术限制,这种体验并不好。

言归正传,如果真的实现小明理想的通讯方法,就实现了端到端的透明性。

玩家“端”设备的数据处理和通讯能力良莠不齐,以及互联网的“互联程度”并没有到达所要求高度,延迟、带宽、NAT、等问题愈发严峻,把IPv6的推行推到了风口浪尖,全球的各个科技公司已经开启了下一代互联网的部署,在不久的将来,说不准,我们真的可以实现了。。。

2.IPv4的介绍

网际协议版本4(英语:Internet Protocol version 4,缩写:IPv4,又称互联网通信协议第四版)是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署和使用的版本。其后继版本为IPv6,直到2011年,IANA IPv4位址完全用尽时,IPv6仍处在部署的初期。

来自维基百科

3.MWAN(多广域网连接)的介绍

使用单条/多条线路接入广域网络即为MWAN(多广域网链接)。

一般用途是结合策略路由和负载均衡实现:单条宽带线路多次拨号、多条宽带线路多次拨号。最终实现提高宽带速度的目的。

当然还有其他专业用途,这里不过多谈了。

4.接入互联网的方式

一般我们有三种方式通过ISP接入互联网

4.1.PPPoE方式

PPPoE:以太网上的点对点协议,优势是可以实现用户身份验证、加密、压缩等传统以太网不太可能提供的功能。缺点也有,不过互联网发展到今天,这些缺点看起来也没什么大不了的。就是一个麻烦,不能直插直用,需要有身份验证的环节,使得用户的上网体验下降了。

使用方式如下:宽带运营商会分配一个宽带账号、宽带密码给用户;在未使用路由器的情况下,电脑上需要使用“宽带连接”拨号来实现上网;目前国内绝大多数用户办理的宽带,都属于pppoe拨号这种类型。

4.2.静态IP方式

我们或多或少都听过IP地址稀有,那么物以稀为贵,如果专门给你长期分配一个IP,花费的代价是很大的,当然这问题也仅存于IPv4时代。所以说,一般是特殊的服务器或者采用专线上网的计算机才拥有固定的IP地址而且需要比较昂贵的费用。

使用方式如下:宽带运营商会提供一根一个IP地址、子网掩码、网关和DNS服务器地址给用户。在未使用路由器的情况下,只需要把这根入户网线连接到电脑上,并且手动设置电脑上的IP地址,这样电脑才能上网。

4.3.动态IP方式

这种方式和静态IP相对应,通常情况下使用DHCP协议进行分配IP地址的操作,在设备上只需要设置Internet协议属性为自动即可,相当的方便。

5.IPv4和IPv6在分配方式上的差异

由于在显示中有很多不确定因素,我这里以最理想的状态去谈,有关NAT等复杂的技术就不再说了~本文主要讲的是MWAN,这项技术很少用在PC上,一般用在路由上,所以也是以路由器接入网络去谈~

IPv4:

路由器通过第4节介绍的三种方式接入互联网时,仅会取得一个IP地址和一条线路连接,所以路由器获得的IP是确定的,且不受路由器本身控制。通过组建局域网,使用NAT或代理服务器,使得局域网中的客户端获得访问互联网的能力。

IPv6:

路由器通过第4节介绍的PPPoE和动态IP方式接入互联网时(我认为不太可能会向普通用户提供静态方式了),会获得一个IPv6地址段,然后再向路由下的通过各种方式接入的客户端提供该地址段下的DHCP服务,我这里没有说组建局域网,是因为这里的“局域网”其实更像一个“网域”,每台客户端都完全暴露在IPv6的广域网中,这不是一个普通的局域网形态。

差异已经显而易见了,拥有成熟NAT技术的IPv4的“局域网”更安全,拥有IPv6地址段的IPv6的“网域”可以为互联网的未来带来无限可能。

6.NAT——网络地址转换

NAT(Network Address Translation)是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的。网络地址转换在很多国家广泛使用,特别是中国,点名批评移动和联通公司,不积极推进IPv6的建设!只会用NAT解决燃眉之急!甚至还NAT再套NAT!无限套娃!但我还是选择原谅他们,因为中国网民太多了。

除了电信运营商的大型应用,我们的局域网也在使用这项技术,可以使更多的设备接入互联网,并且可以提高网络安全性。

7.这该死的“冲突”是怎么发生的

先贴上OpenWrt有关MWAN的wiki:https://oldwiki.archive.openwrt.org/doc/howto/mwan3

小明现在有一台路由器,通过PPPoE方式获得了IPv4和IPv6地址,他和运营商签署了每年199元的合同,所以他只有8M的带宽,这令小明非常苦恼,于是他该路由器安装了OpenWrt系统,并安装了syncdial多拨插件,设置了10个虚拟WAN口后迫不及待地点了“保存”按钮;等待了一会儿,小明打开“接口”页面,发现十个接口全都联通了,小明惊喜万分,立马打开了SpeedTest,“WOW~awesome!”,小明惊呼!只见SpeedTest界面上赫然显示着“100Mbps”,但小明很快就发现了问题,没法访问学校的IPv6资源站了!他赶忙检查适配器状态,看到了“IPv6连接:无网络访问权限”;他又赶忙打开OpenWrt的“接口”页面,发现LAN口下面有十个IPv6地址,这让他备感疑惑,于是上网查阅资料,找到了这篇文章:IPv6与单线/多线多拨的“冲突”——IPv6时代下MWAN(多广域网连接)的出路,哈哈哈,言归正传。

lean大的syncdial多拨插件依赖于MWAN、负载均衡、策略路由等技术

MWAN的负载策略在编写的时候IPv6并未普及并广泛使用,所以负载策略并没有对IPv6的路由进行单独处理,且IPv6默认状态下也没有开启NAT功能(因为目前IPv6的NAT技术还停留在论文阶段,詹博网络也仅提供了一种基于隧道的IPv6NAT方案),IEEE指出0.0.0.0/0和::/0可以互通,所以导致针对IPv4的的MWAN负载策略直接覆盖掉了正常通讯的IPv6路由,导致IPv6的流量无法被路由器处理,最终无法访问IPv6网络。

8.解决方案

解决方案一般有两个思路,一个是给IPv6路由做NAT、写负载策略,另一个就是改MWAN的源码,让他的规则不干涉IPv6的路由。现在来介绍一下。

8.1.方案1——更改MWAN源码

此方案有很强的局限性,仅适用于“6in4”的网络环境!!!!

修改mwan的脚本

vi /lib/mwan3/mwan3.sh

找到这一行

IPT6="/usr/sbin/ip6tables -t mangle -w"

修改为

#IPT6="/usr/sbin/ip6tables -t mangle -w"
IPT6="/bin/true"

保存退出

:wq

重启路由器,即可重新访问IPv6网络。

8.2.为IPv6路由添加NAT并编写策略

直接上原文链接了,这个方法非常复杂!

为lean大源码的多播插件添加ipv6负载均衡 – OPENWRT专版 – 恩山无线论坛 – Powered by Discuz!

那么问题来了,为什么这么复杂呢?前面解释原因的时候说道:因为目前IPv6的NAT技术还停留在论文阶段,詹博网络也仅提供了一种基于隧道的IPv6NAT方案,为甚麽IPv6的NAT发展如此缓慢?我们后面说说。

9.何去何从?

虽然我们可以根据第二种解决方案通过IPv6下的NAT访问IPv6网络,但是,问题来了,我们为什么要IPv6?

在回答之前我先提一个问供各位思考,为甚麽我国网络界曾经提出的“物联网+”、“万物互联”等概念发展缓慢?

IPv6具有比IPv4大得多的编码地址空间。这是因为IPv6采用128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2128(约3.4×1038)个地址,具体数量为340,282,366,920,938,463,463,374,607,431,768,211,456 个,也可以说成1632个,因为32位地址每位可以取16个不同的值。

以地球人口70亿人计算,每人平均可分得约4.86×1028(486117667×1020)个IPv6地址。

IPv6甚至可以给地球上每一粒沙子分配到IP地址!万物互联的构想在IPv6完全普及的情况下会更加的繁荣!

前面我们提到,在IPv6下默认是没有NAT模式的,现在我们聊聊原因。

9.1.IPv6下默认没有NAT的原因

流行在网络上的一种看法认为,IPv6的广泛采用将使得NAT不再需要,因为NAT只是一个处理IPv4的地址空间不足的方法。实际上前面我们介绍NAT的时候也提到,NAT兴起的原因也是因为IP地址短缺,但是NAT也为我们带来了意料之外的好处。局域网拥有了更高的安全性;信息化教学、办公、科研门槛和费用更低。

NAT设计之初也没有从为了实现这种非正规的带宽拓宽出发!!!!!!

随着网络安全的不断进步,NAT带来的更高的安全性已经显得微不足道了,动态的IPv6地址也可以很好的解决隐私问题,我们已经没有理由不推进IPv6部署了。

9.2.IPv6部署缓慢

IPv6部署缓慢一个最大的原因就是用户感知不强,假设一个人的互联网生活只是每天下班回家看看视频,IPv6带来的好处是他无法感知的,NAT已经完美的解决了他的需求,如果他还要用智能家居这种极度依赖互联的产品,他还是无法感受,智能家居产品制造商在制造的同时部署一个云服务器,也可以完美的解决需求;其他领域更不用提了,IPv6带来的好处只有运营商长期才能看到。

9.3.理想的互联网

理想的互联网模式是去中心化的,比特币的经久不息也证实了这种模式的可行性,我们无法想象真正去中心化之后的世界变化,因为我们都无法想象到从3G移动网络升级到4G之后世界发生的变化,这还只是延迟和带宽的升级,真正到了网络结构发生改变的时候,究竟会发生什么,我们无法想象···

10.IPv6、NAT、万物互联

2017年11月26日,中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》,要求各地各部门贯彻落实。其中主要目标包括:到2018年末,IPv6活跃用户数达2亿,互联网用户中占比不低于20%;到2020年末,IPv6活跃用户数超过5亿,互联网用户中占比超过50%,新增网络地址不再使用私有IPv4地址;到2025年末,中国IPv6网络规模、用户规模、流量规模位居世界第一,网络、应用、终端全面支持IPv6。

通过IPv6下的NAT访问IPv6网络到底有没有必要?

我的回答是有,因为社会的发展已经已经跟不上技术的更迭。

国家制定了宏伟的网络架构推进战略,我们仍要为高昂的带宽费用掏腰包,甚至新架构已经近在咫尺,而我们还要通过多拨满足上网需求。

先进的影像技术已经广泛应用,最基本的影音娱乐需求与日俱增,画质的升级客观上带来了对带宽升级的要求,而我们还要通过多拨满足上网需求。

电子竞技逐渐专业化商业化,游戏行业制作越来越精良,产品体积越来越大,而我们还要通过多拨满足上网需求。

万物互联的时代,本应是一个百废俱兴的时代,而我们还要通过多拨满足上网需求

······

11.完

我想起了那个软盘碟片满天飞的年代,那时,技术还没有赶上社会发展呢,瞬间就已经大变样了······

参阅:

https://zh.wikipedia.org/wiki/PPPoE

https://zh.wikipedia.org/wiki/IPv6

https://zh.wikipedia.org/wiki/IPv4

https://gitlab.com/XDOSC/WIFI/-/wikis/network/PPPoE

https://www.right.com.cn/forum/thread-248721-1-1.html

https://github.com/openwrt/packages/issues/2429

https://www.juniper.net/documentation/en_US/junos/topics/topic-map/security-ipv6-nat.html

https://www.cnblogs.com/panxuejun/p/10538289.html

https://www.right.com.cn/forum/thread-760177-1-1.html

相关引用
暂无评论

发送评论 编辑评论


				
上一篇
下一篇