CNI 网络分析 3.4 Flannel udp && Alloc

文章详细介绍了FlannelUDPbackend的工作机制,包括创建tun设备、配置IP和MTU、设置路由以及如何处理进出流量。与VXLAN相比,FlannelUDP在性能上存在差异,主要因为需要在用户态处理数据包。此外,提到了Alloc仅关注本节点子网分配,适用于公有云环境。在OVN和Terway等场景下,有其他策略路由实现方式。
摘要由CSDN通过智能技术生成

Flannel udp && Alloc

UDP

跟 vxlan 相比较,创建了 flannel0 tun 设备,tun 设备无 mac
路由变化,不再指定具体网段,而是整个 podcidr 写路由,10.244.0.0/16 dev flannel0

在这里插入图片描述

Flannel udp backend

Flannel 需要创建 tun 设备,所以需要 ds 调整权限

        securityContext:
          privileged: true

接 Flannel 介绍中原理章节

  1. 使用 backendManager 去注册网络时,使用 udp 的实现
  2. 在节点上创建 tun 设备,配置 IP 10.244.0.0/32,mtu (1500 - 28 28 是包头长度),路由 10.244.0.0/16 dev flannel0
  3. Listen udp 业务网卡 + port 如:node111 上 192.168.100.112:8285,使用 socketpair 创建一对套接字
  4. 运行时 调用 c 程序的 run_proxy,参数依次是 flannel0 的 fd,listen 192.168.100.112:8285 的 fd,对端套接字 fd,ip 地址大小端转换,mtu,log 是否开启。
void run_proxy(int tun, int sock, int ctl, in_addr_t tun_ip, size_t tun_mtu, int log_errors) {
  1. 启动后,从节点出去的流量,到 flanneld 处理,加 udp 头发出,从业务网卡收到的流量去掉 udp 头。
    由于,flanneld 是用户态进场,linux 收到数据包需要到用户态进行处理再发出,性能差于 vxlan。

流量分析

和 vxlan 抓包情况相同;
在这里插入图片描述

Alloc

只关心本节点子网分配,不关心机器中其他节点子网,不下发到其他节点的路由信息。通常公有云厂商使用,如 阿里云 ack,这种情况下路由外部 vpc 路由表提供节点间网络功能。
在 ovn 环境下,通常可以在 logical_router 中配置策略路由实现。

在 terway 再介绍

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值