当前位置: 首页 > news >正文

Calico IPIP和BGP TOR的数据包走向


IPIP Mesh全网互联

文字描述

APOD eth0 10.7.75.132 -----> APOD 网关 -----> A宿主机 cali76174826315网卡 -----> Atunl0 10.7.75.128 封装 ----> Aeth0 10.120.181.20 -----> 通过网关 10.120.181.254  -----> 下一跳 BNODE eth0 10.120.179.8 解封装 -----> Btunl0 10.5.34.192 -----> 路由 B宿主机 calie83684f4735 -----> BPOD eth0 10.5.34.192

APOD 10.7.75.132  ---->  BPOD 10.5.34.192
ANODE 10.120.181.20 ---->   BNODE 10.120.179.8

BGP TOR

图(后续补上)


APOD eth0 10.121.74.181 ----->  APOD 网关 ARP ----->  A宿主机 cali3e7996a24a7网卡 ----> 默认路由0.0.0.0 通过网关 10.120.129.254 ----> Aeth0 10.120.129.9  -----> 三层路由设备IP 10.120.248.161 10.120.248.178 两跳 -----> 达到 BNODE eth0 10.120.128.7 -----> 通过路由表 ip为 10.121.46.65 到达 B宿主机 cali558def1712b网卡 通过iptables 转发 ----->  BPOD eth0 10.121.46.65

APOD 10.121.74.181  
ANODE  10.120.129.9 

BPOD 10.121.46.65
BNODE  10.120.128.7

Pod内网络数据包如何到达宿主机

Calico所有的veth-pair在主机空间的calixxx的MAC地址,无一例外都是ee:ee:ee:ee:ee:ee, 这样的配置简化了操作,使得容器会把报文交给169.254.1.1来处理,但是这个地址是本地保留的地址也可以说是个无效地址,但是通过veth-pair会传递到对端calixxx上,注意,因为calixxx网卡开启了arpproxy,所以它会代答所有的ARP请求,让容器的报文都发到calixxx上,也就是发送到主机网络栈,再有主机网络栈的路由来送到下一站. 可以通过cat /proc/sys/net/ipv4/conf/calixxx/proxy_arp/来查看,输出都是1.

这里注意,calico要响应arp请求还需要具备三个条件,否则容器内的ARP显示异常:
宿主机的arp代理得打开
宿主机需要有访问目的地址的明确路由,这里我理解为宿主机要有默认路由
发送arp request的接口与接收arp request的接口不能是相同,即容器中的默认网关不能是calico的虚拟网关

Calico 通过一个巧妙的方法将 workload 的所有流量引导到一个特殊的网关 169.254.1.1,从而引流到主机的 calixxx 网络设备上,最终将二三层流量全部转换成三层流量来转发。
在主机上通过开启代理 ARP 功能来实现 ARP 应答,使得 ARP 广播被抑制在主机上,抑制了广播风暴,也不会有 ARP 表膨胀的问题。

相关文章:

Calico IPIP和BGP TOR的数据包走向

IPIP Mesh全网互联 文字描述 APOD eth0 10.7.75.132 -----> APOD 网关 -----> A宿主机 cali76174826315网卡 -----> Atunl0 10.7.75.128 封装 ----> Aeth0 10.120.181.20 -----> 通过网关 10.120.181.254 -----> 下一跳 BNODE eth0 10.120.179.8 解封装 --…...

静态成员主要用于提供与类本身相关的功能或数据,有什么应用场景

静态成员(包括静态方法和静态属性)在JavaScript中常用于多种应用场景,它们为类提供了与类本身直接相关而不是与实例相关的功能或数据。以下是一些常见的应用场景: 工厂方法 静态方法可以作为工厂方法,用于创建类的实…...

在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)

在线考试管理系统目录 目录 基于Springboot的在线考试管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台: 2、后台 管理员功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主…...

C语言-----数据在内存中的存储(1)

1.整数在内存中的存储 我们之前就了解过整数的二进制写法分别有3种,分别为原码,反码,补码。整型在内存中存储的是补码。 原码,反码,补码都有自己的符号位和数值位,符号位为1时,则表示负数&…...

Ribbon有哪些负载均衡策略

负载均衡类都实现了IRule接口。 RandomRule:随机的选用一个实例 RoundRobinRule:轮询的使用实例 RetryRule:在轮询的基础上加了一个错误重试机制,在deadline时间内会不断的重试 WeightResponeTimeRule:根据权重去做…...

websocket多级nginx代理

在使用多层Nginx代理时,WebSocket的连接可能会遇到一些问题,因为WebSocket连接是持久化的,它需要Upgrade头部来确认升级到WebSocket协议。在多层代理的情况下,每层代理可能会修改或丢失这个Upgrade头部信息。 为了确保WebSocket能…...

【python从入门到精通】-- 第四战:语句汇总

🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…...

【NC50937】货仓选址

题目 货仓选址 二分,前缀和,数学推导 思路 由题意可知货仓的位置是可以和商店的位置重合的。首先应该将商店的坐标从小到大排序,然后假设商店的坐标为 a i a_i ai​,货仓的坐标为 x x x,货仓左侧第一家商店&#x…...

Nginx配置使用笔记

Nginx配置使用笔记 前言 官网下载压缩包https://nginx.org/ 解压完成后当前目录cmd输入nginx指令启动 访问http://localhost:80确认启动成功 1.部署前端项目 部署前端项目到路径E:\Workspaces\Vscode\app-web 2.0配置nginx.conf文件 在nginx安装的conf目录下新建一个文件夹l…...

GridLayoutManager 中的一些坑

前言 如果GridLayoutManager使用item的布局都是wrap_cotent 那么会在布局更改时会出现一些出人意料的情况。&#xff08;本文完全不具备可读性和说教性&#xff0c;仅为博主方便查找问题&#xff09; 布局item: <!--layout_item.xml--> <?xml version"1.0&qu…...

算法实验二 矩阵最小路径和 LIS

算法实验课二 矩阵最小路径和 leetcode裸题 最小路径和 给定一个包含非负整数的 *m* x *n* 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&…...

Apache Paimon实时数据糊介绍

Apache Paimon 是一种湖格式,可以使用 Flink 和 Spark 构建实时 数据糊 架构,用于流式和批处理操作。Paimon 创新地将湖格式和 LSM(日志结构合并树)结构相结合,将实时流式更新引入湖架构中。 Paimon 提供以下核心功能: 实时更新: 主键表支持大规模更新的写入,具有非常…...

计算机网络:数据链路层 - 可靠传输协议

计算机网络&#xff1a;数据链路层 - 可靠传输协议 可靠传输概念停止-等待协议 SW回退N帧协议 GBN选择重传协议 SR 可靠传输概念 如下所示&#xff0c;帧在传输过程中受到干扰&#xff0c;产生了误码。接收方的数据链路层&#xff0c;通过真伪中的真检验序列 FCS 字段的值&…...

苍穹外卖07(缓存菜品,SpringCache,缓存套餐,添加购物车菜品和套餐多下单,查看购物车,清除购物车,删除购物车中一个商品)

目录 一、缓存菜品 1 问题说明 2 实现思路 3 代码开发&#xff1a;修改DishServiceImpl 4 功能测试 二、SpringCache 1. 介绍 2. 使用语法 1 起步依赖 2 使用要求 3 常用注解 4 SpEL表达式(了解备用) 5 步骤小结 3.入门案例 1 准备环境 2 使用入门 1 引导类上加…...

C语言第三十八弹---编译和链接

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 编译和链接 1、翻译环境和运行环境 2、翻译环境 2.1、预处理&#xff08;预编译&#xff09; 2.2、编译 2.2.1、词法分析 2.2.2、语法分析 2.2.3、语义分…...

无人售货奶柜:开启便捷生活的新篇章

无人售货奶柜&#xff1a;开启便捷生活的新篇章 在这个快节奏的现代生活中&#xff0c;科技的革新不仅为我们带来了前所未有的便利&#xff0c;更在不经意间改变着我们的日常。其中&#xff0c;无人售货技术的出现&#xff0c;尤其是无人售货奶柜&#xff0c;已经成为我们生活…...

STM32为什么不能跑Linux?

STM32是一系列基于ARM Cortex-M微控制器的产品&#xff0c;它们主要用于嵌入式系统中。而Linux则是一个开源的类Unix操作系统&#xff0c;主要面向的是桌面电脑、服务器等资源丰富的计算机。虽然理论上可以将Linux移植到STM32上运行&#xff0c;但是由于两者之间存在着很多技术…...

Dubbo 3.x源码(18)—Dubbo服务引用源码(1)

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了Dubbo的服务导出的源码&#xff0c;在DubboBootstrapApplicationListener#startSync方法中&#xff0c;在调用了exportServices方法进行服务导出之后&#xff0c;立即调用了referServices方法…...

设计模式:工厂模式和抽象工厂模式的区别

定义 工厂模式(Factory Pattern)通常指的是工厂方法模式(Factory Method Pattern),它定义了一个创建对象的方法,由子类决定要实例化的类。工厂方法让类的实例化推迟到子类。 抽象工厂模式(Abstract Factory Pattern)提供了一个接口,用于创建相关或依赖对象的家族,而…...

python面试题(36~50)

36、如何取一个整数的绝对值? 这可以通过abs函数来实现。 abs(2) #> 2 abs(-2) #> 2 37、如何将两个列表组合成一个元组列表? 可以使用zip函数将列表组合成一个元组列表。这不仅仅限于使用两个列表。也适合3个或更多列表的情况。 a [a,b,c] b [1,2,3] [(k,v) fo…...

Uvicorn与Couchbase Analytics Service集成:构建高性能数据分析API的终极指南

Uvicorn与Couchbase Analytics Service集成&#xff1a;构建高性能数据分析API的终极指南 【免费下载链接】uvicorn An ASGI web server, for Python. &#x1f984; 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn 在现代数据驱动的应用开发中&#xff0c;…...

TC3XX Autosar系统中文配置手册:包含19个模块的详细解析与联系指南

tc3xx autosar EB中文配置手册&#xff0c;需要联系。 一共有大约19个模块。 在汽车电子开发领域&#xff0c;TC3xx系列芯片AUTOSAR架构的组合越来越常见。最近研究EB&#xff08;Elektrobit&#xff09;配置工具时&#xff0c;发现其19个核心模块的配置逻辑其实藏着不少"…...

SAP资产主数据批量修改避坑大全:GGB1替代+AR31工作清单配置详解(含日期字段特殊处理)

SAP资产主数据批量修改实战指南&#xff1a;从GGB1替代到AR31工作清单全流程解析 当财务团队需要对上千条资产记录进行成本中心迁移时&#xff0c;手工修改不仅效率低下&#xff0c;还容易产生数据不一致。SAP系统提供的GGB1替代规则与AR31工作清单组合方案&#xff0c;正是解决…...

系统焕新:Win11Debloat工具让Windows性能提升51%的全方位优化方案

系统焕新&#xff1a;Win11Debloat工具让Windows性能提升51%的全方位优化方案 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更…...

Doris从入门到上天系列第六篇:Doris中修改表的操作

一&#xff1a;修改表使用 ALTER TABLE 命令可以对表进行修改&#xff0c;包括 partition 、rollup、schemachange、rename 和 index 五种。语法&#xff1a;ALTER TABLE [database.]table alter_clause1[, alter_clause2, ...];alter_clause 分为 partition 、rollup、schema …...

嵌入式软件发中AI技术及工具的应用

嵌入式软件开发中的人工智能技术应用与辅助方法详述及未来展望 引言 人工智能正从“被嵌入到终端设备”的单向角色&#xff0c;逐步演变为“赋能开发过程本身”的双向驱动力。在嵌入式软件开发领域&#xff0c;AI不仅让设备更智能&#xff0c;更在深刻改变着开发者的工作方式—…...

洛谷 P1507:NASA的食物计划 ← 二维费用0/1背包问题

【题目来源】 https://www.luogu.com.cn/problem/P1507 【题目背景】 NASA&#xff08;美国航空航天局&#xff09;因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋&#xff0c;因此在各方压力下终止了航天飞机的历史&#xff0c;但是此类事情会不会在以后发生&#xff0…...

如何用QuickRecorder解决macOS录屏痛点:高效专业的从入门到精通实践指南

如何用QuickRecorder解决macOS录屏痛点&#xff1a;高效专业的从入门到精通实践指南 【免费下载链接】QuickRecorder A lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具 项目地址: https://gitco…...

基于Python的流浪动物救助平台毕业设计

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在构建一个基于Python的流浪动物救助平台&#xff0c;以实现流浪动物的有效救助与管理工作。具体研究目的如下&#xff1a; 首先&#xff0c;通过构建流…...

Java后端开发——真实面试汇总(持续更新)

一.浙江大学研究院一面&#xff08;面试Time&#xff1a;1小时30分钟&#xff09;1. 面试官自我介绍&#xff0c;同时我开始自我介绍2. 平时接触到哪些数据结构&#xff1f;3. ArrayList和LinkedList的主要区别是什么&#xff1f;4. 数组和链表的主要区别是什么&#xff1f;5.…...