calico网络策略

简介: 基本原理 完全通过三层网络的路由转发来实现 calico ippool 以calico 3.2版本为准,在calico 3.3中增加了blockSize可变更以及针对namespace单独设置子网的功能参考:https://www.projectcalico.org/calico-ipam-explained-and-enhanced/ calico 不同于flannel不需要为每个node分配子网段,所以只需要考虑pod的数量;例如配置 172.0.0.0/16即总共可运行 2^16=65536个pod。

基本原理

完全通过三层网络的路由转发来实现

calico ippool

以calico 3.2版本为准,在calico 3.3中增加了blockSize可变更以及针对namespace单独设置子网的功能
参考:https://www.projectcalico.org/calico-ipam-explained-and-enhanced/

calico 不同于flannel不需要为每个node分配子网段,所以只需要考虑pod的数量;
例如配置 172.0.0.0/16即总共可运行 2^16=65536个pod。

ippool 分配细节:

默认情况下,当网络中出现第一个容器,calico会为容器分配一段子网(子网掩码/26,例如:172.0.118.0/26),后续出现该节点上的pod都从这个子网中分配ip地址,这样做的好处是能够缩减节点上的路由表的规模,按照这种方式节点上2^6=64个ip地址只需要一个路由表项就行了,而不是为每个ip单独创建一个路由表项。如下为etcd中看到的子网段的值:

注意:当64个主机位都用完之后,会从其他可用的的子网段中取值,所以并不是强制该节点只能运行64个pod ,只是增加了路由表项

Calico 网络的转发细节

容器 A1 的 IP 地址为 172.17.8.2/32,这里注意,不是 /24,而是 /32,将容器 A1 作为一个单点的局域网了。

容器 A1 里面的默认路由,Calico 配置得比较有技巧。

default via 169.254.1.1 dev eth0 
169.254.1.1 dev eth0 scope link 

这个 IP 地址 169.254.1.1 是默认的网关,但是整个拓扑图中没有一张网卡是这个地址。那如何到达这个地址呢?

ARP 本地有缓存,通过 ip neigh 命令可以查看。

169.254.1.1 dev eth0 lladdr ee:ee:ee:ee:ee:ee STALE

找个mac地址为外面 caliefb22cb5e12的mac地址,即到达物理机A路由器:

172.17.8.2 dev veth1 scope link 
172.17.8.3 dev veth2 scope link 
172.17.9.0/24 via 192.168.100.101 dev eth0 proto bird onlink

为了保证物理机A和物理机B能够相互知道,路由信息,calico使用了bgp协议进行路由发现。

IPIP

如果是跨网段的访问,网络之间存在路由器,比上面的架构更加复杂,如何进行路由发现? 需启用IPIP模式。

使用了 IPIP 模式之后,在物理机 A 上,我们能看到这样的路由表:

172.17.8.2 dev veth1 scope link 
172.17.8.3 dev veth2 scope link 
172.17.9.0/24 via 192.168.200.101 dev tun0 proto bird onlink

这和原来模式的区别在于,下一跳不再是同一个网段的物理机 B 了,IP 为 192.168.200.101,并且不是从 eth0 跳,而是建立一个隧道的端点 tun0,从这里才是下一跳。

  • 内层源 IP 为 172.17.8.2;
  • 内层目标 IP 为 172.17.9.2;
  • 外层源 IP 为 192.168.100.100;
  • 外层目标 IP 为 192.168.200.101。

将这个包从 eth0 发出去,在物理网络上会使用外层的 IP 进行路由,最终到达物理机 B。在物理机 B 上,tun0 会解封装,将内层的源 IP 和目标 IP 拿出来,转发给相应的容器。

相关文章
|
1月前
|
存储 安全 网络安全
云计算时代的网络安全挑战与策略
【10月更文挑战第34天】在数字化转型的浪潮中,云计算作为一项关键技术,正深刻改变着企业的运营方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境下的安全挑战,并提出相应的防护策略。
|
15天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务的安全挑战与策略
在数字化的浪潮下,云计算成为企业转型的重要推手。然而,随着云服务的普及,网络安全问题也日益凸显。本文将深入探讨云计算环境下的安全挑战,并提出相应的防护策略,旨在为企业构建安全的云环境提供指导。
|
17天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
51 7
|
19天前
|
分布式计算 运维 API
针对MaxCompute经典网络域名下线,Dataphin应对策略的公告
针对MaxCompute经典网络域名下线,Dataphin应对策略的公告
216 7
|
21天前
|
存储 安全 网络安全
云计算时代的网络安全挑战与策略
随着云计算的广泛应用,企业和个人越来越依赖云服务来存储和处理数据。然而,这也带来了新的网络安全威胁和挑战。本文将深入探讨云计算环境中的网络安全问题,包括数据泄露、恶意软件攻击、身份盗窃等风险,并提供有效的安全策略和技术解决方案,以保护云环境免受网络攻击。
|
20天前
|
SQL 安全 算法
网络安全漏洞与防御策略:深入加密技术和安全意识的培养
在数字化时代,网络安全的重要性日益凸显。本文将深入探讨网络安全的多个维度,包括常见的网络漏洞类型、加密技术的应用以及如何培养强大的网络安全意识。通过分析这些关键要素,读者将获得保护个人和组织数据免受威胁所需的知识。
|
22天前
|
SQL 安全 算法
数字时代的守护者:网络安全与信息安全的现代策略
在数字化浪潮中,网络安全与信息安全如同航船上不可或缺的罗盘和舵。本文将探讨网络安全漏洞的成因、加密技术的重要性以及安全意识的培养,旨在为读者提供一套完整的网络自我保护指南。从基础概念到实用策略,我们将一起航行在安全的海洋上,确保每一位船员都能抵达信息保护的彼岸。
|
24天前
|
监控 安全 网络安全
云计算环境下的网络安全防护策略
在云计算的浪潮下,企业和个人用户纷纷将数据和服务迁移到云端。这种转变带来了便利和效率的提升,同时也引入了新的安全挑战。本文将探讨云计算环境中网络安全的关键问题,并介绍一些实用的防护策略,帮助读者构建更为安全的云环境。
|
22天前
|
云安全 监控 安全
云计算环境下的网络安全策略与实践
在数字化时代,云计算已成为企业和个人存储、处理数据的重要方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨如何在云计算环境中实施有效的网络安全措施,包括加密技术、访问控制、安全监控和应急响应计划等方面。我们将通过具体案例分析,展示如何在实际场景中应用这些策略,以保护云中的数据不受威胁。
|
28天前
|
供应链 安全 网络安全
云计算与网络安全:探索云服务中的信息安全挑战与策略
【10月更文挑战第41天】 在数字化时代的浪潮中,云计算以其灵活性、可扩展性和成本效益成为企业信息技术架构的核心。然而,随之而来的网络安全问题也日益凸显,尤其是数据泄露和网络攻击事件频发,给企业带来巨大风险。本文将深入探讨云计算环境中的网络安全挑战,并提供针对性的安全策略和最佳实践,旨在帮助企业构建更为坚固的信息安全防线。