网络的可靠性、冗余性自从网络诞生以来就是一个不曾停止过讨论的话题,最近阿里云发布了云骨干网这一产品,引起了业界的广泛讨论,突然觉得在广域网领域有一些事情发生,比如基于阿里云骨干网的SD-WAN的StartUP就是一个不错的想法。说到SD-WAN,感觉其就是在网络可靠性与建设成本之间的Trade off,当然也会有一些灵活性在里面。
本文主要和大家分享的是从分层角度HACK网络,首先跟随小编一起来了解一下什么是网络分层。
网络分层简介
网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,控制信息的加载或拆出等工作,分别由不同的硬件和软件模块去完成。这样可以将往来通信和网络互连这一复杂的问题变得较为简单。
网络层次介绍
七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器(网络层),交换机(数据链路层)。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
分层的益处
建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。它的最大优点是将服务、接口和协议这三个概念明确地区分开来:服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,益处如下:
1、减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错。
2、在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行
3、能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术
从分层角度HACK网络
1、地沟
首先我们的讨论的网络的负一层:地沟,一般运营商做网络可靠性保护时都要求主备链路不能同沟同缆,这里的同沟就是指的这一层,千万不要小看这一层,这可是党的特权,不是你想挖就能挖的,一般也是最耗时的一层。站在这一层去看可靠性的一般都是土豪,比如我们做城域网或者长传波分的环路保护,在两个节点之间至少要挖两条沟,导致成本直接是Double的。作为普通的用户,在这一层能做的事情也就有限了,甚至可以忽略。0X01物理层
这里的物理层主要就是光纤了,光纤都是放在地沟里面的,受限于上面地沟这一层,因此用户能做的事情类似。
2、数据链路层
这里拿以太网举例,从最初HUB的工作原理来讲直接就是广播(当然还有辅助的CSMA/CD),看上去像一个粗人的玩法,但是在特殊的场景也是一种比较有效的方法,比如在电信领域,有些厂家为了满足50ms的倒换时间,也是简单粗暴的直接把数据包发送两份通过不同的路径传送到核心网来保证切换时的低延时,个人认为这也是对广播的一次应用,当然你也可以说这是一种带宽换时间的做法。
还有就是在VR游戏领域,为了获取实时性的低延时,现场摄像头采集的画面信息、各个背包机的位置更新、手柄的信息等都是通过广播来通信的,一方面是有多对一或者一对多的互通需求,另一方面就是通过广播来提高网络的可靠性。当然这里提到应用场景,可能网工觉得这是瞎搞,不符合网络的规则,可是我想说的是谁让业务需求这么奇葩呢,网络本来就是为应用服务的,只能是不管白猫黑猫,能够抓住老鼠的猫就是好猫。
这里说的主要是思路,如果你有这样的业务需求,可以往这个方向去考虑。
3、网络层
网络主要是IP,这里也是网工的主战场,大部分的网络冗余性都是在这里实现,那些牛X的动态路由协议也在这里施展拳脚。除了路由协议自己实现的主备或者负载的冗余技术,这里简单提几个小的TIPs。比如大家都知道路由是递归查询的,利用递归我们可以解决一些棘手的问题,比如有些厂家的PBR仅支持多个下一跳的负载或者主备,我们可以把下一跳递归到静态路由,通过调用静态路由的特性来实现相关功能(负载或者主备或者BFD检测等)。
还有在163类似的骨干网中使用的虚拟下一跳技术,也是使用了路由的递归查询来实现网络冗余。还有就是上层对下层的复用,比如多个IP网络复用同一个以太网网络,具体到端口就是一个物理端口配置使用多个IP地址,再扩展一下就是同一个以太网段使用不同的IP地址网段来满足特定的需求。
4、传输层
这里就是”类F5”的天下了,通过前置负载均衡调度来实现应用级别的网络可靠性。当然“类F5”还有其他的功能,举个例子,大家玩Openstack的都知道Neutron模块所实现的Floating IP仅支持IP级别的公私网映射,但是大家都知道IPv4是很珍贵的,特别是在天朝,一般公司很少有几个C以上级别的地址。但是我们可以通过在Horizon配置负载均衡来实现端口级别的映射,只需添加一台Real Server来代替内网主机就可以了,这也算是一个Trade off吧,风险自行评估,各位新老司机量力而行。
当然传输层对网络层的复用应该就是端口级别的复用了,应用比较广泛的就是NAT映射,这个大家应该都玩的比较溜,不再展开。各种OVERLAY的技术也在此应用,大部分都是UDP封装IP或UDP直接封装以太网(VXALN),这应该算是下层对上层的复用?
这里从网络分层的角度列举了每层可以Hack的技术,可以每层单独使用,也可以组合使用,比如网络层无法解决的问题可以转嫁到传输层或者数据链路层,物理层无法解决的问题也可以转网络层。
-
网络分层
+关注
关注
1文章
6浏览量
8965
发布评论请先 登录
相关推荐
评论