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 拿出来,转发给相应的容器。

相关文章
|
26天前
|
存储 云安全 安全
云计算与网络安全:技术挑战与应对策略
【10月更文挑战第6天】 在数字化浪潮下,云计算已成为现代企业不可或缺的技术支柱。然而,随着云服务的快速发展,网络安全问题亦日益凸显。本文将探讨云计算中的安全威胁,并提供针对性的防御措施。从基础的云服务概念出发,文章深入分析了云环境下的安全风险,并结合实际案例,提出了一系列增强云安全的实用建议。读者将通过本文获得对云计算安全领域的全面认识,以及如何实施有效防护的策略。
|
24天前
|
存储 安全 网络安全
云计算与网络安全:技术挑战与应对策略
【10月更文挑战第8天】随着云计算技术的飞速发展,越来越多的企业和个人开始将数据和应用迁移到云端。然而,这也带来了一系列网络安全问题。本文将探讨云计算环境下的网络安全挑战,并提出相应的应对策略。我们将从云服务模型、网络安全威胁、信息安全技术等方面进行分析,并通过代码示例展示如何实现安全措施。
|
16小时前
|
存储 安全 云计算
云上防线:云计算时代的网络安全策略
云上防线:云计算时代的网络安全策略
9 4
|
3天前
|
存储 安全 网络安全
云计算与网络安全:保护数据的新策略
【10月更文挑战第28天】随着云计算的广泛应用,网络安全问题日益突出。本文将深入探讨云计算环境下的网络安全挑战,并提出有效的安全策略和措施。我们将分析云服务中的安全风险,探讨如何通过技术和管理措施来提升信息安全水平,包括加密技术、访问控制、安全审计等。此外,文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全策略。
|
8天前
|
SQL 安全 算法
网络安全漏洞与加密技术:保护信息安全的关键策略
【10月更文挑战第23天】在数字化时代,网络安全漏洞和信息安全问题日益突出。本文将探讨网络安全漏洞的概念、类型以及它们对信息系统的潜在威胁,并介绍加密技术如何成为防御这些安全威胁的有力工具。同时,强调安全意识的重要性,并提出加强网络安全教育和培训的建议。最后,通过一个代码示例,展示如何在网络应用中实现基本的加密措施,以增强读者对网络安全实践的认识。
|
11天前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
|
16天前
|
供应链 安全 网络安全
云计算时代的网络安全挑战与策略
【10月更文挑战第15天】随着云计算技术的飞速发展,企业和个人用户越来越依赖云服务来存储和处理数据。然而,这种便利性也带来了新的网络安全风险。本文将探讨云计算环境中的网络安全挑战,并提出相应的防御策略,以保护数据不受威胁。
30 4
|
18天前
|
存储 监控 安全
如何实施有效的网络安全策略?
【10月更文挑战第13天】如何实施有效的网络安全策略?
55 5
|
18天前
|
运维 监控 安全
连锁药店网络优化策略:一站式融合方案提升竞争力
在数字化浪潮下,线上药店通过技术创新和线上线下融合,正重塑购药体验,提供24小时服务和医保结算便利。面对激烈竞争,连锁药店和中小药店纷纷通过优化网络架构、提升服务质量和加强合规管理来增强竞争力,实现高效、安全的数字化转型。
|
25天前
|
负载均衡 Linux 数据安全/隐私保护
docker中网络策略问题
【10月更文挑战第6天】
26 5