“云无界、端无边” OGeek 技术峰会 9月17日 南京不见不散! 了解详情
写点什么

GRE—用于网络走私的隧道

  • 2020 年 3 月 26 日
  • 本文字数:1404 字

    阅读完需:约 5 分钟

GRE—用于网络走私的隧道

一. 背景

大家都知道 vlan 报文是实现网络“分组”的元老,也就是实现云网络(虚拟的假象)的基石。今天介绍网络中的另一位元老,走私鼻祖 GRE。


二. 什么是走私

普通的走私,我们不扣细节的看,走私就是过海关的时候,表面看挺正常,实际里面藏着其你想要携带的东西。


那网络走私又是什么呢? 简单的说,就是在一个公开的协议上,传输一些“私有的 数据”,从而完成夹带私货。


还是看图展示一下大致流程:



当报文的发货方和收货方商量好“规则”之后,中间所有人都不知道他们在传输什么内容了~因为中间检查都是正常的。


上图我们举个具体的例子:



IP 报文看到自己在传输 TCP,正常,放过。

TCP 看到自己在传输 HTTP,正常,放过。

HTTP 检查正常,放过。

谁能知道,我只是通过 HTTP 走私点“干货”?

这里代表着:只要在网络上,有一种协议是通的,你就无法阻止通过这个公开的协议传输特定的内容。

这就是网络走私了。


三. GRE 是怎么走私的

先看看 GRE 报文的格式,然后看看上一章节走私的介绍,就会明白。



我把我要传输的内容(绿色部分),放在一个公开的 IP 报文里面(黄色部分)。


这里就好像,黄色部分走正常通道,如黄色地址先从美国发货到中国,正常通过。


在成功到达中国之后,那就是本端内部搞定了。拿出绿色部分,还有一层地址呢,然后国内真正发往想要的客户。至此 GRE 走私过程完成。


四. 为什么叫 GRE 隧道

走私的方式有很多,长期走私的话,隧道是一种比较好的理解是方式。


当你把货物源源不断的从走私通道传输的时候,它就像一个隧道一样,不停的流动起来。这个就是 GRE 隧道协议了。


五. GRE 隧道和云网络


这种走私方式,用在云网络里面,其实就是张三的货,通过正常通道先从美国发往中国,当到达中国之后,再内部分发,从而完成“走私隧道”。


这样张三走张三的走私隧道,李四走李四的走私通道,在感知上,两个人是互相不相干的,从而形成虚拟网络通信。(在同一个线路上,你走你的,我走我的,互相不感知,可以参见上一节的 vlan 门派介绍,云网络基石章节)。


VPN 隧道,其实用的就是上图这样的模式,把一端的局域网,和远处另一端的局域网,隐含的“桥接”起来。



左边的人,认为和右边的人在同一个局域网里面。中间的网络只是走私的通道的“载体”而已,看不到,也不用关心。(ps,因为有承载隧道的这种载体能力,也就是可以在一种协议上,跑另一个网络协议。所以这种隧道网络,有时候也可以叫 OverLay 网络)。


这样隧道就有能把多个不同地方的局域网“连接”在一起能力,从而形成了云网络的模型。


把两头的局域网“透明”的接在一起,这个就是隧道的魅力了。可以看到 kubernetes 里面的 flannel 网络,用的就是这种隧道原理。



你看它可以把每个节点上面的局域网,全部接在一起,让不同节点里面的容器以为自己在一个大的相同的局域网里面。


六. 总结

从 vlan、gre 的出现,一开始只是为了解决报文分门别类、互不干扰,到他们逐渐在云网络里面大展身手成为云网络的基石。这里面其实核心的思路就是:所有的云网络,其实都是障眼法。也就是你想让它(虚拟机/容器)看到它以为的样子。即它自己是不能发现自己在真实网络里面还是虚拟网络里面的。这个跟一个 app 程序,自己是不知道自己跑在虚拟机里面,还是跑在物理机里面是一样的。


这种对于真实世界的模拟,使得目标看到的假象跟真的一样,不仅仅是云网络,更是云的本质。


本文转载自华为云产品与解决方案公众号。


原文链接:https://mp.weixin.qq.com/s/G-dhD1_pOqMp8OYYTTFOHg


2020 年 3 月 26 日 23:14482

评论

发布
暂无评论
发现更多内容

【深入理解TcaplusDB技术】读取列表所有数据示例代码——[List表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】读取列表指定位置数据示例代码——[List表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

2021最新最全Java基础高频面试题汇总(1W字详细解析)

爱好编程进阶

Java 面试 后端开发

【深入理解TcaplusDB技术】插入数据示例代码——[Generic表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

@Configuration注解 -【Spring底层原理

爱好编程进阶

Java 面试 后端开发

dubbo实战之三:使用Zookeeper注册中心

爱好编程进阶

Java 面试 后端开发

【深入理解TcaplusDB技术】删除数据示例代码——[Generic表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

爱好编程进阶

Java 面试 后端开发

【深入理解TcaplusDB技术】替换数据示例代码——[Generic表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

BAT大厂大佬教你:Docker部署Prometheus+Grafana监控系统

爱好编程进阶

Java 面试 后端开发

Binder源码阅读指南之java层

爱好编程进阶

Java 面试 后端开发

elasticsearch实战三部曲之三:搜索操作

爱好编程进阶

Java 面试 后端开发

69-个经典-Spring-面试题和答案详解(下)

爱好编程进阶

Java 面试 后端开发

BS-GX-018 基于SSM实现在校学生考试系统

爱好编程进阶

Java 面试 后端开发

GitHub 自动合并 pr 的机器人——auto-merge-bot

Nebula Graph

图数据库 知识图谱

【深入理解TcaplusDB技术】批量读取数据示例代码——[Generic表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

30 网站架构师职场攻略

爱好编程进阶

Java 面试 后端开发

技术文档|基于双目感知的封闭园区自动驾驶搭建--感知适配

百度开发者中心

蓝翔:百度开源深度学习平台飞桨的核心技术及应用

百度开发者中心

45天拿下美团Offer,狂抬阿里这本Java性能调优手册,不愧是No

爱好编程进阶

Java 面试 后端开发

Linux下玩转nginx系列(四)---nginx做Web服务器

anyRTC开发者

nginx Linux Web 音视频 服务器

【深入理解TcaplusDB技术】加减字段值示例代码——[Generic表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】更新数据示例代码——[Generic表]

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

首届腾讯云大数据峰会暨Techo TVP开发者峰会

首届腾讯云大数据峰会暨Techo TVP开发者峰会

GRE—用于网络走私的隧道_新基建_华为云产品与解决方案_InfoQ精选文章