首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Calico: felix如何在主机上更新iptables规则和ip路由?

Calico是一种开源的云原生网络解决方案,用于实现容器和虚拟机之间的网络通信。它提供了高性能、可扩展和安全的网络连接,同时支持多种云平台和容器编排系统。

在Calico中,Felix是一个运行在每个主机上的代理程序,负责管理主机上的网络规则和路由。当需要更新iptables规则和ip路由时,Felix会自动检测变化并应用新的配置。

具体来说,Felix通过监视Calico网络中的变化来更新iptables规则和ip路由。它会监听Calico的数据平面,包括网络策略、网络拓扑和容器的状态变化。一旦检测到变化,Felix会生成新的iptables规则和ip路由,并将其应用到主机的网络栈中。

更新iptables规则和ip路由的过程如下:

  1. Felix会监听Calico网络中的变化,包括容器的创建、删除、IP地址的变化等。
  2. 当有变化发生时,Felix会生成新的iptables规则和ip路由。
  3. Felix会使用Linux的iptables命令来更新主机上的iptables规则。这些规则用于控制网络流量,实现网络策略和安全性。
  4. Felix会使用Linux的ip命令来更新主机上的ip路由表。这些路由表用于指定网络流量的转发路径。
  5. 更新完成后,Felix会将新的iptables规则和ip路由应用到主机的网络栈中,确保网络流量按照新的配置进行转发和过滤。

总结起来,Felix通过监听Calico网络中的变化,自动更新主机上的iptables规则和ip路由。这样可以确保网络流量的正确转发和安全性。如果您想了解更多关于Calico和Felix的信息,可以访问腾讯云的Calico产品介绍页面:Calico产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Kubernetes 运维遇到的问题记录(2)

内的路由丢失 Host 路由丢失 iptables 规则问题 IPVS 规则问题 IP 冲突 Pod 网卡停止工作 ARP 表错误 Core DNS 解析问题 流量转发表问题 为什么Kubernetes...为了简化网络配置做的选择,容器里的路由规则都是一样的,不需要动态更新。...然后在宿主机上可以查到interface为idnex的网卡信息,查看宿主机该网卡信息,这个 interface 有一个随机分配的 MAC 地址,但是没有IP地址。...容器的后续报文 IP 地址还是目的容器,但是 MAC 地址就变成了主机上该 interface 的地址,也就是说所有的报文都会发给主机,然后主机根据 IP 地址进行转发。...经典的网络架构不同的是,calico 并没有给默认网络配置一个 IP 地址(这样每个网络都会额外消耗一个 IP 资源,而且主机上也会增加对应的 IP 地址路由信息),而是通过 arp proxy 修改容器路由表来实现

1.3K40

【容器云】Calico 组件架构

菲利克斯(Felix) 主要任务:对路由 ACL 以及主机上所需的任何其他内容进行编程,以便为该主机上的端点提供所需的连接。在托管端点的每台机器上运行。作为代理守护程序运行。费利克斯资源。...注意:calico/node 可以在仅策略模式下运行,其中 Felix 在没有 BIRD confd 的情况下运行。这提供了无需在主机之间分配路由的策略管理,并用于托管云提供商等部署。...(可选)Calico 在 Linux 内核(使用 iptables,L3-L4) L3-L7 使用名为 Dikastes 的 Envoy sidecar 代理对工作负载实施网络策略,并对请求进行加密身份验证...etcd 管理员指南 IPAM 插件 主要任务:使用 CalicoIP 池资源来控制 IP 地址如何分配给集群内的 Pod。它是大多数 Calico 安装使用的默认插件。...在数据存储 Felix 实例之间作为守护进程运行。默认安装,但未配置。Typha 描述 Typha 组件。 Typha 代表其所有客户端( Felix confd)维护单个数据存储连接。

2.1K20
  • Calico 介绍、原理与使用

    主要的功能有接口管理、路由规则、ACL规则状态报告 接口管理:Felix为内核编写一些接口信息,以便让内核能正确的处理主机endpoint的流量。特别是主机之间的ARP请求和处理ip转发。...ACL规则Felix负责将ACL策略写入到linux内核中,保证主机endpoint的为有效流量不能绕过calico的安全措施。 状态报告:Felix负责提供关于网络健康状况的数据。...kubernetes的cni网络插件。 Bird:BGP客户端,Calico在每个节点上的都会部署一个BGP客户端,它的作用是将Felix路由信息读入内核,并通过BGP协议在集群中分发。...其中,这里最核心的 下一跳 路由规则,就是由 CalicoFelix 进程负责维护的。这些路由规则信息,则是通过 BGP Client 中 BIRD 组件,使用 BGP 协议来传输。...(可以使用大规模方式解决) 每个node上会设置大量(海量)的iptables规则路由,运维、排障难度大。 原理决定了它不可能支持VPC,容器只能从calico设置的网段中获取ip

    10.9K23

    Kubernetes容器网络模型

    ClusterIp:Service的Ip地址,外部网络无法ping通改地址,因为它是虚拟IP地址,没有网络设备为这个地址负责,内部实现是使用Iptables规则重新定向到其本地端口,再均衡到后端Pod;...2.3.2 Calico Calico支持3种路由模式: Direct: 路由转发,报文不做封装; Ip-In-Ip:Calico 默认的路由模式,数据面采用ipip封装; Vxlan:vxlan 封装...组件包含: FelixCalico agent:运行在每台node上,为容器设置网络信息:IP,路由规则,iptable规则等 BIRD: BGP Client:监听 Host上由 Felix 注入的路由信息...,报文匹配路由规则后正常进行转发即可(实际还有复杂的iptables 规则,这里不做展开) 下面通过简单实验学习下: 具体安装过程不再讨论,可参考官网:https://www.projectcalico.org...其中192.168.23.128/26 是node2上的地址空间,该路由由node2 节点bird发送到RR,RR 反射到node1节点的bird ,然后由felix来进行管理下发到路由表中,我们可以在

    1.3K20

    042.集群网络-flannel及calico

    Flannel、Open vSwitch、直接路由Calico。 Flannel之所以可以搭建Kubernetes依赖的底层网络,是因为它能实现以下两点。...每个vRouter都通过BGP1协议把在本节点上运行的容器的路由信息向整个Calico网络广播,并自动设置到达其他节点的路由转发规则。...Calico的主要组件: FelixCalico Agent,运行在每个Node上,负责为容器设置网络资源(IP地址、路由规则iptables规则等),保证跨主机容器网络互通。...用户在Kubernetes集群中设置了Pod的Network Policy之后,calicokube-controllers就会自动通知各Node上的calico-node服务,在宿主机上设置相应的iptables...在后续的Pod创建过程中,kubelet将通过CNI接口调用Calico进行Pod网络的设置,包括IP地址、路由规则iptables规则等。

    1.6K40

    Docker网络解决方案-Calico部署记录

    从上图可以看出,当容器创建时,calico为容器生成veth pair,一端作为容器网卡加入到容器的网络命名空间,并设置IP掩码,一端直接暴露在宿主机上, 并通过设置路由规则,将容器IP暴露到宿主机的通信路由上...于此同时,calico为每个主机分配了一段子网作为容器可分配的IP范围,这样就可以根据子网的 CIDR为每个主机生成比较固定的路由规则。...2)根据容器要访问的IP所在的子网CIDR机上路由规则,找到下一跳要到达的宿主机IP。...3)流量到达下一跳的宿主机后,根据当前宿主机上路由规则,直接到达对端容器的veth pair插在宿主机的一端,最终进入容器。...Calico在每个主机上通过一个自己的container与其他主机或者网络通讯,即calico-node的container,这个container里面包含了Bird路由管理、Felix协议等。

    3.7K100

    kubernetes网络插件之Calico

    前面介绍Flannel的三层网络解决方案是host-gw,其实还有一个非常出名的单独的三层网络解决方案Calico,它的工作模式host-gw基本一致,也是会在每台宿主机上添加如下格式的路由规则: <...明白了BGP的大体工作原理后,其Calico的工作架构就非常容易理解,它由三部分组成: Calico的CNI插件; Felix,负责在宿主机上插入路由规则以及维护Calico所需的网络设备; BIRD,...其工作流程如下: 首先CNI会创建一对Veth Pair设备,其中一端放在宿主机上; 由于Calico没有使用CNI的网桥模式,所以还需要在宿主机上为每个容器的Veth Pair添加一条路由规则,用于接收传入的...Node-to-Node Mesh Calico的默认模式是Node-to-Node Mesh,这种模式下,所有主机上的BGP Client都需要与其他主机进行通信交换路由规则信息,但是随着节点N的增加...在Calico的IPIP模式下,Felix进程就会在Node上添加如下路由规则Node1: 10.233.2.0/24 via 192.168.2.2 tunl0 其中的tunl0就是一个IP Tunnel

    1.6K20

    calico网络原理、组网方式使用

    安装calicoctl 安装felix 二进制安装 容器的方式 calico的使用 node管理 运行时设置 创建/查看/更新/删除资源 IP地址管理 测试环境 查看状态 模拟一个租户网络...calico的每个node上会设置大量(海量)的iptables规则路由,运维、排障难度大。 calico的原理决定了它不可能支持VPC,容器只能从calico设置的网段中获取ip。...核心交换机知晓所有的路由 这种模式减少了TOR交换机node上的路由数量,但缺点是,发送到无效IP的流量必须到达核心交换机以后,才能被确定为无效。...新版本的calicoiptables规则可读性更好,可以直接阅读规则。...calico的使用 在calico中,IP被称为Endpoint,宿主机上的容器IP称为workloadEndpoint,物理机IP称为hostEndpoint。ipPool等一同被作为资源管理。

    23K1311

    云计算网络技术内幕 (16) 壮志未酬的安德罗波夫

    但是,如果其他node不在同一个二层子网,flannel无法操纵node的下一跳 (物理交换机) 学习通往其他node的路由,网络是无法打通的。 能够解决这一问题的网络插件叫calico。...此外,calico的控制平面还有felix模块修改iptables规则,来实现kubernetes的network policy。 calico有两种工作模式:ipipbgp。...前者的数据平面与VXLAN类似,是calico调用Linux的ipip封装功能实现的。calicofelix修改内核的fib表,让数据包的出接口指向tunl0,在tunl0上进行ipip封装。...在部署Calico的时候,需要一个路由反射器,部署了bird的虚拟机,或Cisco ASR9900这样的路由器,同时,要让IP网络中的网络设备也从RR学习路由。...如果再增加嵌套隧道会对性能造成显著的影响,而如果通过calico路由方式转发,又难以让大型公有云宿主机上的vswitch去配合Bird RR实现BGP的学习。

    21121

    谈谈Kubernets纯种三层网络

    Calico项目组成 Calico的CNI插件:与Kubernetes对接部分 Felix:DaemonSet,负责在宿主机上插入路由规则,维护Calico所需的网络设备等工作 BIRD:BGP客户端,...负责在集群里分发路由规则信息 Calico不会在宿主机上创建任何网桥设备,但是Calico的CNI插件会创建一个Veth Pair设备,以便容器内的数据包出现在宿主机上,从而通过宿主机的路由表到达目的容器...在宿主机上可以通过路由表找到下一跳路由地址,下一跳的路由规则Felix进行维护,而路由规则信息则通过BIRD进行获得。...IPIP模式 当源主机目的主机网络不通时,则需要开启IPIP模式,如下图: 在IPIP模式下,Felix进程会在Node1上天界路由规则,如下: 10.233.2.0/24 via 192.168.2.2...IP),这样通过后续的下一跳路由器从而到达目的主机,目的主机的IPIP驱动会进行解包,得到原始的数据包,经过路由规则Veth Pair设备进入目的容器。

    20930

    Kubernetes容器网络模型解析

    ClusterIp:Service的Ip地址,外部网络无法Ping通改地址,因为它是虚拟IP地址,没有网络设备为这个地址负责,内部实现是使用Iptables规则重新定向到其本地端口,再均衡到后端Pod;...Ip-In-Ip:Calico 默认的路由模式,数据面采用Ip封装。 Vxlan:vxlan 封装。...Calico实现的总体结构如下: 数据通信的流程为:数据包先从veth设备对另一口发出,到达宿主机上的Cali开头的虚拟网卡上,到达这一头也就到达了宿主机上的网络协议栈,然后查询路由表转发...;因为本机通过Bird RR 建立Bgp 邻居关系,会将本地的容器地址发送到RR 从而反射到网络其它节点,同样,其它节点的网络地址也会传送到本地,然后由Felix 进程进行管理并下发到路由表中,报文匹配路由规则后正常进行转发即可...至于更为复杂的Iptables规则,因篇幅有限,本次暂不做解析。

    1K20

    一文读懂 Kubernetes 容器网络

    (Routing Table)iptables规则,对于服务进程来讲这些就构建了它发起请求和相应的基本环境。...与之类似地,当你在一台宿主机上,访问该宿主机上的容器的IP地址时,这个请求的数据包,也是先根据路由规则到达docker0网桥,然后被转发到对应的Veth Pair设备,最后出现在容器里。...Calico主要由三个部分组成: Calico CNI插件:主要负责与kubernetes对接,供kubelet调用使用。 Felix:负责维护宿主机上路由规则、FIB转发信息库等。...pair设备,然后把另一端接入到宿主机网络空间,由于没有网桥,CNI插件还需要在宿主机上为每个容器的veth pair设备配置一条路由规则,用于接收传入的IP包,路由规则如下: 10.92.77.163...10.92.160.0/23 via 10.106.65.2 dev bond0 proto bird 这些路由规则都是Felix维护配置的,而路由信息则是calico bird组件基于BGP分发而来。

    62220

    Kubernetes 集群网络从懵圈到熟悉

    (Routing Table)iptables规则,对于服务进程来讲这些就构建了它发起请求和相应的基本环境。...与之类似地,当你在一台宿主机上,访问该宿主机上的容器的IP地址时,这个请求的数据包,也是先根据路由规则到达docker0网桥,然后被转发到对应的Veth Pair设备,最后出现在容器里。...Calico主要由三个部分组成: Calico CNI插件:主要负责与kubernetes对接,供kubelet调用使用。 Felix:负责维护宿主机上路由规则、FIB转发信息库等。...pair设备,然后把另一端接入到宿主机网络空间,由于没有网桥,CNI插件还需要在宿主机上为每个容器的veth pair设备配置一条路由规则,用于接收传入的IP包,路由规则如下: 10.92.77.163...10.92.160.0/23 via 10.106.65.2 dev bond0 proto bird 这些路由规则都是Felix维护配置的,而路由信息则是calico bird组件基于BGP分发而来。

    1.2K00

    容器网络的访问控制机制分析

    例如: (1)容器部署可以根据需求动态扩展,但也导致容器IP端口频繁变换,所以基于静态的IP端口的防护规则会失效; (2)东西流量约为南北流量的20多倍,要防护来自大量虚拟网络的东西向流量就需要设置大量防火墙规则...Calico的访问控制流程如下所示: ? 注: Felix:它是Calico Agent,在集群的每个节点上都要运行,主要负责路由以及访问控制策略的配置。...BIRD:主要负责将Felix写入Kernel的路由信息分发到当前的Calico网络,确保Workload通信的有效性。 Etcd:网络信息存储。...的felix通过Kubernetes API datastore获得更新policy信息,最后更新iptables规则,查看calio/node容器的日志发现Felix增加了拒绝策略 # docker...由于BPF在Linux内核中运行,因此可以快速应用更新安全策略,而无需对应用程序代码或容器配置进行任何更改,相对于iptables更高效。

    1.8K10

    Calico on Kubernetes

    文章目录 Calico 网络模型 Calico网络的转发细节 路由配置组件Felix 路由广播组件BGP Speaker Calico 架构 Calico全景架构图 全连接复杂性与规模问题 大规模部署架构图...Calico网络的大概思路,即不走Overlay网络,不引入另外的网络性能损耗,而是将转发全部用三层网络的路由转发来实现 如果全部走三层的路由规则,没必要每台机器都用一个docker0,从而浪费了一个IP...这个agent在Calico中称为Felix。...之所以能够这样,是因为物理机A物理机B是同一个网段的,是连接在同一个交换机上的。那如果物理机A物理机B不是在同一个网段呢?...将这个包从eth0发出去,在物理网络上会使用外层的IP进行路由,最终到达物理机B。在物理机B上,tun0会解封装,将内层的源IP目标IP拿出来,转发给相应的容器

    51520

    27 Sep 2019 kubernetes网络(二)

    calico提供的网络解决方案,基本flannel的host-gw模式相同,不同的地方在flannel通过etcd宿主机上的flanneld维护路由信息,而calico是使用bgp(border...: 目标容器ip段 via 容器所在节点ip或者网关ip dev eth0 bgp:大规模网络中实现节点路由信息共享的一种协议 calico有以下组件: calico的cni插件,即calico...二进制文件,负责kubernetes对接 felix:负责在集群中各节点维护路由规则(如下一跳)calico所需的网络设备,在每个节点都会启动的daemonset bird:bgp客户端,负责在集群中通过...bgp协议在各节点分发路由规则,即将所有节点当成边界路由器,相互之间通过bgp协议交换路由规则 不同于flannel网络解决方案,calico不创建任何网桥设备。...calixxx 进而进入c2容器 以上方式需要calico宿主机支持dynamic neighbor的bgp配置方式,方便各节点网关router建立bgp连接,将路由规则分发到网关。

    14620

    K8S之CNI

    host gateway 顾名思义就是拿宿主机作为网关,所以它的原理其实非常简单: 容器 A 内发包到 cni0 cni 的 IP 匹配到 hostA 上的路由规则直接发送到 hostB hostB 的...对,其实很简单,Calico 的 BGP 简单的说就是在本机上模拟了一个类似路由器的功能来实现的。...它有几个重要的组件 Felix: 是一个 DaemonSet ,负责刷新主机路由规则 ACL 规则等 BgpClient:读取 Felix 编写的路由信息,将这些路由信息分发到集群的其他工作节点上 Bgp...因为TCP/IP的协议栈提供了一整套的防火墙的规则,所以它可以通过IPTABLES规则达到比较复杂的隔离逻辑。...podB 总的来说,Calico 完全是利用了路由规则去实现的组网,利用宿主机协议栈去确保容器之间跨主机的连通性,没有 overlay,没有 NAT,相对的转发效率也比较高。

    1.2K22

    数据包在 Kubernetes 中的一生(2)

    下面的内容会涉及安装、Calico 模块(Felix、BIRD 以及 Confd)路由模式,但是不会包含网络策略方面的内容。...) 在主机上加入路由 实施网络策略 其实还有很多别的需求,但是上面几个点是最基础的。...看看 Master Worker 节点上的路由表。每个节点都有一个容器,容器有一个 IP 地址缺省的容器路由。 ? 上面的路由表说明,Pod 能够通过 3 层网络进行互通。...Felix Calico Felix 守护进程在 Calico Node 容器中运行,完成如下功能: 从 Kubernetes ETCD 中读取信息 构建路由表 配置 iptables 或者 IPVS...路由模式 Calico 支持三种路由模式,本节中会对几种模式的优劣适用场景进行讨论。

    89710

    Kubernetes 网络插件工作原理

    宿主机上路由信息是 flanneld 设置的,因为 flannel 子网主机的信息保存在 etcd 中,所以 flanneld 只需要 watch 这些数据的变化,实时更新路由表即可。...node1 上的 pod1 请求 node2 上的 pod2 时,流量的走向如下: pod1 里的进程发起请求,发出 IP 包,从网络层进入链路层封装成帧; 根据主机上路由规则,数据帧从 Node 1...所以,Calico 的 CNI 插件还需要在宿主机上为每个容器的 Veth Pair 设备配置一条路由规则,用于接收传入的 IP 包。...Calico 的组件: CNI 插件:Calico 与 Kubernetes 对接的部分 Felix:负责在宿主机上插入路由规则(即:写入 Linux 内核的 FIB 转发信息库),以及维护 Calico...由于没有使用 CNI 的网桥,Calico 的 CNI 插件需要为每个容器设置一个 Veth Pair 设备,然后把其中的一端放置在宿主机上,还需要在宿主机上为每个容器的 Veth Pair 设备配置一条路由规则

    48311

    Kubernetes网络模型

    PodService之间的通信:Pod IP地址Service IP进行通信,两者并不属于同一网络,实现方式是通过IPVS或iptables规则转发。...Calico:基于BGP的三层网络插件,也支持网络策略进而实现网络的访问控制;它在每台主机上都运行一个虚拟路由,利用Linux内核转发网络数据包,并借助iptables实现防火墙功能。...因为TCP/IP的协议栈提供了一整套的防火墙的规则,所以它可以通过IPTABLES规则达到比较复杂的隔离逻辑。...其中,这里最核心的 下一跳 路由规则,就是由 CalicoFelix 进程负责维护的。这些路由规则信息,则是通过 BGP Client 中 BIRD 组件,使用 BGP 协议来传输。...(可以使用大规模方式解决) 每个node上会设置大量(海量)的iptables规则路由,运维、排障难度大。 原理决定了它不可能支持VPC,容器只能从calico设置的网段中获取ip

    1.1K10
    领券