零入门kubernetes网络实战-28->在同一个宿主机上基于虚拟网桥bridge链接同网段的不同网络命名空间的通信方案

news2024/11/19 3:28:38

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

https://www.ixigua.com/7193641905282875942

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


1、测试环境介绍

一台centos虚拟机

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

在这里插入图片描述

2、网络拓扑

在这里插入图片描述

通过网桥br0将ns1命名空间和ns2命名空间进行链接。

ns1和ns2网络段一样。

注意,我们并没有为br0网桥、veth1b、veth2b设置IP;

即利用了网桥的二层转发。

在ns1命名空间里去访问ns2,测试连通性

我们希望数据包走的路线是红色的。

图中的br0可以通过黄线跟网络协议栈进行双向通信。

当然,本次测试数据包不会走网络协议栈的。

3、操作实践

brctl addbr br0

ip link set br0 up

ip netns add ns1
ip netns add ns2

ip link add veth1a type veth peer name veth1b
ip link add veth2a type veth peer name veth2b

ip link set veth1a netns ns1
ip link set veth2a netns ns2

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

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

ip link set veth1b up
ip link set veth2b up

brctl addif br0 veth1b
brctl addif br0 veth2b

在这里插入图片描述

3.1、查看一下ARP表

数据包如果能发送出去的话,这个数据包必须知道目的IP对应的MAC地址,

可以通过ARP协议来获取目的IP对应的MAC地址;

因此,具体测试前,我们先看一下ns1命名空间,ns2命名空间里的ARP表

ip netns exec ns1 arp -n

ip netns exec ns2 arp -n

在这里插入图片描述

3.2、测试

测试命令如下:

ip netns exec ns1 ping 10.244.1.4
ip netns exec ns1 ping 10.244.1.4 -c 1

在这里插入图片描述

也就是说,可以使用虚拟网桥链接两个同网段的命名空间。

再查看一下ARP表

在ns1命名空间里查询

ip netns exec ns1 arp -n

ip netns exec ns2 ip a s veth2a

在这里插入图片描述

在ns2命名空间里查询

ip netns exec ns2 arp -n

ip netns exec ns1 ip a s veth1a

在这里插入图片描述

3.3、过程分析

在ns1命名空间中的用户空间里
利用ping应用程序发起对n2命名空间里veth2a网卡的ICMP协议请求。

3.3.1、流程图

在这里插入图片描述

3.3.2、抓包分析

3.3.2.1、针对ns1命名空间中的veth1a网卡进行抓包

ip netns exec ns1 tcpdump -nn -i veth1a

在这里插入图片描述

3.3.2.2、针对主命名空间中的veth1b网卡进行抓包

tcpdump -nn -i veth1b

在这里插入图片描述

3.3.2.3、针对主命名空间中的网桥br0进行抓包

tcpdump -nn -i br0

在这里插入图片描述

3.3.2.4、针对主命名空间中的veth2b网卡进行抓包

tcpdump -nn -i veth2b

在这里插入图片描述

3.3.2.5、针对主命名空间中的veth2a网卡进行抓包

ip netns exec ns2 tcpdump -nn -i veth2a

在这里插入图片描述

3.3.2.6、对veth2a收到的数据包进行Wireshark分析

ip netns exec ns2 tcpdump -nn -i veth2a -w icmp.pcap

在这里插入图片描述

4、如何让数据包走本宿主机的防火墙呢?

上面的流程里,数据包并没有走本地的防火墙,而是直接通过网桥进行的数据包转发。

为了测试,本网络拓扑情况下,经过网桥的数据包是否经过了本地的防火墙,

需要添加iptables日志

4.1、安装(若已安装,可忽略)

4.1.1、安装rsyslog服务

yum -y install rsyslog

4.1.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.1.3、重启rsyslog服务

systemctl restart rsyslog

systemctl status  rsyslog

在这里插入图片描述

4.2、在本宿主机上,添加日志埋点

将当前的日志统计清零

iptables -t nat -Z
iptables -t filter -Z

插入日志埋点前,先查看一下,当前的现状

iptables -t nat -nvL PREROUTING --line-number
iptables -t filter -nvL FORWARD --line-number
iptables -t nat -nvL POSTROUTING --line-number

插入日志埋点

iptables -t nat -I PREROUTING -p icmp -j LOG --log-prefix "Nat-PREROUTING-1-"
iptables -t filter -A FORWARD -p icmp -j LOG --log-prefix "Filter-FORWARD-1-"
iptables -t nat -I POSTROUTING -p icmp -j LOG --log-prefix "Nat-POSTROUTING-1-"

在这里插入图片描述

4.3、查看/proc/sys/net/bridge/bridge-nf-call-iptables当前参数值

more /proc/sys/net/bridge/bridge-nf-call-iptables

在这里插入图片描述

4.4、在ns1命名空间里,重新发起请求,并查看iptables日志?

先打开一个xshell的一个终端:
实时跟踪日志:

tail -f /var/log/iptables.log

在这里插入图片描述

再打开xshell的一个终端,进行测试

ip netns exec ns1 ping 10.244.1.4

在这里插入图片描述

4.5、设置内核参数bridge-nf-call-iptables,使得经过bridge的数据包具备本地防火墙功能

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
more /proc/sys/net/bridge/bridge-nf-call-iptables

在这里插入图片描述

再次,查看实时日志
在这里插入图片描述

通过设置此参数,就可以给数据包添加防火墙了。

5、总结

  • 同一个宿主机上可以使用虚拟网桥bridge来连接同网段的不同命名空间,网络是通的。
  • 本网络拓扑下,使用的是网桥的二层转发功能,如果数据包不离开网桥、不跨网段的话,是不需要配置IP的。
  • 可以通过设置内核参数/proc/sys/net/bridge/bridge-nf-call-iptables来控制数据包是否经过本宿主机的防火墙
    • 为1时,必须经过
    • 为0时,不经过
    • 举个例子,此内核参数控制的范围,应该是
      • 该网桥所控制的不同容器,这些容器之间通信时,要不要经过本地的防火墙。
      • 该网桥所控制的不同POD,这些POD之间通信时,要不要经过本地的防火墙。
      • 当然,如果是容器里的数据包经过网桥,到达对外网卡eth0时,这一段路程不是本参数控制的。
  • 实际中,就是同一个网桥下,链接着多个容器,
    • 模拟的是这些容器之间默认情况是可以互相通信的
    • 当然,这些容器处于同一个网段内
    • 这些容器之间通信时,要不要经过本地的防火墙,是靠内核参数/proc/sys/net/bridge/bridge-nf-call-iptables来决定的。

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


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

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

相关文章

互联网+医疗|如何满足各项安全合规要求

互联网医疗背景下&#xff0c;如何有针对性地规范医疗健康App运营&#xff0c;堵住个人隐私信息安全漏洞&#xff0c;是一个亟待解决的行业问题&#xff0c;也是一个数字时代的公共安全问题。此前&#xff0c;多款医疗健康类App就因过度收集个人信息被监管通报。 与电子商务、…

SDUT操作系统课程(CAST)专题二+专题四参考总结

专题二+进程调度算法 RR q=1(含做题代码) 总结:到达时间一到对应进程进入,执行队首进程一次,对应的服务时间划一记号(推荐用正字),队首进程未执行到完成的话重新进入队尾,队首进程执行到完成的话出队,下一秒继续执行队首进程,当5个进程全部入队之后只要执行后两步操…

5.springcloud微服务架构搭建 之 《springboot集成Hystrix》

1.springcloud微服务架构搭建 之 《springboot自动装配Redis》 2.springcloud微服务架构搭建 之 《springboot集成nacos注册中心》 3.springcloud微服务架构搭建 之 《springboot自动装配ribbon》 4.springcloud微服务架构搭建 之 《springboot集成openFeign》 目录 1.项目…

服务器端渲染技术

文章目录1. JSP基本介绍1.1 JSP快速入门1.2 JSP(Java Server Pages)运行原理1.3 page指令介绍1.4 JSP脚本1.4.1 声明脚本1.4.2 表达式脚本1.4.3 java代码脚本1.5 jsp注释1.6 jsp内置对象1.7 JSP四大域对象1.7.1 域对象实例1.7.2 注意事项1.8 JSP请求转发标签1.9 作业布置2. EL表…

前列腺癌论文笔记

名词解释 MRF: 磁共振指纹打印技术( MR Fingerprinting)是近几年发展起来的最新磁共振技术&#xff0c;以一种全新的方法对数据进行采集、后处理和实现可视化。 MRF使用一种伪随机采集方法&#xff0c;取代了过去为获得个体感兴趣的参数特征而使用重复系列数据的采集方法&…

都抢发AI大模型,谁关注模型安全?

如果要给4月定一个主题&#xff0c;“大模型”应该当仁不让。 从4月7日阿里突然放出“通义千问”内测开始&#xff1b;8日&#xff0c;华为放出盘古大模型&#xff1b;10日&#xff0c;商汤推出类ChatGPT产品“商量SenseChat”&#xff1b;之后&#xff0c;11日的阿里云峰会&am…

数据优化 | CnOpenDataA股上市公司招聘数据

就业是经济的“晴雨表”&#xff0c;更是社会的“稳定器”。稳定和扩大就业一直是国家宏观调控的重要目标&#xff0c;2021年中央经济工作会议八次提到“就业”这一关键词。在新冠肺炎疫情蔓延、世界经济下行及人口老龄化加快等多重因素的叠加之下&#xff0c;稳就业保民生成为…

十、CNN卷积神经网络实战

一、确定输入样本特征和输出特征 输入样本通道数4、期待输出样本通道数2、卷积核大小33 具体卷积层的构建可参考博文&#xff1a;八、卷积层 设定卷积层 torch.nn.Conv2d(in_channelsin_channel,out_channelsout_channel,kernel_sizekernel_size,padding1,stride1) 必要参数&a…

【MySQL--03】表的操作

文章目录1.表的操作1.1创建表1.2创建表案例1.3查看表结构1.4修改表1.5删除表1.表的操作 1.1创建表 语法&#xff1a; CREATE TABLE table_name(filed1 datatype,filed2 datatype,filed3 datatype )character set 字符集 collate 校验规则 engine 存储引擎;说明&#xff1a; …

Redis,Redis Sentinel ,集群

1&#xff1a;由于服务器优先&#xff0c;只能在同一台服务器搭建2个Redis&#xff0c;2个Redis Sentinel&#xff0c;实现Redis的集群 2&#xff1a;Linux上下载Redis&#xff0c;并安装和配置 下载执行一下命令&#xff1a; $ wget http://download.redis.io/releases/redi…

MySQL数据库(Python)

文章目录一、数据库安装&#xff08;Windows版&#xff09;二、数据库概念三、MySQL数据库3.1 数据类型3.2 数据库基本操作&#xff08;windows&#xff09;3.3 数据表的操作3.4 表数据操作四、PyMySQL的使用一、数据库安装&#xff08;Windows版&#xff09; 到mysql数据库官…

MATLAB | R2023a更新了哪些好玩的东西

R2023a来啦&#xff01;&#xff01;废话不多说看看新版本有啥有趣的玩意和好玩的特性叭&#xff01;&#xff01;把绘图放最前面叭&#xff0c;有图的内容看的人多。。 1 区域填充 可以使用xregion及yregion进行区域填充啦&#xff01;&#xff01; x -10:0.25:10; y x.^…

spdk环境搭建

SPDK环境搭建运行环境源码拉取编译增加虚拟盘&#xff0c;运行样例本来21年就写了这篇博客&#xff0c;但因为在博客中放了vmware的密钥&#xff0c;违规了&#xff0c;最近正好又要用到spdk&#xff0c;就重新搭建一下spdk&#xff0c;简单改一下博客再发一遍运行环境 VMware…

Unity云渲染,加移动

上次我们根据官方所推出的教程&#xff0c;完成了云渲染&#xff0c;这次我们加个移动。 原谅我又水一篇文章&#x1f604;&#x1f604;&#x1f604;&#x1f604;&#x1f604;&#x1f604;&#x1f604;&#x1f604;&#x1f604; 云渲染的文章看这里&#xff1a;Unity…

关于nn.CrossEntropyLoss交叉熵损失中weight和ignore_index参数

目录 1. 交叉熵损失 CrossEntropyLoss 2. ignore_index 参数 3. weight 参数 4. 例子 1. 交叉熵损失 CrossEntropyLoss CrossEntropyLoss 交叉熵损失可函数以用于分类或者分割任务中&#xff0c;这里主要介绍分割任务 建立如下的数据&#xff0c;pred是预测样本&#xff…

MongoDB 聚合管道的字段投影($addFields,$set,$unset,$project)

上一篇我们介绍了MongoDB 聚合管道的文档筛选及分组统计&#xff1a; $match&#xff1a;文档过滤 $group&#xff1a;文档分组&#xff0c;并介绍了分组中的常用操作&#xff1a;$addToSet&#xff0c;$avg&#xff0c;$sum&#xff0c;$min&#xff0c;$max等。 如果需要进一…

Ceph集群修复 osd 为 down 的问题

问题描述 由于突然断电了&#xff0c;导致 ceph 服务出现了问题&#xff0c;osd.1 无法起来 ceph osd tree解决方案 尝试重启 systemctl list-units |grep ceph systemctl restart ceph-f0e59898-71d4-11ec-924c-000c290a1a98osd.1.service发现重启无望&#xff0c;可采用…

国内企业使用敏捷开发的多吗?《2022中国企业敏捷实践白皮书》发布(附完整版下载)

通过2021-2022调研数据对比发现&#xff0c;受访者所在企业的敏捷团队占比从2021年的55%提升至2022年的63%&#xff0c;说明越来越多的中国企业正在从传统研发模式转变为敏捷研发模式&#xff0c;并不断扩大敏捷适用范围来促进企业整体敏捷转型&#xff1b; 与2021年的白皮书相…

android jetpack Navigation的使用(java)

简介 Navigation通过图形化的方式管理配置页面的切换。 基本使用 添加依赖 implementation androidx.navigation:navigation-fragment:2.5.3implementation androidx.navigation:navigation-ui:2.5.3创建xml文件&#xff08;添加导航图&#xff09;——nav_graph.xml nav_…

Java奠基】Java经典案例讲解

目录 卖飞机票 找质数 开发验证码 数组元素的复制 评委打分 数字加密 数字解密 抢红包 模拟双色球 二维数组 卖飞机票 需求&#xff1a;机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格&#xff1a; 旺季&…