Overlay和Underlay的含义 overlay什么意思
本文分别介绍Overlay网络模型和Underlay网络模型 。
- Overlay网络模型
显然,主机间的网络通信只能经由主机上可对外通信的网络接口进行,跨主机在数据链路层直接连接虚拟网桥的需求必然难以实现,除非借助宿主机间的通信网络构建的通信“隧道”进行数据帧转发 。这种于某个通信网络之上构建出的另一个逻辑通信网络通常即10.1.2节提及的Overlay网络或Underlay网络 。图10-7为Overlay网络功能示意图 。
文章插图
文章插图
图10-7 Overlay网络功能示意图
隧道转发的本质是将容器双方的通信报文分别封装成各自宿主机之间的报文,借助宿主机的网络“隧道”完成数据交换 。这种虚拟网络的基本要求是各宿主机只需支持隧道协议即可,对于底层网络没有特殊要求 。
VXLAN协议是目前最流行的Overlay网络隧道协议之一,它也是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,将“二层域”突破规模限制形成“大二层域” 。那么,同一大二层域就类似于传统网络中VLAN(虚拟局域网)的概念,只不过在VXLAN网络中,它被称作Bridge-Domain,以下简称为BD 。类似于不同的VLAN需要通过VLAN ID进行区分,各BD要通过VNI加以标识 。但是,为了确保VXLAN机制通信过程的正确性,涉及VXLAN通信的IP报文一律不能分片,这就要求物理网络的链路层实现中必须提供足够大的MTU值,或修改其MTU值以保证VXLAN报文的顺利传输 。不过,降低默认MTU值,以及额外的头部开销,必然会影响到报文传输性能 。
VXLAN的显著的优势之一是对底层网络没有侵入性,管理员只需要在原有网络之上添加一些额外设备即可构建出虚拟的逻辑网络来 。这个额外添加的设备称为VTEP(VXLAN Tunnel Endpoints),它工作于VXLAN网络的边缘,负责相关协议报文的封包和解包等操作,从作用来说相当于VXLAN隧道的出入口设备 。
VTEP代表着一类支持VXLAN协议的交换机,而支持VXLAN协议的操作系统也可将一台主机模拟为VTEP,Linux内核自3.7版本开始通过vxlan内核模块原生支持此协议 。于是,各主机上由虚拟网桥构建的LAN便可借助vxlan内核模块模拟的VTEP设备与其他主机上的VTEP设备进行对接,形成隧道网络 。同一个二层域内的各VTEP之间都需要建立VXLAN隧道,因此跨主机的容器间直接进行二层通信的VXLAN隧道是各VTEP之间的点对点隧道,如图10-8所示 。对于Flannel来说,这个VTEP设备就是各节点上生成flannel.1网络接口,其中的“1”是VXLAN中的BD标识VNI,因而同一Kubernetes集群上所有节点的VTEP设备属于VNI为1的同一个BD 。
文章插图
文章插图
图10-8 Linux VTEP
类似VLAN的工作机制,相同VXLAN VNI在不同VTEP之间的通信要借助二层网关来完成,而不同VXLAN之间,或者VXLAN同非VXLAN之间的通信则需经由三层网关实现 。VXLAN支持使用集中式和分布式两种形式的网关:前者支持流量的集中管理,配置和维护较为简单,但转发效率不高,且容易出现瓶颈和网关可用性问题;后者以各节点为二层或三层网关,消除了瓶颈 。
然而,VXLAN网络中的容器在首次通信之前,源VTEP又如何得知目标服务器在哪一个VTEP,并选择正确的路径传输通信报文呢?常见的解决思路一般有两种:多播和控制中心 。多播是指同一个BD内的各VTEP加入同一个多播域中,通过多播报文查询目标容器所在的目标VTEP 。而控制中心则在某个共享的存储服务上保存所有容器子网及相关VTEP的映射信息,各主机上运行着相关的守护进程,并通过与控制中心的通信获取相关的映射信息 。Flannel默认的VXLAN后端采用的是后一种方式,它把网络配置信息存储在etcd系统上 。
Linux内核自3.7版本开始支持vxlan模块,此前的内核版本可以使用UDP、IPIP或GRE隧道技术 。事实上,考虑到当今公有云底层网络的功能限制,Overlay网络反倒是一种最为可行的容器网络解决方案,仅那些更注重网络性能的场景才会选择Underlay网络 。
(二)Underlay网络模型
Underlay网络就是传统IT基础设施网络,由交换机和路由器等设备组成,借助以太网协议、路由协议和VLAN协议等驱动,它还是Overlay网络的底层网络,为Overlay网络提供数据通信服务 。容器网络中的Underlay网络是指借助驱动程序将宿主机的底层网络接口直接暴露给容器使用的一种网络构建技术,较为常见的解决方案有MAC VLAN、IP VLAN和直接路由等 。
1. MAC VLAN
MAC VLAN支持在同一个以太网接口上虚拟出多个网络接口,每个虚拟接口都拥有唯一的MAC地址,并可按需配置IP地址 。通常这类虚拟接口被网络工程师称作子接口,但在MAC VLAN中更常用上层或下层接口来表述 。与Bridge模式相比,MAC VLAN不再依赖虚拟网桥、NAT和端口映射,它允许容器以虚拟接口方式直接连接物理接口 。图10-9给出了Bridge与MAC VLAN网络对比示意图 。
文章插图
文章插图
图10-9 Bridge与MAC VLAN网络对比
推荐阅读
- {调取该文章的TAG关键词}|肯德基、喜茶供应商「宝立食品」要上市;文和友旗下茶饮品牌「MAMACHA」杭州首店开业;中国邮政进军咖啡领域|消研所周报
- 工具|VR音乐制作工具《Virtuoso》将于3月登陆Quest和SteamVR
- 投稿|疫情之下,本土自主设备如何突围?中国制造的投机主义和长期主义
- oppo|配置到位设计拉满,OPPO平板爆料提前看!性能和生态适配亮点多多
- home|1秒打开健康码和行程码,iPhone用户学起来
- 投稿|从排队2万桌到被爆大裁员,文和友“一叶落”,新消费“知秋”?
- 投稿|下架、停产旧车型惹众怒,华为和欧拉究竟图什么?
- W华为 P50 Pro 和 Watch GT Runner 将于 3 月 22 日在英国发售
- 投稿|Z世代的异宠热:在沉迷和乱序中火爆?
- 果粉|继耳机孔和充电头之后,苹果或将再开一个坏头?果粉:难以理解