You are on page 1of 2

本文主要针对 harvester vlan 网络流向

一、架构图:(下图中绿色模块为 harvester vlan 网络流向图)

二、设备解释:
 eth1、tap1,net1 和 vethxxx 均为操作系统内核中的虚拟网络设备,他们为用户层程序提供数据
的接收与传输,可以把 tap 等设备理解为数据管道,它一端连接主机协议栈,另一端连接用户
程序。
 K6t-net1,harvester-br0 为 linux bridge ,是 Linux 上工作在内核协议栈二层的虚拟交换机,在
Bridge 中会进行一个类似物理交换机的查 MAC 端口映射表,转发,更新 MAC 端口映射表这样
的处理逻辑,从而数据包可以被转发到另一个接口/丢弃/广播/发往上层协议栈,由此 Bridge 实
现了数据转发的功能。如果使用 tcpdump 在 Bridge 接口上抓包,是可以抓到桥上所有接口进出
的包。
三、转发流程:
A. 数据从 tap1 接口流入,发往外部网络或者同 vlan 其他虚拟机
tap1 收到的数据被发送给 k6t-net1 --> net1 --> vethxxx-->harvester-br0 把数据从 eth1 接口发出-->
母设备 eth1 收到 harvester-br0 发来的数据, 母设备 eth1 给数据打上 162 的 vlan tag,将带有 162tag
的数据发出到外部网络 --> eth1 所连接的交换机收到数据(trunk 口)
相关截图验证:
1、查看 pod 网络详情:
2、查看 vlan 详情

vlan 1 表示所有未被标记的流量都会在 vlan1 中接收


3、查看宿主机 vlan 详情

B .数据包从 ens3f0 接口流入,发往 tap1


ens3f0 从所连接的交换机收到 tag 162 的数据 --> ens3f0 发现此数据带有 tag 162,移除数据包中
tag -->不带 tag 的数据发给 harvester-br0, harvester-br0 收到从 ens3f0 进入的数据包,会将其发送到某个
veth-xxxx,进一步发送到 pod 网络命名空间-->net1, 再继而发送到 k6t-net1--->tap1.

You might also like