VXLAN模式

VXLAN模式

VXLAN,即Virtual Extensible LAN(虚拟可扩展局域网,是Linux内核本身就支持的一种网络虚拟化技术。通过利用Linux内核的这种特性,也可以实现在内核态的封装和解封装的能力,从而构建出覆盖网络。其工作原理如下图所示:

VXLAN 工作模式

VXLAN模式的flannel会在节点上创建一个叫flannel.1VTEP (VXLAN Tunnel End Point,虚拟隧道端点)设备,跟UDP模式一样,该设备将二层数据帧封装在UDP包里,再转发出去,而与UDP模式不一样的是,整个封装的过程是在内核态完成的。

Node 1上的Pod 1请求Node 2上的Pod 2时,流量的走向如下:

  1. Pod 1里的进程发起请求,发出IP包;
  2. IP包根据Pod 1里的veth设备对,进入到cni0网桥;
  3. 由于IP包的目的ip不在Node 1上,根据flannel在节点上创建出来的路由规则,进入到flannel.1中;
  4. flannel.1将原始IP包加上一个目的MAC地址,封装成一个二层数据帧;然后内核将数据帧封装进一个UDP包里;
  5. 最后通过Node 1上的网关,发送给Node 2
上一页