上午好,我是老杨。
后台有些小友老是催我,说我很久没写技术分享,所以最近写了勤快点。
上周刚写了一篇,感兴趣的可以看看:

今天聊聊网络虚拟化。
网络虚拟化的核心是实现网络资源的逻辑隔离和划分。
这样一来,就可以使多个用户或应用可以在共享同一底层物理网络的同时,保持彼此之间的隔离和安全。
这种技术为不同的用户或应用提供了独立的虚拟网络环境,每个虚拟网络都可进行独立的管理和操作。
最简单的、最接地气的例子就是VPN。
当你不在公司,不管是在家还是在外出差,只要用上VPN技术,就能放心连回公司的内部网。
VPN相当于在公共网络上给你搭建了一座只属于你的桥梁,直通公司的资源,这样无论是谁,都没法偷看你传输的资料,确保了数据的安全。
今天想和你聊聊另外两种虚拟化,咱一起涨涨见识。
今日文章阅读福利:《 图解网络系列全套书籍(电子版)》
私信我,发送暗号“图解”,即可获得网工行业经典读物《图解HTTP》《图解TCP/IP》《图解网络硬件》三件套。
01 虚拟化技术这么多到底有啥区别?
虽然我谈及的范围只有网络虚拟化,但纵观全局,其实虚拟化技术可以聊的实在是太多了。
不同的虚拟化技术之间差距也很大,按我理解的分类,也许能帮你理解的更清晰些。
虚拟化技术可分为全虚拟化、半虚拟化、硬件辅助虚拟化、操作系统级虚拟化、桌面虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化等。
帮新人网工聚焦和降阶的话,我展开说两句:
全虚拟化是将物理硬件资源全部通过软件方式抽象化,然后调用,使虚拟机能够完全模拟物理计算机的行为,代表有VMware、KVM。
操作系统级虚拟化实现的是在用户的终端设备上创建多个独立的虚拟桌面环境,每个环境可以运行不同的操作系统。
代表就是你最耳熟能详的Docker,我们俱乐部也写过不少,可翻看往期文章。
回到我们的老本行,网络。
网络虚拟化是指通过SDN技术,将网络设备和服务从物理硬件中解耦出来,实现灵活的网络管理和配置。
最典型的代表就是VLAN技术。
VLAN通过逻辑上将一个物理的局域网(LAN)划分成多个广播域,每个VLAN都是一个独立的广播域,其内部主机可以直接通信,而不同VLAN间的主机则不能直接互通。
它通过在OSI参考模型的数据链路层上进行操作,使用IEEE 802.1Q标准在数据帧中插入一个VLAN标签,从而区分不同VLAN的数据。
推荐阅读:
《交换机vlan划分方法,学会这三招就够!
》
《同vlan不同网段能否ping通?》
《2万字,50张图,VLAN技术精华帖》
当然,QinQ技术和VXLAN技术都属于网络虚拟化领域,但它们在具体实现和应用场景上有所不同。
我在下一点再和你详细说明。
话说回来,虽然各种虚拟化技术各有千秋,但它们都能帮我们更高效、灵活、安全地利用和管理资源。
选哪种技术得看具体需求、性能要求和预算。
02 同样都是虚拟化
QinQ和VXLAN差别太大了
谈差异之前,先聊聊共通之处。
总的来说,QinQ和VXLAN都能扩展VLAN的功能。
这两种技术都像是网络世界的“扩充工具”,它们让VLAN(虚拟局域网)的容量大增。
想象一下,你住在一个大楼里,每个公寓都代表一个网络。
现在,大楼要扩建,但现有的电梯(传统VLAN)只能到达4096层。
QinQ和VXLAN就像是新增的电梯系统,能让大楼建得更高,容纳更多的数)。
假设一下,你有一个大楼,想出租给多个租户。
QinQ就像是给每个租户的楼层再加一道安全门,确保他们之间不会相互干扰。
而VXLAN更像是给每个租户提供了独立的电梯,不仅安全,而且每个电梯(VXLAN隧道)都能直达他们自己的楼层(虚拟网络)。
如果你的新人,也许你在我说完这个例子之后,你对他俩的共通和差异都有了初步的了解。
接下来我们聊一下差异细节,帮助你丰富你的扩几框架。
QinQ技术本质上是VLAN技术的延伸,是一种扩展VLAN空间的方法。
它主要通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的目的。
目前主要用于解决日益紧缺的VLAN ID资源问题,并满足业务精细化管理的需求。
QinQ通常应用于骨干网中,通过将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络,扩充VLAN数量,实现对用户的精细化管理。
基本QinQ配置相对简单,通常适用于对灵活性要求不高的环境。
在这种配置中,所有经过边缘设备(靠近公网的设备)的数据包都会添加上该设备端口固定的PVID作为外层VLAN Tag。
比如你在一个小型网络中,可以将所有内部VLAN数据包统一加上一个特定的外层VLAN Tag,以便于在公网上传输。
灵活QinQ配置则更为复杂且功能强大。
它允许根据各种条件对流经的网络数据进行更细致的处理,可以根据报文原有的VLAN ID、802.1p优先级或QoS策略等进行分类,并为不同类别的数据包添加不同的外层VLAN Tag。
下面以一个实验场景为例,展示如何进行灵活QinQ的配置。
假设有以下几个设备:LSW1、LSW2(作为公网边缘设备),LSW3和LSW4(分别模拟两个私网的边缘设备)。目标是使各私网通过公网实现同VLAN通信。
在所有设备上进行基础的二层配置,确保它们之间可以正常通信。
然后,在公网边缘设备LSW1和LSW2上配置灵活QinQ。具体命令如下:
当然,额外添加一个说明方便新人理解:
qinq vlan-translation enable 用于启动QinQ功能,这是使用灵活QinQ的前提。
port hybrid untagged vlan 100 200 将私网VLAN 10和20设置为无标签状态,这样它们在公网中传输时可以正确处理。
port vlan-stacking vlan 10 stack-vlan 100 和 port vlan-stacking vlan 20 stack-vlan 200 则是灵活QinQ的核心配置,它们指定了如何为不同私网VLAN添加外层VLAN Tag。
在这个例子中,私网VLAN 10和20分别被映射到公网VLAN 100和200。
完成上述配置后,通过测试验证客户端1是否可以和客户端3进行通信,以确认灵活QinQ是否成功部署。如果通信正常,说明配置有效。
总结起来,QinQ技术通过双层VLAN标签极大地扩展了网络的可管理性和扩展性,尤其适用于大型网络和多租户环境。
基本QinQ适用于需求简单、统一处理的场景,而灵活QinQ则能提供更复杂的数据处理能力,适用于需要高度定制化和隔离性的网络应用。
VXLAN(虚拟可扩展局域网)旨在通过使用MAC地址用户数据报协议(MAC-in-UDP)封装在第3层网络之上提供第2层覆盖网络。
简单来说,VXLAN可以提供与VLAN相同的服务,但具有更大的可扩展性和灵活性。
VXLAN使用MAC-in-UDP封装,原始数据包将添加到VXLAN标头中,然后放入UDP-IP数据包中,从而极大地扩展了第2层网络。
这种技术适用于需要高度可扩展网络的情况,如云计算和虚拟化数据中心。
从技术细节上看,QinQ是通过两层VLAN标签来扩展VLAN ID的数量,从4096个扩展到4096 x 4096个。
其内外层标签可以代表不同的信息,例如内层标签代表用户,外层标签代表业务。
QinQ报文格式相对固定,比标准的802.1Q VLAN报文多四个字节。
相比之下,VXLAN采用24位的VNID(虚拟网络标识符),支持多达1600万个LAN段,解决了传统VLAN ID受限的问题。
其报文包含VXLAN头、外部UDP头、外部IP头和外部以太网头,适用于更复杂的网络环境和需求。
在开始配置VXLAN之前,你需要准备以下网络环境:
物理网络:确保物理网络已经正确配置,且网络设备(如交换机和路由器)支持VXLAN功能。
IP地址规划:为VTEP设备、VXLAN段(VNI)、以及相关的路由和管理系统规划IP地址。
硬件支持:确认所有网络设备(如Cisco、Juniper等)具备VXLAN封装和解封装的能力。
假设你有两个分布式数据中心,现在需要通过VXLAN技术将它们连接起来,提供透明的局域网服务。
01 配置VTEP
在两个数据中心的边界路由器上配置VTEP。这些路由器负责将内部网络的以太网帧封装成VXLAN包,并在对端解封装。
这里,loopback0接口的IP地址被设置为VXLAN数据包的源IP地址。
02 配置VNI和VXLAN隧道
接下来,为每个需要通信的虚拟网络配置VNI(VXLAN Network Identifier)和对应的隧道。
这里,VNI 10000被用于标识特定的虚拟网络,并启用目的地MAC地址学习和未知单播泛洪功能。
03 配置VXLAN映射
在VTEP上配置VXLAN映射,以定义哪些本地IP子网应该被映射到哪个VNI。
这个配置将本地子网10.1.1.0/24映射到VNI 10000,并通过VTEP IP 192.168.2.2进行封装。
04 配置核心网络
确保核心网络的路由器和交换机支持并配置了相应的路由协议,以便VXLAN隧道能够跨越它们。
05 验证VXLAN配置
配置完成后,通过以下步骤验证VXLAN是否正常工作:
检查VTEP状态:确认VTEP已经被正确配置,并且VNI、源接口等信息无误。
测试通信:在虚拟网络内部的主机之间执行ping测试,验证它们是否能够相互通信。
检查VXLAN隧道:使用wireshark或其他网络监控工具监视VXLAN隧道的数据包,确认封装和解封装是否正确进行。
06 故障排除
如果遇到通信问题或配置错误,可以按照以下步骤进行故障排除:
检查接口状态:确保所有相关接口都处于up状态。
检查VXLAN配置:重新检查VNI、映射和隧道配置,确保没有输入错误。
路由检查:验证核心网络的路由配置,确保VXLAN隧道两端之间的路由正确。
安全设置:检查防火墙和ACL设置,确保它们不会阻止VXLAN通信。
当然,看完这么一长篇,可能对你来说仅仅是个入门都算不上的科普文章。
理论知识的学习是基础,但网络技术特别依赖于实操经验。想学好技术,你需要通过实际操作来加深理解。
边学边用,是最快掌握技术的方式。
整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部