🔏calico
type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary
Felix
它是一个 DaemonSet,负责在宿主机上插入路由规则(即:写入 Linux 内核的 FIB 转发信息库),以及维护 Calico 所需的网络设备等工作
BIRD
它就是 BGP 的客户端,专门负责在集群里分发路由规则信息
当一个pod创建时,Felix负责配置本地网络和安全策略,BIRD负责将pod的路由信息通告给其他的node,其他node的BIRD负责接收路由信息
直接路由模式(普通模式):

工作原理:
- 直接在主机上配置路由规则
- 数据包直接通过主机的默认网卡(如eth0)转发
- 使用真实的源IP和目的IP进行通信,不做任何封装
- 具体路由示例:
这条规则表示:
- 访问10.244.1.0/24网段的容器
- 下一跳是192.168.1.2(目标容器所在的主机)
- 通过eth0网卡直接发送
数据包流程:
- 容器发出数据包
- 根据路由规则,直接通过主机网卡发送
- 目标主机收到后,再根据本地路由规则转发给目标容器
限制条件:
- 要求所有主机必须在同一个二层网络
- 因为需要通过ARP获取下一跳主机的MAC地址
IPIP模式:

IPIP模式下的路由信息传递仍然是通过BGP协议完成的。具体流程是:
路由信息的收集和分发:
- Felix(Calico的agent)在每个节点上收集本地容器的路由信息
- BIRD(BGP客户端)依然通过BGP协议在节点间分发这些路由信息
- 路由信息会包含目的容器的网段和下一跳地址(目的容器所在节点的IP)
路由规则的特殊性:
- 与普通BGP模式不同,IPIP模式下添加的路由规则会指向tunl0设备
- 例如:
10.233.2.0/24 via 192.168.2.2 tunl0
- 这里tunl0是一个特殊的IP隧道设备,由Linux内核的IPIP驱动管理
数据包的处理流程:
- 源容器发出的数据包会根据路由规则进入tunl0设备
- IPIP驱动会在原始IP包外封装一层新的IP头
- 外层IP包的目的地址就是路由规则中的下一跳地址
- 数据包通过三层网络传输到目的节点后,再由IPIP驱动解封装
Prev
【Mysql学习笔记】索引篇
Next
如何构建一个短链系统
Loading...