Docker跨主机网络-Vxlan、vtep补充

VXLAN与VLAN之间有何不同

基本概念

维度 VLAN(虚拟局域网) VXLAN(虚拟扩展局域网)
设计目标 传统企业网络中隔离广播域,减少广播风暴,提高网络效率。 数据中心/云环境中支持大规模多租户和虚拟机动态迁移,突破VLAN的限制。
核心技术 基于802.1Q标签(插入以太网帧头),划分逻辑二层网络。 基于隧道技术(MAC-in-UDP封装),在三层IP网络上构建虚拟大二层网络。
标识方式 使用12位VLAN ID,最多支持4094个逻辑网络(0和4095保留)。 使用24位VNI(VXLAN Network Identifier),最多支持1677万个逻辑网络。
VXLAN与VLAN的核心差异及封装方式对比

对比维度 VLAN VXLAN 关键差异说明
技术本质 二层网络虚拟化技术 三层隧道封装技术 VLAN基于二层隔离,VXLAN通过三层网络构建虚拟二层隧道
标识符范围 VLAN ID(12位,最多4094个) VNI(24位,支持1600万个) VXLAN突破VLAN数量限制,满足大规模云环境租户隔离
封装方式 802.1Q标签(4字节) (插入以太网帧头) MAC-in-UDP封装(50字节) – 外层IP头(20字节) – UDP头(8字节) – VXLAN头(8字节) – 原始二层帧 VXLAN将完整二层帧封装为UDP报文,利用IP网络传输;VLAN仅修改帧头
跨域能力 局限于同一物理二层网络 支持跨三层网络/数据中心传输 VXLAN通过IP隧道实现跨地域二层互通,破除VLAN地理限制
关键组件 支持VLAN的交换机 VTEP(隧道端点)、VNI VTEP负责封装/解封装VXLAN报文,VNI标识虚拟网络
广播处理 限制在单一广播域内 通过IP组播(或SDN控制)模拟广播 VXLAN需依赖组播或控制器实现广播,避免传统广播风暴
典型应用场景 企业部门隔离、中小型网络 云数据中心、多租户环境、虚拟机迁移 VLAN适用于简单隔离,VXLAN解决云化场景扩展性与迁移需求
配置复杂度 简单(端口划分) 复杂(需部署VTEP、隧道、组播等) VXLAN需额外协议栈支持,运维成本较高
报文开销 低(增加4字节) 高(增加50字节) VXLAN封装可能引入延迟,对高性能网络需优化
VTEP
理论

定义与作用

VTEP(VXLAN Tunnel Endpoint)即VXLAN隧道端点,是VXLAN网络的边缘设备,主要功能包括识别虚拟机所属的VXLAN、封装原始以太网帧为VXLAN报文(添加VXLAN头、UDP头和IP头)、解封装接收的VXLAN报文,以及通过隧道在Underlay网络中传输数据

VTEP 关键技术参数

维度 说明
核心功能 报文封装/解封装、隧道建立、MAC地址学习、VNI(VXLAN网络标识符)管理
标识符 每个VTEP具有全网唯一的IP地址(优先使用Loopback地址)
隧道特性 由两个VTEP的IP地址唯一标识,支持多租户共享,基于UDP传输(默认端口4789)
部署位置 可位于物理交换机、服务器(如hypervisor中的vSwitch)或独立网络设备
与VNI关系 每个VTEP可关联多个VNI,VNI(24位)用于区分不同租户或广播域,支持1600万+网段
VTEP 工作流程与价值

封装过程:接收虚拟机发送的以太网帧,添加VXLAN头(含VNI)、UDP头和外层IP头(源IP为本地VTEP地址,目的IP为对端VTEP地址)

解封装过程:接收VXLAN报文后,剥离外层IP头、UDP头和VXLAN头,将原始以太网帧转发至目标虚拟机

核心价值:突破传统VLAN 4096个网段的限制,支持跨三层网络的大二层扩展,满足虚拟机跨数据中心迁移需求

veth 在 Docker 网络中的作用

定义

Docker 容器默认使用 bridge 网络模式,需通过虚拟设备实现网络隔离与通信。veth pair 是一对虚拟网卡,一端位于容器内(如 eth0),另一端连接宿主机网桥(如 docker0),实现容器与宿主机/其他容器的网络隔离与通信

veth 封装核心步骤

步骤编号 操作目标 关键命令与配置 说明
1 创建独立网络命名空间 ip netns add ns1 ip netns add ns2 模拟两个隔离的容器网络环境,命名空间名称可自定义(如 ns1、ns2)
2 创建 veth-pair 设备 ip link add veth0 type veth peer name veth1 创建一对虚拟网卡 veth0 和 veth1,自动绑定为双向通信通道
3 分配 veth 到命名空间 ip link set veth0 netns ns1 ip link set veth1 netns ns2 将 veth0 分配给 ns1,veth1 分配给 ns2,实现网络隔离
4 配置 IP 地址与启动设备 ip netns exec ns1 ip addr add 192.168.1.1/24 dev veth0 ip netns exec ns1 ip link set veth0 up (对 ns2 执行类似命令,IP 设为 192.168.1.2/24) 为命名空间内的 veth 设备分配 IP 并启动,子网掩码需一致(如 /24)
5 关闭反向过滤规则 echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter 禁用 rp_filter 防止内核过滤跨命名空间的数据包
6 测试网络连通性 ip netns exec ns1 ping 192.168.1.2 从 ns1 ping ns2 的 IP,验证 veth-pair 通信是否正常

 

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » Docker跨主机网络-Vxlan、vtep补充

提供最优质的资源集合

立即查看 了解详情