《Cloud Native Data Center Network》读书笔记-5

第六章 网络虚拟化

第六章第一小节 什么是网络虚拟化

网络虚拟化使网络运营商能够将单个物理网络分割成多个孤立的虚拟网络。

包交换网络中,假定每个虚拟网络拥有以下资源:

接口或者连接
转发表
其他表项,例如强制执行策略(例如,访问控制)和每次执行其他数据包操作(网络地址转换[NAT])
数据包缓冲区和链接队列
在更高的抽象级别中,每个虚拟网络都假设它是整个网络。每个虚拟网络都与其他虚拟网络隔离。为了实现拥有整个地址空间的错觉,数据包转发表将跨多个虚拟网络进行分组。为了确保虚拟网络之间的流量隔离,要么将一个完整的接口分配给一个虚拟的网络,要么为共享该链路的每个虚拟网络在逻辑上分割一个接口。

为了实现高效的共享,资源的分区是动态的和细粒度的。每个资源都用其所属的虚拟网络进行标记。

第六章第二小节 在数据中心中使用网络虚拟化

现代数据中心的网络虚拟化有三个主要用例

通过某些服务强制提供流量
通过第3层(L3)网络提供第2层(L2)连接
多重性
将交换机管理流量与数据流量分开
6.2.1 强迫流量采取某种路径

第一个用例是使用网络虚拟化来强制流量通过提供特定服务的特定节点。一个简单的例子是数据中心外部的流量和内部网络之间的防火墙。

图6-1显示了此用例的典型设计
在这里插入图片描述
图6-1 强制使流量通过防火墙
图6-1(a)显示了外部网络和单个内部网络之间的物理连接。图6-1(b)显示了如何通过为外部网络和内部网络创建单独的虚拟网络来实现分离。

6.2.2 需要L2邻接的应用程序

许多应用程序仍然依赖于L2连接。

无论原因是什么原因,维护L2连接的要求要求它在L3网络上工作,因为具有Clos拓扑的现代数据中心本质上就是L3。网络虚拟化用于提供此功能。

6.2.3 云

云本质上是多租户的,云服务提供商支持一个公共的、共享的基础结构上的多个客户,无论是计算还是网络。

第六章第三小节 将交换机管理网络与数据流量分开

数据中心中网络虚拟化最普遍的使用是使用它来保持交换机管理流量与数据流量分开。每个交换机都有一个单独的带外以太网端口,仅用于让管理服务器与交换机通信。

第六章第四小节 网络虚拟化模型

网络虚拟化解决方案可以按两个主要维度进行分类:通过它们提供的服务抽象(L2或L3),以及它们是基于内联的还是基于Overlay的。

6.4.1 L2/L3服务抽象

L2层虚拟网络

作为L2服务抽象,虚拟L2网络对路由数据包的网络工作层不做任何要求。它假设数据包转发使用L2(或MAC)转发表,并且在整个L2层中的地址是唯一的。

L3层虚拟网络

作为L3服务抽象,虚拟L3网络提供唯一的三层地址。最常见的虚拟L3网络技术是VPN。

vpn也发展到支持虚拟L2网络。因此,支持虚拟L3网络的VPN通常被称为L3VPN,以区别于L2VPN。

6.4.2 内联虚拟网络与Overlay虚拟网络相比

在内联模型中,源和目标之间的每一跳都知道数据包所在的虚拟网络,并使用此信息在转发表中进行查找。在覆盖网络模型中,只有网络的边缘才能跟踪虚拟网络;网络的核心并不知道虚拟网络。VLAN和VRF是虚拟网络内联模型的例子,而MPLS、VXLAN和其他基于ip的vpn是覆盖模型的例子。

内联模型的主要优点是透明度和降低了数据包头开销。然而,要求路径上的每个节点都知道虚拟网络,这使得模型非常不可伸缩和效率低下。它的可扩展性很差。

第六章第五小节 网络隧道:基本Overlay组成
在这里插入图片描述
图6-2 网络隧道中的数据包转发
6.5.1 网络隧道的好处

可伸缩性
避免了一个完整的设备升级
简化管理
灵活性
6.5.2网络隧道的缺点

数据包的负载均衡
网卡行为:过多的功能实现对网卡的性能造成影响
最大传输单元:隧道建立会增加数据包头的大小,从而导致影响设备端口的最大传输单元
可见性不足:隧道会掩盖一些内容
第六章第六小结 针对数据中心的网络虚拟化解决方案

6.6.1 VLAN

VLAN几乎普遍部署在网络的边缘;即,在第一跳路由器中。甚至是一些最大的网络也使用这个模型。但是由于VLAN仅限于单个跳点,这作为一个虚拟网络解决方案就不那么好了。

6.6.2 VRF

这是一个简单的、可以在节点上提供独立的路由表的构造。跨多个节点映射隔离的路由表以提供端到端流量隔离是留给其他结构的问题。

6.6.3 VxLAN

VXLAN是一个无状态的L2隧道,它允许您在L3网络基础设施上构建单个L2虚拟网络。

VXLAN使用通过IP上的UDP作为封装技术,允许现有网络设备通过多个路径负载平衡数据包
在这里插入图片描述
图6-3 VXLAN头格式
6.6.3 其他网络虚拟化解决方案

微软使用的是GRE(NVGRE)

VMware正在推动一种名为Geneve的新网络隧道

第六章第七小节 对虚拟网络数量的实际限制

影响数量的主要因素

数据包报头中的虚拟网络ID的大小
硬件强制执行的限制
控制平面和软件的可扩展性
部署模型
6.7.1 数据包标头中的虚拟网络ID的大小

VLAN的报头中有12位来承载虚拟网络。最多可以支持4000个虚拟网络。

MPLS支持20位,这被限制为100万个虚拟网络,尽管理论上MPLS可以通过添加另一个MPLS标签来支持更多。

VXLAN和GRE支持24位,因此可以同时运行1600万个虚拟网络。

6.7.2 硬件限制

大多数分组交换芯片只在单个设备上支持16K到64K的虚拟网络。硬件限制不仅取决于数据包转发表支持什么,还取决于其他表,如ACL表。

6.7.3 控制平面和软件的可扩展性

控制平面提供了虚拟网络的数量:

携带关于所有虚拟网络的信息的控制协议的单个实例比当涉及到关于每个虚拟网络的控制协议的单独实例时更具可伸缩性。

如果一个控制协议对具有特定ID大小的虚拟网络进行编码,那么这就是可以支持的限制,而不管我们已经讨论过的其他考虑因素如何。

除了这些限制外,还可能存在其他的软件扩展问题,如控制协议的实现、软件状态与硬件的同步等。

6.7.4 部署模式

自动化方式,IBGP方式,故障域限制都会影响虚拟网络部署数量

典型范例:

VRF—从2个到64个虚拟网络,偶尔也有128个。
VLAN—4000个虚拟网络
VxLAN—没有超过4000。这也是因为大多数使用VXLAN的EVPN部署都在Clos拓扑结构上运行遗留企业应用程序。
更成功的公共云运营商将在主机上启动虚拟网络,并为信息运行专有的分发模型。所以他们的比例数字有很大的不同,而且没有公开披露。

第六章第八小节 网络虚拟化的控制协议

6.8.1 虚拟控制平面与物理控制平面的关系

内联网络虚拟化的控制平面通常涉及运行物理网络的标准控制平面的多个实例。

VLAN—STP

VRF—路由协议

在Overlay模型中,用于虚拟网络的控制平面协议至少需要交换以下信息:

将内部有效载荷的目标地址映射到隧道标头的目标地址的映射

在每个覆盖端点上所支持的虚拟网络的列表

6.8.2 集中控制模型

虚拟网络是覆盖了运行在物理网络基础设施上的应用程序,还是网络标题本身的固有组成部分?虚拟网络实际上是一个应用程序.

6.8.2 基于协议的控制模型

EVPN被称为无控制器的VXLAN解决方案。

第六章第九小节 供应商支持网络虚拟化

6.9.1 商用芯片

大量商用芯片开始支持VxLAN

6.9.2 软件

Linux内核本身已经长期以来一直在本地支持VXLAN,并开始逐步支持EVPN。

6.9.3 标准

IETF是涉及网络虚拟化技术的主要主体,特别是那些基于IP和MPLS的技术。VXLAN是一个信息性RFC,RFC7348。

第六章第十小节 VXLAN的桥接和路由示例

1、在桥接中,包转发通过在MAC表中查找包的目标MAC地址来工作。如果接收接口是桥接接口,那么无论每个包是否路由,通常都会在MAC表中查找。

2、如果接收的接口不是桥接接口,例如在交换机链路上,目标MAC地址必须由接收接口拥有,否则丢弃包。如果接收到的包上的目标MAC地址属于路由器,则标记该包进行路由。如果是面对面的桥接,本地路由器的MAC地址将被标记,以便传递到属于该桥接上的路由器的逻辑接口。这通常被称为交换机VLAN接口(SVI)。如果目标MAC地址属于交换机的路由接口,则标记数据包进行路由。这些概念如图6-4所示。
在这里插入图片描述
图6-4 交换机中的SVI和路由接口
3、如果目标MAC地址没有地址到路由器,则每个交换机形成一个MAC表查找,给定传入的VNI和目标MAC地址。如果输出接口是VXLAN隧道,则将VXLAN隧道头添加到数据包中。在VXLAN头添加到包后,新包被路由。在这轮路由中,用于路由查找的目标IP地址是隧道报头的目标IP地址,它是出口VTEP的IP地址。

4、但是,如果在上一步中,标记包进行路由,则包转发逻辑在路由表中对包中的目标IP通告 进行查找,并为包导出传出接口。(如果有多个可能的输出接口,则只选择一个。)此查找的输出还标识数据包的目标MAC地址,包括任何附加信息,例如与此MAC地址相关联的VNID。

5、如果传出接口是桥接接口,那么在逻辑上,将在MAC表中再次查找这个MAC地址,以生成传出接口以发送数据包。如果此MAC表查找指定的传出接口是VXLAN隧道,则包转发按照步骤3工作。否则,数据包将被转发出已标识的输出接口。

6、如果目标IP地址是本地VTEPIP地址,并且包被标识为VXLAN包,则剥离VXLAN头,将底层包扔回包转发逻辑的开始,到步骤1。这可能会导致数据包输出的VXLAN再次被封装,尽管通常与它附带的VNID不同。

当数据包可以在路由后被封装时,或者数据包可以在分组后被路由时,此功能通常被称为路由进出隧道(RIOT)。

图6-5中所示的拓扑结构来说明VXLAN数据包的转发。
在这里插入图片描述
图6-5 用来解释VXLAN数据包流的示例拓扑结构
6.10.1 VXLAN桥接示例:H1到H5

1、H1确定H5的IP地址10.1.1.30在H1自己的子网中。因此,它通过ARP终止了H5的MAC地址。然后H1发送一个包来交换L1,该MAC地址作为目标MAC地址,源MAC地址作为该MAC自己的MAC地址。它在紫色的VLAN上发送数据包。

2、L1接收此数据包,并使用紫色VLAN和H5的MAC在MAC表中进行查找。现在确定这是与紫色VNID和L4,10.127.1.4.的出口VTEP相关的VXLAN隧道

3、L1用一个VXLAN头封装数据包,目标VTEP为10.127.1.4,源VTEP为10.127.1.1.

4、L1现在在10.127.1.4上执行一个路由查找,以确定要到达它的下一跳。因为下一个跳有两个可能的选择,S1和S2,所以它使用VXLAN头的散列来随机选择一个。让我们假设它选择了S2。然后使用S2的目标MAC地址将数据包发送出接口到S2。

5、S2接收此数据包。由于目标MAC地址属于收发接口,且该接口是路由接口,因此S2对数据包的目标IP地址10.127.1.4.进行路由查找它将数据包标识为来自到L4的接口。然后将数据包发送到L4,目标MAC地址设置为L4的MAC地址,源MAC广告地址设置为L4,换句话说,S2。

6、L4接收此数据包。由于目标MAC地址属于收发接口,且该接口是路由接口,因此L4对数据包的目标IP地址10.127.1.4.进行路由查找这与它自己的VTEPIP地址相匹配,因此L4斩首了VXLAN报头。

7、解后的包进入MAC表查找,因为VXLAN是MAC覆盖隧道。这个被解首的数据包上的目标MAC地址是H5的MAC地址。使用紫色VNID的MAC表中和此目标MAC的查找将结果返回为端口到H5。所以L4将被首的包发送到H5。

8、H5接收此数据包。由于目标MAC地址属于接收接口,H5接受数据包并对目标IP地址进行路由查找此查找结果表明该包注定到H5本身,因此主机将其本地传递到与该包相关联的进程。这将终止数据包的传递。

图6-6显示了数据包从H1发展到H5时的数据包头。
在这里插入图片描述
图6-6 带有VXLAN基本桥接的数据包标头
在VXLAN中的多目标帧处理

通过广播、多播、位置单播方式处理

6.10.2 VXLAN和路由:H1到H6

如图6-5所示,10.1.1.x和10.2.1.x子网分布在多个叶子上。在这种情况下,公共模型是让每个携带一个子网的VTEP都是该子网的默认网关。例如,H1、H4和H5都将使用相同的默认网关地址,但L1路由H1的包,L3路由H4的包,L4路由H5的包。这被称为分布式路由模型。

也可能只让一个路由器子集执行子网执行路由。例如,对于10.2.1.x子网,有可能只有叶L2是路由器。这被称为集中式路由模型。

1、因为H1知道基于H1的IP地址H6在不同的子网(10.1.1.10/24与10.2.1.40在不同的子网),所以它发送目标MAC设置的包到默认网关,默认网关是L1的MAC地址。

2、L1接收此包。看到它被地址到路由器,L1继续路由包。因为代表H6IP地址的子网分布在多个叶子,路由(加上ARP)查找产生与H6IP地址相关联的特定出口VTEP。路由查找可以通过两种方式来实现这一点。该查找可以直接生成H6的MAC地址,也可以生成出口VTEP、L4的路由器MAC地址。前者称为非对称路由,后者称为对称路由。控制协议和部署模型决定选择哪个模型,并适当地填充路由表。在任何一种模型中,VXLAN标头中的VNID都必须同时存在于入口和出口VTEP上。在非对称模型中,使用的VNID是10.2.1.0/24所属的VNI,在本例中为绿色。在对称模型中,一个表示10.1.1.0/24和10.2.1.0/24子网共享的VRF的新VNI被用作从L1发送到L4的数据包中的VNID。

3、与L1选择的路由模型无关,L4总是出口VTEP,VXLAN标头始终携带L4的IP地址作为目标IP地址。在添加VXLAN头之后,包转发的工作类似于桥接情况,VXLAN封装的包通过S2(或S1)路由到L4。

4、当到达L4时,VXLAN报头被剥离,因为L4是出口VTEP,而接收到的数据包上的目标IP地址是L4的IP地址。因为VXLAN是L2隧道,在任何一个路由模型中,L4都使用分组包的目标MAC地址和VXLAN头中提供的VNI进行MAC表查找。在非对称路由的情况下,由于目标MAC地址属于H6,因此数据包直接桥接到H6。在对称路由的情况下,由于目标MAC地址是路由器的地址,L4进行另一个路由查找,这次是对解包包的目标IP地址。路由查找导致数据包被转发到H6。

图6-7显示了从H1到H6的非对称路由的数据包头。
在这里插入图片描述
图6-7 VXLAN非对称路由分组流
在这里插入图片描述
图 6-8 VXLAN对称路由数据包流
6.10.3 总结了VXLAN的桥接和路由
在这里插入图片描述
图6-9 VXLAN和跟踪,说明隧道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹林子的摩卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值