从分层角度HACK网络

网络的可靠性、冗余性自从网络诞生以来就是一个不曾停止过讨论的话题,最近阿里云发布了云骨干网这一产品,引起了业界的广泛讨论,突然觉得在广域网领域有一些事情发生,比如基于阿里云骨干网的SD-WAN的StartUP就是一个不错的想法。说到SD-WAN,感觉其就是在网络可靠性与建设成本之间的Trade off,当然也会有一些灵活性在里面。

作为一个有着原始的分层基因网络,其灵活性远远超出了我们的想象,当然一切事物都是不完美的,有利必有弊。把一件事物从不完美一步一步趋向近乎完美的过程应该是一件有意思的事情,这也许就是网络工作者的意义所在。今天,暂且只讨论网络分层带给我们的好处。

0X00 地沟

首先我们的讨论的网络的负一层:地沟,一般运营商做网络可靠性保护时都要求主备链路不能同沟同缆,这里的同沟就是指的这一层,千万不要小看这一层,这可是党的特权,不是你想挖就能挖的,一般也是最耗时的一层。站在这一层去看可靠性的一般都是土豪,比如我们做城域网或者长传波分的环路保护,在两个节点之间至少要挖两条沟,导致成本直接是Double的。作为普通的用户,在这一层能做的事情也就有限了,甚至可以忽略。

0X01物理层

这里的物理层主要就是光纤了,光纤都是放在地沟里面的,受限于上面地沟这一层,因此用户能做的事情类似。

0X02数据链路层

这里拿以太网举例,从最初HUB的工作原理来讲直接就是广播(当然还有辅助的CSMA/CD),看上去像一个粗人的玩法,但是在特殊的场景也是一种比较有效的方法,比如在电信领域,有些厂家为了满足50ms的倒换时间,也是简单粗暴的直接把数据包发送两份通过不同的路径传送到核心网来保证切换时的低延时,个人认为这也是对广播的一次应用,当然你也可以说这是一种带宽换时间的做法,只要你高兴就好。

还有就是在VR游戏领域,为了获取实时性的低延时,现场摄像头采集的画面信息、各个背包机的位置更新、手柄的信息等都是通过广播来通信的,一方面是有多对一或者一对多的互通需求,另一方面就是通过广播来提高网络的可靠性。当然这里提到应用场景,可能网工觉得这是瞎搞,不符合网络的规则,可是我想说的是谁让业务需求这么奇葩呢,网络本来就是为应用服务的,只能是不管白猫黑猫,能够抓住老鼠的猫就是好猫。

这里说的主要是思路,如果你有这样的业务需求,可以往这个方向去考虑。

0X03网络层

网络主要是IP,这里也是网工的主战场,大部分的网络冗余性都是在这里实现,那些牛X的动态路由协议也在这里施展拳脚。除了路由协议自己实现的主备或者负载的冗余技术,这里简单提几个小的TIPs。比如大家都知道路由是递归查询的,利用递归我们可以解决一些棘手的问题,比如有些厂家的PBR仅支持多个下一跳的负载或者主备,我们可以把下一跳递归到静态路由,通过调用静态路由的特性来实现相关功能(负载或者主备或者BFD检测等)。还有在163类似的骨干网中使用的虚拟下一跳技术,也是使用了路由的递归查询来实现网络冗余。

还有就是上层对下层的复用,比如多个IP网络复用同一个以太网网络,具体到端口就是一个物理端口配置使用多个IP地址,再扩展一下就是同一个以太网段使用不同的IP地址网段来满足特定的需求。

0X04传输层

这里就是”类F5”的天下了,通过前置负载均衡调度来实现应用级别的网络可靠性。当然“类F5”还有其他的功能,举个例子,大家玩Openstack的都知道Neutron模块所实现的Floating IP仅支持IP级别的公私网映射,但是大家都知道IPv4是很珍贵的,特别是在天朝,一般公司很少有几个C以上级别的地址。但是我们可以通过在Horizon配置负载均衡来实现端口级别的映射,只需添加一台Real Server来代替内网主机就可以了,这也算是一个Trade off吧,风险自行评估,各位新老司机量力而行。

当然传输层对网络层的复用应该就是端口级别的复用了,应用比较广泛的就是NAT映射,这个大家应该都玩的比较溜,不再展开。各种OVERLAY的技术也在此应用,大部分都是UDP封装IP或UDP直接封装以太网(VXALN),这应该算是下层对上层的复用?你自己说了算。

0X05应用层

由于本人没玩过编码,这部分还是由码农来帮忙添加一下吧。

这里从网络分层的角度列举了每层可以Hack的技术,可以每层单独使用,也可以组合使用,比如网络层无法解决的问题可以转嫁到传输层或者数据链路层,物理层无法解决的问题也可以转网络层。到我相信还有更多的东西等待大家去挖掘,期待看到更多的分享。

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2017-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

常见测试术语解析

BAT,Build Acceptance Testing,工作版本可接受测试。新工作版本正式测试前进行的一项快速测试过程,目的是保证软件的基本功能和内容正确完整...

23770
来自专栏Debian社区

微软发布基于 Debian 的交换机操作系统

OCP 峰会刚刚轻松的结束了,但是让我们惊讶的发现微软发布了一个基于 Debian Linux 的操作系统,这个操作系统主要运行在网络交换机之上。该软件被称为 ...

20420
来自专栏云计算D1net

容器和微服务器如何改变安全性

原生云应用程序和基础设施需要完全不同的安全方法。请牢记下面这些最佳实践。 ? 如今,大大小小的组织正在探索云原生软件技术的应用。“原生云(cloud-nati...

38560
来自专栏CaiRui

局域网技术

2.1 局域网的概念 1.数千米范围内额几台到数百台小型计算机或微型计算机通过通信线缆连接而形成的计算机系统称为计算机局域网络。局域网简称LAN,是Local ...

24290
来自专栏SDNLAB

虚拟机军团来了

云计算(严格说是IaaS)的核心诉求就是向用户提供虚拟机。为了尽可能地提高CPU、内存的利用率,一台物理服务器中往往支撑着数十台甚至上百台虚拟机。接入是虚拟机联...

44150
来自专栏软件测试经验与教训

计算网络传输的真实速度

44890
来自专栏即时通讯技术

移动端IM系统的协议选型:UDP还是TCP?

对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码�该如何编写。

23910
来自专栏SDNLAB

SDN实战团分享(二十四):Midonet简介

Midonet是日本的Midokura公司开源出来的Neutron组网方案。Midokura早在2010年就开始做云中的网络虚拟化,他们最开始做Midonet是...

419110
来自专栏SDNLAB

OpenStack Neutron之OpenStack网络基础

OpenStack在这几年风生水起。随着核心模块稳定性的提高,OpenStack已经有了很多大规模商用的案例,所有与云相关的,无论是商用软件还是开源平台都在积极...

43580
来自专栏SDNLAB

网络虚拟化协议GENEVE

22620

扫码关注云+社区

领取腾讯云代金券