当前位置: 首页 > 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 表膨胀的问题。

http://www.lryc.cn/news/332224.html

相关文章:

  • 静态成员主要用于提供与类本身相关的功能或数据,有什么应用场景
  • 在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)
  • C语言-----数据在内存中的存储(1)
  • Ribbon有哪些负载均衡策略
  • websocket多级nginx代理
  • 【python从入门到精通】-- 第四战:语句汇总
  • 【NC50937】货仓选址
  • Nginx配置使用笔记
  • GridLayoutManager 中的一些坑
  • 算法实验二 矩阵最小路径和 LIS
  • Apache Paimon实时数据糊介绍
  • 计算机网络:数据链路层 - 可靠传输协议
  • 苍穹外卖07(缓存菜品,SpringCache,缓存套餐,添加购物车菜品和套餐多下单,查看购物车,清除购物车,删除购物车中一个商品)
  • C语言第三十八弹---编译和链接
  • 无人售货奶柜:开启便捷生活的新篇章
  • STM32为什么不能跑Linux?
  • Dubbo 3.x源码(18)—Dubbo服务引用源码(1)
  • 设计模式:工厂模式和抽象工厂模式的区别
  • python面试题(36~50)
  • Vue 样式技巧总结与整理[中级局]
  • cesium加载.tif格式文件
  • 分布式全闪占比剧增 152%,2023 年企业存储市场报告发布
  • LeetCode 707. 设计链表(单链表、(非循环)双链表 模板)
  • 深入了解Flutter中Overlay的介绍以及使用
  • 文本直接生成2分钟视频,即将开源模型StreamingT2V
  • 时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测
  • FPGA高端图像处理开发板-->鲲叔4EV:12G-SDI、4K HDMI2.0、MIPI等接口谁敢与我争锋?
  • linux练习-交互式传参
  • 【数据结构(一)】初识数据结构
  • 前端三剑客 —— CSS (第六节)