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

《零入门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网络实战>>技术专栏之文章目录


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity3D安装:从命令行安装 Unity

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 从命令行安装 Unity 如果要在组织中自动部署 Unity&#xff0c;可以从命令行安装 Editor 和其他组件。这些组件是普通的安装程序可执行程序和软件包&#xff0c;可以给用来自动部署…

圣墟传说H5手工端搭建架设教程

圣墟传说H5手工端搭建架设教程 大家好&#xff0c;我是艾西。今天给大家带来的游戏是由小说改编而来的大型玄幻MMORPG仙侠手游&#xff0c;也是比较老的游戏了虽然你可能没有怎么听过&#xff0c;但总会有一批喜欢的玩家热衷于它。 那么让我们直接进入正题开始操作&#xff1…

【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

云原生|Kubernetes Operator测试实例

目录 一、主要代码介绍 &#xff08;一&#xff09;变量定义&#xff1a; &#xff08;二&#xff09;测试程序入口 &#xff08;三&#xff09;before函数 &#xff08;四&#xff09;after函数 二、实际测试 &#xff08;一&#xff09;块划分 &#xff08;二&#x…

原神服务端搭建架设Centos系统

原神服务端搭建架设Centos系统 我是艾西&#xff0c;今天为大家带来原神服务端centos系统的教程 Step1. 准备工具 这个端在Windows、Linux系统上都可以跑&#xff0c;本次教程基于Linux。 准备如下工具&#xff1a; 服务器1台 centos7 系统 最低配置32核32G 公网联机 2. 手…

动态规划问题实验:数塔问题

目录 前言实验内容实验流程实验过程实验分析伪代码代码实现分析算法复杂度用例测试 总结 前言 动态规划是一种解决复杂问题的方法&#xff0c;它将一个问题分解为若干个子问题&#xff0c;然后从最简单的子问题开始求解&#xff0c;逐步推导出更复杂的子问题的解&#xff0c;最…

设计原则-单一职责原则

在编程大环境中&#xff0c;评价代码组织方式质量的好坏涉及到各个方面&#xff0c;如代码的可读性、可维护性、可复用性、稳定性等各个方面。而在面向对象语言中也可以通过以下各个方面&#xff1a; 类中方法的设计类中属性的设计类(接口、抽象类、普通类)的设计类与类之间的…

十万条数据,后端不分页咋办!(如何优化长列表渲染)

十万条数据&#xff0c;后端不分页咋办&#xff01;&#xff08;如何优化长列表渲染&#xff09; 长列表是什么&#xff1f; 我们通常把一组数量级很大的数据叫做长列表&#xff0c;比如渲染一组上千条的数据&#xff0c;我们以数组的形式拿到这些信息&#xff0c;然后遍历渲…

正点原子ALPHA开发板核心资源分析

目录 正点原子ALPHA开发板核心资源分析I.MX6ULL实物图对比SOC 主控芯片&#xff08;MCIMX6Y2CVM08AB&#xff09;NAND FLASHEMMCDDR3L 正点原子ALPHA开发板核心资源分析 I.MX6ULL实物图对比 I.MX6ULL NAND BTB 接口核心板资源图与 I.MX6ULL EMMC BTB 接口核心板资源图如上图&a…

电商项目9:新增商品

电商项目9&#xff1a;新增商品 1、前端1.1、修复前端组件通信问题1.2、引入其他前端代码1.3、会员等级列表1.4、当前分类关联的所有品牌 2、后端2.1、会员系统搭建&#xff08;注册与发现&#xff09;2.2、当前分类关联的所有品牌2.3、获取分类下所有分组&关联属性 1、前端…

shell sed命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 sed 命令sed 编辑器sed 的工作流程的三个过程命定格式常用选项常用操作 实验操作打印内容使用地址删除行替换插入 sed 命令 sed 编辑器 sed是一种流编辑器&#x…

听我一句劝,别去外包,干了6年,废了....

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了6年的功能测试&…

中国移动董宁:深耕区块链的第八年,我仍期待挑战丨对话MVP

区块链技术对于多数人来说还是“新鲜”的代名词时&#xff0c;董宁已经成为这项技术的老朋友。 董宁2015年进入区块链领域&#xff0c;现任中国移动研究院技术总监、区块链首席专家。作为“老友”&#xff0c;董宁见证了区块链技术多个爆发式增长和平稳发展的阶段&#xff0c;…

Doxygen 源码分析: SymbolMap类

2023-05-21 10:59:35 ChrisZZ imzhuofoxmailcom Hompage https://github.com/zchrissirhcz 文章目录 1. Doxygen 版本2. SymbolMap 类概要3. 添加符号: SymbolMap<T>::add()4. 删除符号: SymbolMap<T>::remove()5. 符号查找: SymbolMap<T>::find()6. 哪里用了…

什么是半实物仿真平台自动驾驶半实物仿真平台有哪些?

文章目录 半实物仿真平台介绍自动驾驶半实物仿真平台介绍1.CARLA2.AirSim3.LGSVL Simulator 半实物仿真平台介绍 半实物仿真平台是一种综合利用虚拟仿真和实际硬件设备的仿真系统。它将虚拟环境和真实硬件设备结合起来&#xff0c;旨在提供更真实、更准确的仿真体验。 在半实…

基于html+css的图展示90

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Boundary IoU:Improving Object-Centric Image Segmentation Evaluation总结笔记

Boundary IoU:Improving Object-Centric Image Segmentation Evaluation&#xff08;边界Iou&#xff1a;改进以对象为中心的图像分割评价&#xff09; 目录 一、论文出发点 二、论文核心思想 三、相关工作 四、敏感度分析 五、Boundary IoU定义和实验证明 六、应用 七…

基于Gabor-小波滤波深度图表面法线的特征提取算法【通过正常Gabor-小波的直方图进行2D或3D特征提取】研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Redis+Lua脚本防止超卖

超卖就是因为查询库存和扣减库存两个操作不是原子性操作&#xff0c;通过rua脚本执行这两个操作可以保证这两个操作原子性 判断库存量是不是大于等于1&#xff0c;如果大于等于1对库存减1&#xff0c;否则就不去减库存 StringBuilder sb new StringBuilder();sb.append("…

【JAVA进阶】Stream流

&#x1f4c3;个人主页&#xff1a;个人主页 &#x1f525;系列专栏&#xff1a;JAVASE基础 目录 1.Stream流的概述 2.Stream流的获取 3.Stream流的常用方法 1.Stream流的概述 什么是Stream流&#xff1f; 在Java 8中&#xff0c;得益于Lambda所带来的函数式编程&#xff0…