零入门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 br0ip netns add ns1ip link add veth1a type veth peer name veth1bip 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 upip link set veth1b upbrctl addif br0 veth1bip 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 br0ip netns add ns2ip link add veth2a type veth peer name veth2bip 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 upip link set veth2b upbrctl addif br0 veth2bip 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 rsyslogsystemctl 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.rhkb.cn/news/50014.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ai写作生成器有哪些?试试这几款工具吧

近年来&#xff0c;随着ai技术的飞速发展&#xff0c;越来越多的人开始意识到ai文本生成器的重要性和实用性。这种文本生成器可以帮助我们快速生成各种类型的文章&#xff0c;如报告、评论、新闻、邮件等&#xff0c;它的应用范围已经非常广泛了。不仅如此&#xff0c;随着机器…

公募基金投资者盈利洞察报告

导读&#xff1a; 近一年市场表现不佳&#xff0c;购买成长型风格基金的基民承受一定亏损&#xff0c;但是投资价值型基金的基民逆势取得正收益&#xff0c;均衡型基金基民也有所亏损&#xff0c;但幅度较小。近三年、近五年的时间维度里&#xff0c;成长型及均衡型基金的投资者…

2023年直播电商618创新趋势研究

导读&#xff1a; 竞争激烈的618已经落下帷幕&#xff0c;作为一年中重要的大促节点之一&#xff0c;618的发展变迁在一定程度上反映了电商行业兴起与成长的过程&#xff0c;见证着中国消费市场的日益繁荣。 从直播电商平台的崛起&#xff0c;到双11、618等年度购物节的涌现&am…

chatgpt赋能python:Python画在一张图上的SEO

Python画在一张图上的SEO 在SEO优化中&#xff0c;数据可视化是非常有效的工具。而Python作为数据可视化的利器&#xff0c;在实现数据的可视化方面也是非常得心应手的。在这篇文章中&#xff0c;我们将会介绍Python如何能够绘制多个图形在一张图片上&#xff0c;从而达到我们…

chatgpt赋能python:python绘图的优势与不足

python绘图的优势与不足 Python是一门高效的编程语言&#xff0c;近年来&#xff0c;Python在科学计算和数据可视化方面表现出色&#xff0c;成为绘制图形的首选语言之一。本文将介绍使用Python绘图的优势和不足&#xff0c;并重点介绍几种常用的Python绘图库。 优势 简单易…

chatgpt赋能python:Python散点图的颜色设置

Python散点图的颜色设置 什么是散点图&#xff1f; 散点图是一种数据可视化的图表类型。它用于观察两个变量之间的关系。通常&#xff0c;x轴表示一个变量&#xff0c;y轴表示另一个变量。每个点表示一个数据点&#xff0c;它在x和y轴上分别具有对应的值。我们可以通过比较散…

chatgpt赋能python:Python怎么画图形:从入门到精通

Python怎么画图形&#xff1a;从入门到精通 简介&#xff1a; Python 作为一种高级编程语言&#xff0c;在数据分析与可视化方面被广泛应用。在数据分析过程中&#xff0c;图形可视化是十分重要的一部分&#xff0c;因此也需要掌握可视化的技巧和方法。 基础知识 在 Python…

chatgpt赋能Python-python画笔的尺寸

介绍 Python是一种流行的编程语言&#xff0c;广泛应用于各种应用程序&#xff0c;包括可视化和图形应用。其中一个强大的库是matplotlib&#xff0c;它允许用户创建各种图形&#xff0c;例如线图、散点图和条形图。在matplotlib中&#xff0c;设置画笔尺寸是一个重要的概念&a…

chatgpt赋能python:Python画布调用方法介绍

Python画布调用方法介绍 Python的画布是绘制图形的工具之一&#xff0c;其灵活的调用方法可以让我们以多种方式绘制各种图形。本文将介绍Python画布的调用方法&#xff0c;包括Canvas、Tkinter以及Matplotlib。 1. Canvas Canvas是Python Tkinter中用于绘制图形的功能模块&a…

chatgpt赋能python:Python怎么搞动画

Python怎么搞动画 Python是一种功能强大的编程语言&#xff0c;不仅可以用来开发各种应用程序&#xff0c;还可以用来创建动画。动画是一种生动有趣的交互形式&#xff0c;适合于网站、游戏、教育和娱乐等多个领域。本文将介绍Python如何用于创建动画&#xff0c;包括以下几个…

chatgpt赋能python:如何在Python中画出正中的图形

如何在Python中画出正中的图形 介绍 Python是一种脚本语言&#xff0c;常用于编写各种类型的应用程序&#xff0c;包括绘图应用程序。在Python中&#xff0c;我们可以使用各种库和工具来创建各种类型的图形。本文将介绍如何使用Python中的Matplotlib库来在屏幕的正中央绘制一…

chatgpt赋能python:Python绘图简介

Python绘图简介 Python是一种广泛使用的编程语言&#xff0c;其提供了丰富的绘图工具&#xff0c;允许开发人员生成各种类型的图形&#xff0c;包括线性图、散点图、柱状图、饼图等。Python绘图是数据可视化的重要方式。本篇文章将介绍Python绘图的基础和如何使用它进行绘图。…

chatgpt赋能python:Python画能带图的SEO文章

Python画能带图的SEO文章 Python作为一款流行的编程语言&#xff0c;不仅可以进行数据处理、机器学习、自然语言处理等高端应用领域&#xff0c;也诞生了许多优秀的图形库&#xff0c;能够在文章撰写中轻松绘制各种图表&#xff0c;为SEO优化带来很大的便利。 1. Matplotlib …

chatgpt赋能python:Python是怎样画图片的

Python是怎样画图片的 介绍 Python是一种高级编程语言&#xff0c;可以用于各种应用&#xff0c;其中包括图形处理。Python的库和模块可以帮助我们轻松地生成各种图像&#xff0c;比如散点图、折线图、条形图、饼图等等。如果有一定的Python编程经验&#xff0c;那么很容易就…

chatgpt赋能python:Python调整画布大小:让图形更加完美!

Python调整画布大小&#xff1a;让图形更加完美&#xff01; Python是一款深受广大开发者喜爱的编程语言&#xff0c;其拥有丰富的第三方库和强大的可视化功能。在Python中制作图表和可视化结果时&#xff0c;我们经常需要对画布大小进行调整。本文将为您详细介绍如何在Python…

chatgpt赋能python:Python画的图怎么不能停留

Python画的图怎么不能停留 Python是一种流行的编程语言&#xff0c;具有易学、高效、跨平台、强大的功能和丰富的库。其中&#xff0c;matplotlib是Python中最常用的绘图库之一&#xff0c;它可以帮助我们制作各种图表&#xff0c;包括折线图、散点图、条形图、等高线图等等。…

chatgpt赋能python:如何在Python中画图形

如何在Python中画图形 Python是一种高级编程语言&#xff0c;不仅易于学习&#xff0c;而且拥有广泛的应用领域&#xff0c;包括机器学习、数据科学以及图形可视化等。 在本文中&#xff0c;我们将介绍如何使用Python画图形&#xff0c;包括基础绘图功能和常用的绘图库。 基…

chatgpt赋能python:Python中的图形绘制:从Matplotlib到Seaborn

Python中的图形绘制&#xff1a;从Matplotlib到Seaborn Python是一种非常优秀的编程语言&#xff0c;除了在机器学习、数据分析等领域取得很大的成功之外&#xff0c;在图形绘制方面也同样具有无限的魅力。Python中有很多优秀的图形绘制库&#xff0c;本文主要介绍两个常用的库…

chatgpt赋能python:Python画散点图:入门指南及优秀实践

Python 画散点图&#xff1a;入门指南及优秀实践 Python 画散点图是什么&#xff1f; 散点图&#xff08;Scatter plot&#xff09;是数据可视化中最常用的图形之一。它可以用来表示两个连续变量之间相互关系的程度&#xff0c;或者是用不同的颜色或标记来表示不同的组别。Py…

ChatGPT解答:python代码+PYQT5,实现自定义选择一个表格的数据并根据用户选择,生成折线图、柱状图、饼图、透视图等,生成的文件可以保存至本地,保存的文件支持多种格式,给出完整的代码

ChatGPT解答&#xff1a; python代码PYQT5&#xff0c;实现自定义选择一个表格的数据并根据用户选择&#xff0c;生成折线图、柱状图、饼图、透视图等&#xff0c;生成的文件可以保存至本地&#xff0c;保存的文件支持多种格式&#xff0c;给出完整的代码 ChatGPTDemo Based …