tnblog
首页
视频
资源
登录

传统网络 VxLAN实现的大二层

8815人阅读 2022/10/20 19:08 总访问:3662661 评论:0 收藏:0 手机
分类: 网络

传统网络 VxLAN实现的大二层

VxLAN 简介


RFC定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。


服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为了实现业务的灵活变更,虚拟机VM需要能够在网络中不受限迁移,这给传统的“二层+三层”数据中心网络带来了新的挑战。

虚拟机规模受网络设备表项规格的限制


在传统二层网络环境下,数据报文是通过查询MAC地址表进行二层转发。服务器虚拟化后,VM的数量比原有的物理机发生了数量级的增长,伴随而来的便是VM网卡MAC地址数量的空前增加。而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。

网络隔离能力有限


VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。

虚拟机迁移范围受限


由于服务器资源等问题(如CPU过高,内存不够等),虚拟机迁移已经成为了一个常态性业务。
虚拟机迁移是指将虚拟机从一个物理机迁移到另一个物理机。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址、MAC地址等参数保持不变,这就要求虚拟机迁移必须发生在一个二层网络中。而传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。
为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生,其能够很好的解决上述问题。

针对虚拟机规模受设备表项规格限制


VXLAN将管理员规划的同一区域内的VM发出的原始报文封装成新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。

针对网络隔离能力限制


VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,有效得解决了云计算中海量租户隔离的问题。

针对虚拟机迁移范围受限


VXLAN将VM发出的原始报文进行封装后通过VXLAN隧道进行传输,隧道两端的VM不需感知传输网络的物理架构。这样,对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上看,相当于处于同一个二层域。即VXLAN技术在三层网络之上,构建出了一个虚拟的大二层网络,只要虚拟机路由可达,就可以将其规划到同一个大二层网络中。这就解决了虚拟机迁移范围受限问题。

为了解决数据中心网络服务器虚拟化以及虚拟机不受限迁移问题,VXLAN特性应运而生。由于VXLAN特性在本质上属于一种VPN技术,因此,其同样能够应用在园区网络中,以实现分散物理站点之间的二层互联以及站点间的三层互联。

在当前的园区网中,租户站点与站点之间为了实现二、三层互联,需要部署相关设备以及多种二、三层网络技术。而基于Overlay的VXLAN技术,不感知当前的物理网络,能够在任意路由可达的网络上叠加二层虚拟网络,实现站点与站点之间的二层互联。同时,基于VXLAN三层网关,也能够实现站点与站点之间的三层互联。因此,通过VXLAN技术实现租户不同站点之间的互联更加快速、灵活。

VxLAN 包格式


1.Flags (8 bits) 其中 I 必须被设置为 1,才是有效的。R 需设为 0。
2.VXLAN Segment ID/VXLAN Network Identifier (VNI) –为 24bit,是虚拟网络的标识。
3.Reserved fields (24 bits and 8 bits) – 必须被设置为 0.
4.VXLAN 外层隧道的目的端口号为 4789,为专为 VXLAN 分配的端口号。
5.UDP Body实现基于流的负载分担。[SIP+DIP+SPORT+DPORT+TCP/UDP]

VxLAN Topo


VXLAN 技术是一种大二层的虚拟网络技术,主要的技术原理就是引入一个 UDP格式的外层隧道,作为数据的链路层,而原有数据报文内容作为隧道净荷来传输。由于外层采用了 UDP 作为传输手段,就可以让净荷数据轻而易举的在二三层网络中传送,为了能够支持原有 VLAN 广播域寻址能力,VXLAN 还引入了三层 IP 组播来代替以太网的广播,让 BUM(Broadcast 广播,unknown unicast, multicast)报文通过广播方式在虚拟网络中传送。

VxLAN - Underlay And Overlay

Underlay 网络


以太网从最开始设计出来就是一个分布式网络,没有中心的控制节点,网路中的各个设备之间通过协议传递的方式学习网络的可达信息,由每台设备自己决定要如何转发,这直接导致了没有整体观念,不能从整个网络的角度对流量进行调控。由于要完成所有网络设备之间的互通,就必须使用通用的语言,这就是网络协议,RFC就是网络协议的法律,相当于国际法,各个设备供应商遵从国际法行事,就基本保证了整个网络世界的正常运行。Underlay就是当前数据中心网路基础转发架构的网络,只要数据中心网络上任意两点路由可达即可,指的是物理基础层。我们可以通过物理网络设备本身的技术改良、扩大设备数量、带宽规模等完善Underlay网络,其包含了一切现有的传统网络技术。

Overlay 网路


Overlay在网络技术领域,是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离。它是建立在已有网络上的虚拟网,用逻辑节点和逻辑链路构成了Overlay网络。Overlay网络是具有独立的控制和转发平面,对于连接在Overlay边缘设备之外的终端系统来说,物理网络是透明的。通过部署Overlay网络,可以实现物理网络向云和虚拟化的深度延伸,使云资源池化能力可以摆脱物理网络的重重限制,是实现云网融合的关键。Overlay网络也是一个网络,不过是建立在Underlay网络之上的网络。Overlay网络的节点通过虚拟的或逻辑的链接进行通信,每一个虚拟的或逻辑的链接对应于Underlay网络的一条路径(Path),由多个前后衔接的链接组成。
Overlay技术可以分为网络Overlay,主机Overlay和混合式Overlay三大类。网络Overlay是指通过控制协议对边缘的网络设备进行网络构建和扩展,也就是本文所讲的Overlay网络技术。Overlay网络技术多种多样,一般采用TRILL、VxLAN、GRE、NVGRE等隧道技术。TRILL技术是电信设备厂商主推的新型环网技术;NVGRE和STT是IT厂商主推的Overlay技术;以及大家非常熟悉的VXLAN(Virtual eXtensible LAN)等基于隧道的封装技术。由于这些也都是新增的协议,均需要升级现有网络设备才能支持。Overlay网络中应用部署的位置将不受限制,网络设备可即插即用、自动配置下发,自动运行,Overlay网络业务变化,基础网络不感知,并对传统网络改造极少,最为重要的是虚拟机和物理服务器都可以接入Overlay网络中。

VxLAN - ENSP


目的:使用VxLAN完成192.168.1.2 和 192.168.1.3之间的互联互通。模拟器使用eNSP。Underlay网络使用OSPFv2,Overlay使用VxLAN。

实践


配置LSW1的g0/0/2接口,配置access

  1. system-view
  2. sysname LSW1
  3. vlan 10
  4. q
  5. int g0/0/2
  6. port link-type access
  7. port default vlan 10
  8. dis this
  9. q


配置LSW1的g0/0/1接口,配置trunk

  1. int g0/0/1
  2. port link-type trunk
  3. port default vlan all
  4. dis this
  5. q


配置LSW2

  1. system-view
  2. sysname LSW2
  3. vlan 10
  4. q
  5. int g0/0/2
  6. port link-type access
  7. port default vlan 10
  8. dis this
  9. q
  10. int g0/0/1
  11. port link-type trunk
  12. port trunk allow-pass vlan all
  13. dis this
  14. q


配置CE5

  1. # CE太高级了要commint一下
  2. system-view
  3. sysname CE5
  4. commit
  5. interface g1/0/0.10 mode l2
  6. commit
  7. dis this
  8. encapsulation dot1q vid 10
  9. commit
  10. dis this
  11. q
  12. # 设置bridge域并设置vni的值
  13. bridge-domain 10
  14. commit
  15. vxlan vni 10
  16. commit
  17. dis this
  18. q
  19. int g1/0/0.10
  20. dis this
  21. bridge-domain 10
  22. commit
  23. undo shutdown
  24. commit
  25. int g1/0/0
  26. undo shutdown
  27. commit
  28. int g1/0/0.10
  29. dis this
  30. q

  1. int g1/0/1
  2. undo portswitch
  3. ip a 10.1.1.1 24
  4. dis this
  5. comm
  6. dis this
  7. undo shutdown
  8. com
  9. dis this
  10. q


配置CE6

  1. system-view
  2. sysname CE6
  3. commit
  4. int g1/0/0.10 mode l2
  5. encapsulation dot1q vid 10
  6. commit
  7. undo shutdown
  8. commint
  9. dis this
  10. q
  11. bridge-domain 10
  12. vxlan vni 10
  13. commit
  14. dis this
  15. q
  16. int g1/0/0.10
  17. bridge-domain 10
  18. commit
  19. q
  20. int g1/0/0
  21. sudo shutdown
  22. dis this
  23. q
  24. com
  25. # 关闭二层
  26. int g1/0/1
  27. undo portswitch
  28. undo shutdown
  29. ip a 10.1.1.2 24
  30. dis this
  31. q
  32. commit
  33. q
  34. dis ip int b


创建CE5的环卫口

  1. int l0
  2. ip a 1.1.1.1 32
  3. q
  4. commit
  5. ospf router-id 1.1.1.1
  6. a 0
  7. network 0.0.0.0 255.255.255.255
  8. commit
  9. dis this


创建CE6的环卫口

  1. int l0
  2. ip a 2.2.2.2 32
  3. q
  4. commit
  5. ospf router-id 2.2.2.2
  6. a 0
  7. network 0.0.0.0 255.255.255.255
  8. commit
  9. dis this
  10. q


CE5测试直连

  1. ping 10.1.1.2
  2. ping 2.2.2.2


传统配置完成。
更多的对端配置。

  1. # CE5
  2. interface Nve 1
  3. commit
  4. source 1.1.1.1
  5. vni 10 head-end peer-list 2.2.2.2
  6. commit
  7. q
  1. # CE6
  2. interface Nve 1
  3. commit
  4. source 2.2.2.2
  5. vni 10 head-end peer-list 1.1.1.1
  6. commit
  7. q


PC测试


我们在ping时,抓CE5GE 1/0/1接口的包会发现ping时的ARP包是基于二层的交换机进行,因为它返回的Mac地址是PC2的。如果是路由器的话应该返回接口的路由Mac地址,而不是PC的。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

VxLAN过渡到Flannel

VxLAN过渡到Flannel[TOC] Linux下的VxLAN两台机器构成一个VxLAN网络,每台机器有一个VTEP,VTEP通过它们的IP互相通信。 #...

Kubernetes Calico VxLAN

Kubernetes Calico Vxlan[TOC] 安装vxlan我们可以通过如下命令一件安装Calico Vxlan。kubectl apply -f https://raw.githu...

Flannel VxLAN

Flannel Vxlan[TOC] 同节点同Pod不同容器使用共享的网络名称空间进行通信,使用Container网络模式,通过lo网卡建立两个容...

路由器交换机的概念和区别

前言:各位看官老爷,大家早上好 俺是小付童鞋 今天和大家浅谈一下路由和交换机之间的连续。如有讲解错误的地方还请各位大佬...

rabbitmq官网上六大版块之二(Direct类型交换机通过routingKey分类型输出)

其实rabbitmq,老师都说得差不多了,下面是老师的连接。http://www.tnblog.net/aojiancc2/article/UserCategory/134官网教...

rabbitmq六大版块之三(Fanout类型交换机相同数据多逼格处理)

Fanout类型交换机的特点是:同样的数据分发给每一个自己所绑定的队列,每个队列可以按照自己的需求对数据进行不同的处理【...

rabbitmq中Header类型交换机的处理(and与or的处理)

headers类型交换机是通过 muliple attributes 代替 routing key.x-match [all/any]all: 所有地方header头信息必须匹配any:...

mq交换机的各种类型

《1》Message TTL (1) Queue TTL =》 给队列中的所有消息限定一个时间 (2) Message TTL =》 给队列中指定的消息限定一个时...

.netcore3.1 RabbitMq Fanout交换机

.netcore3.1 RabbitMq Fanout交换机[TOC] 在前面我们有提到交换机但都是用的普通的交换机(direct),交换机在Rabbitmq中有...

.netcore3.1 RabbitMq Topics交换机

.netcore3.1 RabbitMq Topics交换机[TOC] Topic Exchange介绍 发送到topic交换机的消息不能具有任意的 routing_key -它必...

.netcore3.1 RabbitMq Header交换机

.netcore3.1 RabbitMq Header交换机[TOC] 标头交换机指在用于在多个属性上路由,这些属性比路由键更容易表示为消息标头...
这一世以无限游戏为使命!
排名
6
文章
6
粉丝
16
评论
8
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术