当前课程知识点:大数据系统基础 > 2.云计算 > 授课视频 > 2.11网络虚拟化:软件定义网络
刚才我们讲到了
传统的实现网络虚拟化的技术
那么VLAN VXLAN这些
下面我们讲了一种
另外一种 现在目前
正在兴起的一种
实现网络虚拟化的技术
叫做软件定义网络
需要指出的是软件定义网络
这件事情是实现网络虚拟化的
一个手段
但是它不是实现虚拟化的
唯一的技术
我们完全可以没有软件定义
但照样实现网络的虚拟化
在传统网络里边
网络是分两方面的
一方面叫控制面
一方面叫数据面
传统网络里边
控制面和数据面
是集成在一个盒子里的
这个图是一个交换机的实现
这交换机里头
实现里分为两方面
一方面叫控制面
控制面是负责什么
控制面是负责跟其他交换机
来通讯告诉你
这事儿应该怎么
往哪里转发
它会跟其他交换机商量
这种商量的方法叫做一个协议
它可以商量说
我能连到哪些机器
你能连到哪些机器
我认识谁 你认识谁
它们之间商量完了之后
它们就知道
我这个口接的地方
我往这边转发
它就能达到这些机器
我往那边转发
它就能达到那些机器
这个是一个控制面
控制面跟其他交换机
商量完了
它把自己的信息
记录在一系列的
硬件的表格里头
这硬件的表格
就控制了这个交换结构
这里头是一个叫做switching fabric
叫做交换的一个结构
这个交换结构
连了很多线卡
比如说一个包从这边进来
那么它会通过这个交换结构
因为它会看到
这个线卡跟哪个线卡相连
这个是由控制面
跟其他的交换机商量得到的
那个硬件的表格来控制的
所以它会交换到这个线卡
从这边出去
这个是一个最简单的
我们想象的这个
一个硬件交换机的
这样一个模型
所以它是分两方面的
一方面是控制面
一方面是数据面
控制面的核心
是我要能找到
到底怎么转发
它的逻辑是什么
数据面的核心是
我要快速的把一个包
送到另外一边去
在软件定义网络里头去
同样也是控制面和数据面
但是控制面
我们把它提出来
放到一个服务器里边去
单独管理
这个是每一台交换机
数据面的交换机
只管数据的事情
所以在这种情况下
实际上我们的控制面
就不需要一些分布式的协议
大家来商量说
具体往哪里走了
控制器它有一个全局的
网络的 整体的一种概念
它知道哪条途径能通到哪里
它负责告诉每一个交换机
你这个包进来 这样的包
你应该送到哪里去
所以它实际上设置了
数据面上的那些
转发各种各样的表
所以它也能控制面的
这种转发的路径
这个是软件定义网络的
一个核心的思想
就是说我把控制面
和数据面分开
控制面放到了服务器里面
做一个集中的全网式的
全局式的管理
软件定义网络一个很典型的
实现是一种Open Flow
我们现在有
这么一个Open Flow的例子
大家来看一下
软件定义网络是怎么样实现的
我们还是看到
我们这样的网络架构
假使说我这个里头
有一台机器
想跟这个机器来通讯
那么这个通讯是怎么实现的
首先这些交换机里头
它是没有控制面的
它们之间互相就不再去用这种
各种OSPF这样的协议
来互相寻址了
事实上我们这里
有一个控制器
我们叫做Controller
这是一个控制器
Open Flow协议说
我要发出一个东西来
比如说我发到这个交换机上
这个它有一个目标的地址
目标地址DST
我要发到这个地方
那这个交换机它没有逻辑
它也不跟其它的交换机说话
那它怎么知道
这个DST在什么地方
Open Flow协议告诉它
你不知道的话
你就问Controller就好了
所以它会给Controller
把这个包转发给Controller
它就问这个Controller了
说你看我收到一个这包
我不知道往哪儿去
你告诉我
那么Controller里头
它有一个逻辑
这个逻辑
就叫控制器的一个应用
这个控制器应用它会时刻的关注
整个网络的状态
然后它会决定下一个包
应该往哪儿发
如果它也不知道
那怎么办
那你就是广播一把
它就会告诉你这个
你广播出去 你喊一嗓子
问一下看有没有人知道
但是假设如果它知道
那么它就会立刻告诉它
对 说你这个东西
你要想往那边发的话
那你往汇聚那边走
那么它就发到汇聚交换机
那汇聚交换机一样
它说你为什么发到我这儿
我哪儿知道 但是它不知道
OPNEFLOW协议告诉它
你不知道的
一律问Controller
所以它去问Controller
说我往哪儿走 这个包
那么Controller说
这个包 这个包
你应该往核心那边发
它会再告诉它
你往核心那边发
所以它会把包一直发过去
这样在沿途的每一个交换机
在它不知道怎么走的情况下
它都会去问Controller
但是那你又想了
这个东西 那你Controller好累
每一个人都问
那这个东西能快到哪里去
但是事实上
这个东西的核心在于它缓存
就是Controller跟它说了
说你看 你到这个地址的
都是往这边走的
它下次它就记得了
所以再下一个包
你还是往同一个DST发的包
它就不会再去问Controller
因为它知道
所以它就一路的打通了
所以实际上是Controller
帮助这些交换机
建立了这样一个
能够通过的这样的
一个通路的这么一个途径
这是Open Flow的一种模式
叫做(05:18)的一种模式
叫是被动式的模式
就是我看到包之后
再去问Controller
当然Controller也可以决定
你不用问我
知道你要发很多这样的包
那么我上来之后
一系列的消息告诉你
说这些包应该往哪边走
那些包应该往哪边走
在这种情况下
对Controller的负担
就会减轻很多
当然这只是一个非常大概的
一种对Open Flow的一些介绍
Open Flow里头有很多的细节
如果大家感兴趣的话
大家如果去上这种
研究生的网络课程
很可能会详细地讲到
这个东西是怎么实现的
和这个东西的
具体的应用是什么
这里只是一个概要性的介绍
给大家一个感觉
这个软件定义网络是什么样子的
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-1. 绪论--Quiz 1
-授课视频
--2.2并行化理念
--2.9计算虚拟化
-2.云计算--Quiz 2
-授课视频
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.文件存储--Quiz3
-授课视频
--4.13类似框架
--4.14章节总结
-4. 处理框架--Quiz4
-授课视频
-5.内存计算--Quiz5
-授课视频
--数据副本及一致性
--节点本地数据存储
-6. NoSQL--Quiz6
-授课视屏
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-7. 流计算--Quiz7