零入门kubernetes网络实战-33->基于nat+brigde+veth pair形成的跨主机的内网通信方案

news2024/11/20 1:44:55

《零入门kubernetes网络实战》视频专栏地址

https://www.ixigua.com/7193641905282875942

本篇文章视频地址(稍后上传)


本文主要使用的技术是
nat技术+Linux虚拟网桥+虚拟网络设备veth pair来实现跨主机网桥的通信

1、测试环境介绍

两台centos虚拟机

# 查看操作系统版本
cat /etc/centos-release
# 内核版本
uname -a
uname -r 
# 查看网卡信息
ip a s eth0

在这里插入图片描述

2、特殊说明

本篇方案是行不通的。

主要是想给大家复盘一下,学习的过程。

以及说明为什么不行。

也就是说,

如果跨主机通信的两端 都是内网的话,是不能使用nat技术的。(仅个人观点,仅供参考)

3、网络拓扑

在这里插入图片描述

4、操作实战

4.1、第1步:在master上执行下面的命令

brctl addbr br0
ip link set br0 up
ip addr add 10.244.1.3/24 dev br0

ip netns add ns1

ip link add veth1a type veth peer name veth1b

ip link set veth1a netns ns1
ip netns exec ns1 ip addr add 10.244.1.2/24 dev veth1a
ip netns exec ns1 ip link set veth1a up

ip link set veth1b up

brctl addif br0 veth1b

ip netns exec ns1 route add default gw 10.244.1.3
iptables -t nat -A POSTROUTING -s 10.244.1.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 10.211.55.0/24 -i eth0 -p icmp -j DNAT --to 10.244.1.3 

echo 1 > /proc/sys/net/ipv4/ip_forward

其中:

iptables -t nat -A POSTROUTING -s 10.244.1.0/24 -o eth0 -j MASQUERADE

是说,对于离开宿主机的数据包,如果源地址是10.244.1.0/24网段,并且通过eth0出去的话,需要做源地址转换;

iptables -t nat -A PREROUTING -d 10.211.55.0/24 -i eth0 -p icmp -j DNAT --to 10.244.1.3 

是说,对于进入本宿主机的数据包,如果数据包的目的地址是10.211.55.0/24网段,通过eth0进入,imcp协议的话,
需要做DNAT转换,
重定向到10.244.1.3 IP

在这里插入图片描述

4.2、第2步:在slave上执行下面的命令

brctl addbr br0
ip link set br0 up
ip addr add 10.244.2.3/24 dev br0

ip netns add ns2

ip link add veth2a type veth peer name veth2b

ip link set veth2a netns ns2
ip netns exec ns2 ip addr add 10.244.2.2/24 dev veth2a
ip netns exec ns2 ip link set veth2a up

ip link set veth2b up

brctl addif br0 veth2b

ip netns exec ns2 route add default gw 10.244.2.3
iptables -t nat -A POSTROUTING -s 10.244.2.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 10.211.55.0/24 -i eth0 -p icmp -j DNAT --to 10.244.2.3 

echo 1 > /proc/sys/net/ipv4/ip_forward

在这里插入图片描述

4.3、第3步:为了验证测试,提前在slave上添加日志埋点

4.3.1、安装rsyslog服务

yum -y install rsyslog

4.3.2、更新配置文件

echo "kern.*     /var/log/iptables.log" >> /etc/rsyslog.conf 

在这里插入图片描述

.*,表示所有等级的消息都添加到iptables.log文件里

信息等级的指定方式

  • .XXX,表示 大于XXX级别的信息
  • .=XXX,表示等于XXX级别的信息
    • 如,kern.=notice /var/log/iptables.log, 将notice以上的信息添加到iptables.log里
  • .!XXX, 表示在XXX之外的等级信息

4.3.3、重启rsyslog服务

systemctl restart rsyslog

systemctl status  rsyslog

在这里插入图片描述

4.3.4、添加日志埋点

iptables -t nat -I PREROUTING -p imcp -j LOG

在这里插入图片描述

4.4、第3步:测试

4.4.1、在master节点上发起ping请求

ip netns exec ns1 ping 10.244.2.2

在这里插入图片描述

4.4.2、对slave节点上的eth0抓包

tcpdump -nn -i eth0 icmp

在这里插入图片描述

4.4.3、查看一下日子埋点

在这里插入图片描述

5、总结

跨主机通信时,如果两侧都是内部网络通信的话,使用
nat技术是不行的。

因为,当目的服务器的对外网卡接收到数据包后,发现数据包的目的地址并非是本网卡的,而是内部地址的。

但是,网卡直接就给丢弃了。

同网段的其他服务器也可以接收到数据包的。

因此,如果希望跨主机两侧的内部网络能够互相通信的话,

需要对目的IP进行修改,即二次封装。

比方说vxlan技术。

当然,也有其他方案。

如,直接路由方案。


<<零入门kubernetes网络实战>>技术专栏之文章目录


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/553840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VIBRO-METER VM600 IRC4 智能继电器卡

额外的继电器&#xff0c;由来自MPC4和/或AMC8卡的多达86个输入的方程驱动&#xff0c;用于需要2oo3表决等更复杂的逻辑时8个继电器&#xff0c;可配置为8个SPDT或4个DPDT使用IRC4配置器软件进行完全软件配置继电器可配置为正常通电(NE)或正常断电(NDE)&#xff0c;具有可配置的…

小航助学GESP_C++一级模拟测试试卷(含题库答题软件账号)

GESP在线模拟训练系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级&#xff08;2019年3月&#xff09;在线答题_程序猿下山的博客-CSDN博客_小航答题助手 答案:A 第1题人们在使用计算机时所提到的 Windows 通常指的是&#xff08;&#xff09;。 A、操作系统B、多…

Science Bulletin:张占军教授团队提出“额叶保持,颞叶损伤” 假说解析成功认知老化

步入老年后&#xff0c;各项认知能力会逐渐衰退&#xff0c;我们把这一过程称之为认知老化。认知老化的过程与速度因人而异&#xff0c;走向阿尔茨海默病&#xff08;AD&#xff09;等认知障碍疾病为结局的属于病理认知老化&#xff0c;也就是经历轻度认知障碍阶段&#xff0c;…

【分享】PowerPoint如何设置保护和加密?

想保护自己做好的PPT&#xff0c;通常用的方法就是给PPT加密。下面我们来看看PPT加密保护方式有几种&#xff0c;具体如何操作。 打开PPT&#xff0c;点击菜单【文件】&#xff0c;再依次点击【信息】-【保护演示文稿】&#xff0c;就可以看到设置密码保护的5个选项。 选项1&a…

小航助学2022年NOC初赛图形化(小低组)(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;_程序猿下山的博客-CSDN博客 单选题3.0分 删除编辑 答案:D 第1题如果想要从造型库中自选一个喜欢角色&#xff0c;可以点击哪个按钮呢&#xff1f; A、①B、②C…

Go语言核心编程-流程控制

第 5 章 程序流程控制 5.1 程序流程控制介绍 在程序中&#xff0c;程序运行的流程控制决定程序是如何执行的&#xff0c;是我们必须掌握的&#xff0c;主要有三大流程控 制语句。 顺序控制分支控制循环控制 5.2 顺序控制 程序从上到下逐行地执行&#xff0c;中间没有任何判…

智行致远丨美格智能亮相IOTE 2023 第十九届上海国际物联网展

5月17~19日&#xff0c;IOTE 2023第十九届上海国际物联网展盛大举办&#xff0c;全球超过350家参展企业到场展示先进的物联网技术和产品&#xff0c;盛况空前。本届展会以“IoT构建数字经济底座”为主题&#xff0c;将IoT技术引入实体经济领域&#xff0c;促进数字化转型和智能…

深度剖析JVM调优法则:从两大特性CPU、内存出发轻松掌握调优实战技巧

1、JDK自带工具 场景一、CPU过高 CPU占用过高排查思路&#xff1a;&#xff08;查进程->查线程列表->查线程堆栈&#xff09; step1&#xff1a;通过top命令查询占用CPU情况 top p.s.shiftp(大写的P-cpu排序) shiftm(大写的M-内存排序) step2&#xff1a;通过进程pi…

调试Dynaslam: Ubuntu系统下使用VS Code进行自动化调试Dynaslam的教程,包括tasks.json和launch.json的配置

调试Dynaslam: Ubuntu系统下使用VS Code进行自动化调试Dynaslam的教程&#xff0c;包括tasks.json和launch.json的配置 修改CMakeLists.txt文件 将SET(CMAKE_BUILD_TYPE Release)修改为SET(CMAKE_BUILD_TYPE Debug)不开启编译优化&#xff0c;在编译选项中包含 -g 参数来启用…

springboot+vue冬奥会科普平台(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的冬奥会科普平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌…

探索iOS之多摄像头预览架构

在iOS13.0开始支持多摄像头预览AVCaptureMultiCamSession&#xff0c;然后iOS15.0增加支持摄像头画中画预览。在使用之前&#xff0c;我们通过isMultiCamSupported()判断是否支持多Camera同时预览。 一、Camera架构 1、Camera流水线 Camera由AVCaptureDeviceInput、AVCaptur…

【实践篇】领域驱动设计:DDD工程参考架构 | 京东云技术团队

背景 为什么要制定参考工程架构 不同团队落地DDD所采取的应用架构风格可能不同&#xff0c;并没有统一的、标准的DDD工程架构。有些团队可能遵循经典的DDD四层架构&#xff0c;或改进的DDD四层架构&#xff0c;有些团队可能综合考虑分层架构、整洁架构、六边形架构等多种架构…

数据仓库选择Greenplum还是SQL-on-Hadoop

Greenplum和Hadoop都是为了解决大数据并行计算而出现的技术&#xff0c;二者的相似点在于&#xff1a; 分布式存储数据在多个节点上。采用分布式并行计算框架。支持向外扩展来提高整体的计算能力和存储容量。支持X86开放集群架构。 但两种技术在数据存储和计算方法上&#xf…

ADS-600树脂,除COD有机物树脂,大孔树脂型号,矿井水有机物

基于吸附功能的聚苯乙烯特种树脂 Tulsimer ADS-600 是一款没有离子官能基的&#xff0c;由交联聚苯乙烯合成的功能强大的吸附型树脂。 Tulsimer ADS-600 主要应用于水溶液中吸附酚及其化合物&#xff0c;氯代烃等含氯物质&#xff0c;表面活性剂&#xff0c;氨基酸&#…

Python系列模块之标准库OS详解

感谢点赞和关注 &#xff0c;每天进步一点点&#xff01;加油&#xff01; 目录 ​一、模块 1.1 模块的定义 1.2 模块的分类 1.3 模块的基本导入语法 二、Python中的包 三、标准库之os模块 实战&#xff1a; 钉钉告警应用 一、模块 1.1 模块的定义 Python 模块(Module)&a…

【JAVA程序设计】(C00139)基于Springboot+Thymeleaf的药店管理系统

基于SpringbootThymeleaf的药店管理系统 项目简介项目获取开发环境项目技术运行截图 项目简介 本项目为基于SpringbootThymeleaf的药店管理系统&#xff08;医院药品管理系统、医院管理系统&#xff09;&#xff0c;本项目主要功能为&#xff1a; 药品库存管理&#xff08;登记…

0基础学习VR全景平台篇第27章:场景管理-视角功能

大家好&#xff0c;欢迎收看蛙色平台免费教程&#xff01; 功能位置示意 一、本功能将用在哪里&#xff1f; 视角功能&#xff1a;指观看者打开场景时&#xff0c;默认展示的位置内容&#xff0c;可针对视角显示范围、视角远近范围进行设置。 应用场景&#xff1a;几乎每个作品…

通过nginx解决vue项目打包后跨域代理失效问题

这里 我的接口是写在 http://localhost:80上的 接口名是user 需要一个id路径参数 我们知道 80是默认 所以就可以不带端口因此访问就是http://localhost/user/1 然后 我vue项目中的 vue.config.js 配置如下 const { defineConfig } require(vue/cli-service) module.exports …

00后职场人,怎么做到刚来就涨薪5k? 原因竟是学会了这个宝藏工具

经常有粉丝问我有“有哪些适合绝大多数普通职场人的制作大屏的工具&#xff1f;” 确实&#xff0c;在这个内卷的时代&#xff0c;大家想要的是更加炫酷的汇报效果。要满足大多数职场人的大屏工具首先一定要满足以下三点&#xff1a; &#xff08;1&#xff09;简单易上手&am…

使用Python技术开发一个社区婴幼儿预防接种系统

婴幼儿预防接种作为社区预防保健的主要工作之一,是儿科临床和公共卫生保健的基础,目前国内外对婴幼儿预防接种工作非常重视。我们社区在工作中改变传统服务理念,根据不同年龄段婴幼儿的心理状态,采取不同心理护理应用,进行婴幼儿预防接种。 本论文主要论述了如何使用Python技术…