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

Calico IP In IP模拟组网

Calico IP In IP模拟组网

网络架构

在这里插入图片描述

模拟组网

  • 先在k8s-master-1节点执行如下命令:
# 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网络命名空间中的eth0网卡配置IP地址ip netns exec ns1 ip addr add 10.70.1.1/24 dev eth0# 启动ns1网络命名空间中的eth0网卡ip netns exec ns1 ip link set eth0 up# 为ns1网络命名空间的eth0网卡添加路由,168.254.1.1这个IP实际上并没有使用,它仅作为eth0的网关使用,然后当数据发送到veth1后,这里会进行ARP欺骗,将veth1的MAC地址返回给eth0ip netns exec ns1 ip route add 169.254.1.1 dev eth0 scope linkip netns exec ns1 ip route add default via 169.254.1.1 dev eth0# 开启veth1网卡ip link set veth1 up# 宿主机添加路由条目ip route add 10.70.1.1 dev veth1 scope link							# 用于ens160接受到数据报文后,发送给ns1中的eth0网卡ip route add 10.70.2.1 via 192.168.0.12 dev ens160			# 用于veth1数据报文出来后,跨主机通信使用echo 1 > /proc/sys/net/ipv4/conf/veth1/proxy_arp
  • 在k8s-node-1节点执行如下命令:
# 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网络命名空间中的eth0网卡配置IP地址ip netns exec ns1 ip addr add 10.70.2.1/24 dev eth0# 启动ns1网络命名空间中的eth0网卡ip netns exec ns1 ip link set eth0 up# 为ns1网络命名空间的eth0网卡添加路由,168.254.1.1这个IP实际上并没有使用,它仅作为eth0的网关使用,然后当数据发送到veth1后,这里会进行ARP欺骗,将veth1的MAC地址返回给eth0ip netns exec ns1 ip route add 169.254.1.1 dev eth0 scope linkip netns exec ns1 ip route add default via 169.254.1.1 dev eth0# 开启veth1网卡ip link set veth1 up# 宿主机添加路由条目ip route add 10.70.2.1 dev veth1 scope link							# 用于ens160接受到数据报文后,发送给ns1中的eth0网卡ip route add 10.70.1.1 via 192.168.0.11 dev ens160			# 用于veth1数据报文出来后,跨主机通信使用echo 1 > /proc/sys/net/ipv4/conf/veth1/proxy_arp
  • 在k8s-master-1 ping k8s-node-1
[root@k8s-master-1 ~]# ip netns exec ns1 ping -c 1 10.70.2.1
PING 10.70.2.1 (10.70.2.1) 56(84) bytes of data.
64 bytes from 10.70.2.1: icmp_seq=1 ttl=62 time=1.01 ms--- 10.70.2.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.014/1.014/1.014/0.000 ms

具体的转发过程如下:

  1. ns1网络空间的所有数据包都转发到一个虚拟的 IP 地址 169.254.1.1,发送 ARP 请求
  2. k8s-master-1宿主机的 veth1 端收到 ARP 请求时通过开启网卡的代理 ARP 功能直接把自己的 MAC 地址返回给 ns1的eth0
  3. k8s-master-1的ns1 发送目的地址为 k8s-node-1的ns1 的 IP 数据包
  4. 因为使用了 169.254.1.1 这样的地址,宿主机判断为三层路由转发,查询本地路由 10.70.2.1 via 192.168.1.12 dev ens160 发送给对端 Host1,如果配置了 BGP,这里就会看到 proto 协议为 BIRD
  5. 当 k8s-node-1 收到10.70.2.1的数据包时,匹配本地的路由表 10.20.2.1 dev veth1 scope link,将数据包转发到对应的 veth1端,从而到达 ns1
  6. 回程类似

​ 通过这个实验,我们可以很清晰地掌握 Calico 网络的数据转发流程,首先需要给所有的 ns 配置一条特殊的路由,并利用 veth 的代理 ARP 功能让 ns 出来的所有转发都变成三层路由转发,然后再利用主机的路由进行转发。这种方式不仅实现了同主机的二三层转发,也能实现跨主机的转发

相关文章:

Calico IP In IP模拟组网

Calico IP In IP模拟组网 网络架构 模拟组网 先在k8s-master-1节点执行如下命令: # 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网…...

在linux上挂载windows共享目录

挂载要求 非root用户(普通用户)能够读写windows共享目录,比如查看文件、创建文件、修改文件、删除文件 # 让普通用户也可以正常读写 uidvalue and gidvalue Set the owner and group of the root of the file system (default: uidgid0, bu…...

drone的简单使用

(一)简介 Drone 是一个基于Docker容器技术的可扩展的持续集成引擎,用于自动化测试、构建、发布。每个构建都在一个临时的Docker容器中执行,使开发人员能够完全控制其构建环境并保证隔离。开发者只需在项目中包含 .drone.yml文件&…...

day 52 | 84.柱状图中最大的矩形

84.柱状图中最大的矩形 本题跟接雨水的思路是差不多的,不同的是接雨水找到的凹,这个找的是凸。因此是找到左右第一个比他小的值。因此单调栈中的顺序是从栈头到栈尾单调增。 需要注意的是,为了防止给定的元素是单调增或者单调减,…...

BUUCTF刷题十一道(08)

文章目录 [HITCON 2017]SSRFme[b01lers2020]Welcome to Earth[CISCN2019 总决赛 Day2 Web1]Easyweb[SWPUCTF 2018]SimplePHP[NCTF2019]SQLi[网鼎杯 2018]Comment[NPUCTF2020]ezinclude[HarekazeCTF2019]encode_and_encode[CISCN2019 华东南赛区]Double Secret[网鼎杯2018]Unfin…...

快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像

快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像 项目介绍需要重点关注的几个文件构建cpu版本的docker构建gpu版本的docker(cuda11.2cudnn8) 阅读提示: (1)Paddle的Serving项目中,在t…...

SOLIDWORKS工程图自动零件序号的极致体验

在装配体工程图中零件序号的标注要求不能漏标、要和明细表项目相对应、位置适当并且要按序排列。 这些要求看似简单,但是却需要极大的精力去完成。当然在SOLIDWORKS中这些问题都被很好的解决了,这也是本次分享的内容。 自动序号标注 1) 在进行尺寸标注前…...

将ROS bag转成CSV

在放了bag包的工作空间下,执行如下命令 rostopic echo -b recorded_bag.bag -p /topic_name > csv_file.csv # -b表示接bag包 # -p表示将消息转为适合matlab或octave plot画图的格式 # recorded_bag.bag是记录下来的bag包 # /topic_name,以/开头&…...

jframe生成柱状图片+图片垂直合并+钉钉机器人推送

需求: 后端根据数据自动生成2个图片,然后把两张图片合并成一张图片,再发到钉钉群里,涉及到定时生成和推送,当时我们测试同事说他们写定时脚本放到服务器上,然后让我提供生成图片的方法和钉钉机器人的逻辑 天…...

如何用J-Link仿真PY32F003系列芯片

在用国产ARM芯片,仿真和烧录是必须的,但KEIL MDK也支持国产芯片在线仿真和下载。相信大家和我一样,苦于不会设置J-Link走了很多弯路。不管你用盗版的,还是正版的,都支持在线仿真和下载,只要是ARM核&#xf…...

# Go学习-Day10

Go学习-Day10 个人博客:CSDN博客 反射 编写函数适配器,序列化和反序列话可以用到 反射可以在运行时,动态获取变量的各种信息,例如类型,结构体本身的信息,修改变量的值,调用关联的方法 反射是…...

vue3:5、组合式API-reactive和ref函数

<script setup> /* reactive接收一个对象类型的数据&#xff0c;返回一个响应式的对象 *//*** ref:接收简单类型或复杂类型&#xff0c;返回一个响应式对象* 本质&#xff1a;是在原有传入数据的基础上&#xff0c;外层报了一层对象&#xff0c;包成了复杂类型* 底层&…...

Unity Inspector面板上显示Api

serializeField】——将私有类型和保护类型可视化到面板上【System.serializeField】——将自定义类型可视化到面板上【HideIninspector】——将公共变量隐藏【Header&#xff08;“分组说明”&#xff09;】——将可视化变量进行分组【Tooltip&#xff08;“内容说明”&#x…...

Redis功能实战篇之附近商户

在互联网的app当中&#xff0c;特别是像美团&#xff0c;饿了么等app。经常会看到附件美食或者商家&#xff0c; 当我们点击美食之后&#xff0c;会出现一系列的商家&#xff0c;商家中可以按照多种排序方式&#xff0c;我们此时关注的是距离&#xff0c;这个地方就需要使用到我…...

selenium 自动化测试——元素定位

WebDriver 提供了8种元素的定位方法&#xff0c;分别是&#xff1a; id 定位&#xff1a;find_element(By.ID, "kw") name 定位: find_element(By.NAME, "") tag 定位: find_element(By.TAG, "") class 定位: find_element(By.CLASS_NAME, &quo…...

【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析

概述 在一些企业中&#xff0c;各类业务系统非常丰富&#xff0c;相互之间或对外提供很多的服务或接口这些服务或接口中&#xff0c;有很多是需要强契约约束的&#xff0c;服务的提供方、服务的使用方必须遵守相同契约这类服务最典型的就是RPC&#xff0c;其中应用广泛的有Dub…...

手机SSL证书认证失败是什么意思?

手机SSL证书认证失败是指在使用手机设备浏览网站时&#xff0c;由于SSL证书的认证问题&#xff0c;导致无法建立安全的加密连接。本文将详细介绍手机SSL证书认证失败的含义、可能的原因以及解决方法&#xff0c;帮助用户了解并解决该问题&#xff0c;以确保手机端浏览的数据传输…...

PXE网络批量装机(centos7)

目录 前言 一、实验拓扑图 二、PXE的组件 三、配置PXE装机服务器 1、设置防火墙、selinux 2.安装、启动vsftp 3、拷贝系统文件到/var/ftp用于装机 4、配置tftp 5、准备pxelinx.0文件、引导文件、内核文件 6、配置本机IP 7、配置DHCP服务 8、创建default文件 四、配…...

P1104 生日

题目描述 cjf 君想调查学校 OI 组每个同学的生日&#xff0c;并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多&#xff0c;没有时间&#xff0c;所以请你帮她排序。 输入格式 输入共有 n 1 n 1 n1 行&#xff0c; 第 1 1 1 行为 OI 组总人数 n n n&#xff1b; …...

计算机网络复习大纲

第一章 计算机网络概述 一&#xff0c;网络发展的形态 了解&#xff1a;当前网络的组成形态&#xff1a; 二&#xff0c;计算机网络的定义 掌握 网络的物理组成实体 网络的工作方式 网络组建的目的 三&#xff0c;通过网络定义 我们如何学习网络 物理实体如何构成&…...

MMS50MV ToF传感器SPI驱动开发与嵌入式应用

1. MMS50MV ToF传感器驱动深度解析1.1 器件背景与系统定位MMS50MV是由日本Sunhayato株式会社&#xff08;サンハヤト&#xff09;专为Sony Spresense开发平台设计的飞行时间&#xff08;Time-of-Flight, ToF&#xff09;传感器扩展板。该模块并非通用型ToF芯片&#xff0c;而是…...

青蓝送水模式小程序开发指南

核心功能模块设计编辑: 三匠互联土土哥用户端功能在线订水&#xff1a;支持选择水桶规格&#xff08;如18L、12L&#xff09;、品牌&#xff08;农夫山泉、怡宝等&#xff09;及配送时间。订单跟踪&#xff1a;实时显示配送状态&#xff08;接单、配送中、已完成&#xff09;&a…...

2024年实测:火狐浏览器上这3款广告过滤插件,谁才是真正的网页加速器?

2024年火狐浏览器广告过滤插件终极对决&#xff1a;谁才是网页加速王者&#xff1f; 在数字时代&#xff0c;网页浏览速度直接影响着我们的工作效率和上网体验。对于火狐浏览器用户来说&#xff0c;选择一款高效的广告过滤插件不仅能屏蔽恼人的广告&#xff0c;更能显著提升页面…...

元宇宙遗产:那些永远无法测试的AR社交漏洞

测试的疆界与永恒的盲区在软件测试领域&#xff0c;我们习惯于与已知作战。我们制定详尽的测试用例&#xff0c;模拟用户行为&#xff0c;构建自动化脚本&#xff0c;利用AI生成攻击向量&#xff0c;力求覆盖每一个可预见的边界和异常。漏洞扫描、渗透测试、模糊测试、代码审查…...

Hermes性能优化:如何提高邮件生成速度和降低资源消耗

Hermes性能优化&#xff1a;如何提高邮件生成速度和降低资源消耗 【免费下载链接】hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail 项目地址: https://gitcode.com/gh_mirrors/he/hermes Hermes是一个Golang包&a…...

GprMax正演模拟避坑指南:从‘空白结果’到‘清晰双曲线’,我踩过的雷都在这了

GprMax正演模拟避坑指南&#xff1a;从异常结果到专业级图像的实战手册 第一次看到GprMax模拟结果窗口弹出全空白图像时&#xff0c;我盯着屏幕足足愣了三分钟——明明参数设置合理&#xff0c;模型构建完整&#xff0c;为什么输出的雷达图像就像被擦除了一样&#xff1f;这种经…...

Windows DLL注入工具Xenos全攻略:从原理到实践的系统指南

Windows DLL注入工具Xenos全攻略&#xff1a;从原理到实践的系统指南 【免费下载链接】Xenos Windows dll injector 项目地址: https://gitcode.com/gh_mirrors/xe/Xenos 一、技术原理&#xff1a;Xenos注入引擎的底层架构 1.1 三级注入引擎的工作机制 Xenos作为专业的…...

COMSOL二维单管渗透注浆模拟:简单又强大

comsol二维单管渗透注浆模拟 可以模拟用于多种土层注浆扩散效果 模型简单易懂&#xff0c;注浆管周边网格进行细化 有模拟案例&#xff0c;有视频详细操作最近&#xff0c;我一直在研究注浆技术在土层加固中的应用&#xff0c;特别是在如何模拟注浆过程中的扩散效果。经过一段时…...

5步构建专业视频工作流:OBS虚拟摄像头在macOS上的全面应用

5步构建专业视频工作流&#xff1a;OBS虚拟摄像头在macOS上的全面应用 【免费下载链接】obs-mac-virtualcam ARCHIVED! This plugin is officially a part of OBS as of version 26.1. See note below for info on upgrading. &#x1f389;&#x1f389;&#x1f389;Creates …...

别再被芯片手册吓到!用74HC595手把手教你读懂时序图(附示波器实测波形)

从零破解74HC595时序图&#xff1a;示波器实战与代码调优指南 第一次翻开74HC595的数据手册时&#xff0c;那些纵横交错的箭头、虚线、时间参数让我彻底懵了。作为电子爱好者&#xff0c;我们常被告知"要严格按照时序图操作"&#xff0c;但没人告诉我们这些符号究竟对…...