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

news/2024/11/29 1:32:16/

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

https://www.ixigua.com/7193641905282875942

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


上一篇文章,我们分享了使用虚拟网桥来连接同网段的不同网络命名空间下的通信情况。

那么,本篇文章,

我们想测试一下,

使用虚拟网桥能不能连接不同网段的不同网络命名空间之间的通信状况?

1、测试环境介绍

一台centos虚拟机

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

在这里插入图片描述

2、网络拓扑

在这里插入图片描述

3、操作实战

3.1、具体操作命令

brctl addbr br0ip link set br0 upip netns add ns1
ip netns add ns2ip link add veth1a type veth peer name veth1b
ip link add veth2a type veth peer name veth2bip link set veth1a netns ns1
ip link set veth2a netns ns2ip 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 veth1aip 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.2.4/24 dev veth2aip link set veth1b up
ip link set veth2b upbrctl addif br0 veth1b
brctl addif br0 veth2b

在这里插入图片描述

3.2、查看当前的网络相关环境

3.2.1、查看一下,ns1的ARP状况

ip netns exec ns1 arp -n

在这里插入图片描述

3.2.2、查看一下,ns1的路由情况

ip netns exec ns1 route -n

在这里插入图片描述

4、测试

测试之前,先抓包

4.1、对ns1命名空间内的veth1a进行抓包

ip netns exec ns1 tcpdump -nn -i veth1a 
ip netns exec ns1 tcpdump -nn -i veth1a -w icmp-veth1a.pcap

4.2、对veth1b进行抓包(其实,就是对网桥br0进行抓包)

打开第1个xshell终端,对veth1b进行抓包

tcpdump -nn -i veth1b

打开第2个xshell终端,对veth1b进行抓包,并且将抓取的包,存储到icmp.pcap里;

通过这种方式,即可以观察数据包抓取情况,又可以将抓取到的数据包,存储到文件里。

tcpdump -nn -i veth1b -w icmp-veth1b.pcap

开始测试

ip netns exec ns1 ping 10.244.2.4 -c 1

在这里插入图片描述

4.3、添加路由

根据上面的报错,以及ns1,ns2的路由情况,

需要给ns1,ns2添加路由。

4.3.1、方案一:给ns1,ns2添加默认路由

ip netns exec ns1 ip route add default dev veth1a
ip netns exec ns2 ip route add default dev veth2a

在这里插入图片描述

4.3.2、方案二:明确给ns1,ns2添加指定的路由

ip netns exec ns1 ip route add 10.244.2.0/24 dev veth1a
ip netns exec ns2 ip route add 10.244.1.0/24 dev veth2a

4.4、整个传输过程,数据包的报文状况?

根据抓取到的数据包状况,进行分析

在这里插入图片描述

在这里插入图片描述

左侧第1列,表示,数据包传输时,经过的虚拟网络设备; 请求过程。
中间,表示,数据包传输时,主要报文内容,请求过程。
右侧第1列,表示,反馈数据包的主要报文内容,反馈过程。

主要观察一下
虽然在ns1我们访问的目的地址经过了跨网段,但是,网桥依旧给转发过去了。

仅仅使用了网桥的二层转发功能。

5、提供一下,完整的测试命令

5.1、创建网络拓扑命令

brctl addbr br0ip link set br0 upip netns add ns1
ip netns add ns2ip link add veth1a type veth peer name veth1b
ip link add veth2a type veth peer name veth2bip link set veth1a netns ns1
ip link set veth2a netns ns2ip 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 veth1aip 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.2.4/24 dev veth2aip link set veth1b up
ip link set veth2b upbrctl addif br0 veth1b
brctl addif br0 veth2bip netns exec ns1 ip route add 10.244.2.0/24 dev veth1a
ip netns exec ns2 ip route add 10.244.1.0/24 dev veth2a

5.2、测试命令

ip netns exec ns1 ping 10.244.2.4 -c 1

6、总结

  • 本文模拟了使用了虚拟网桥链接不同网段的多个网络命名空间下的通信情况。
    • 默认情况下,是不能通信的
    • 要想通信的话,需要添加默认路由。
  • 实际中,一般不会这么用。

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



http://www.ppmy.cn/news/46268.html

相关文章

【mysql性能调优 • 四】mysql用户权限原理和实战(史上最详细)

前言 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database Management System&#xff0c;关系…

Python 自然语言处理实用指南:第一、二部分

原文&#xff1a;Hands-on natural language processing with Python 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff…

对话ChatGPT:Prompt是普通人“魔法”吗?

在ChatGPT、Midjourney、Stable Diffusion等新事物的作用下&#xff0c;不少人或多或少听说过Prompt的概念。 虽然OpenAI掀起的大模型浪潮再度刷新了人们对AI的认知&#xff0c;但现阶段的AI终归还不是强人工智能&#xff0c;大模型里的“知识”存储在一个隐性空间里&#xff0…

基于互相关性的信号同步

许多测量涉及多个传感器异步采集的数据。如果您要集成信号并以关联式研究它们&#xff0c;您必须同步它们。为此&#xff0c;请使用 xcorr。 例如&#xff0c;假设有一辆汽车经过一座桥。它产生的振动由位于不同位置的三个相同传感器进行测量。信号有不同到达时间。 将三个时…

Java集合底层原理

目录 ArrayList集合源码创建ArrayList集合扩容机制 LinkedList集合源码添加数据 迭代器源码HashSet底层原理HashMap源码创建HashMap对象添加元素 TreeMap源码基本属性与构造器添加元素 以下源码来自JDK11 ArrayList集合源码 创建ArrayList集合 /* 无参构造,返回一个空数组 参…

DPDK系列之十三虚拟化virtio源码分析之应用层

一、应用 其实不管怎么设计&#xff0c;如何开发&#xff0c;结果都是要展现一个结果&#xff0c;能够为人所用。虽然说virtio的应用场景有不少&#xff0c;但是在DPDK中主要就是网卡。所以&#xff0c;在此处主要是对网卡的抽象的实现&#xff0c;即对上层的应用实现底层的vi…

【ChatGPT】基于tensorflow2实现transformer(GPT-3.5)

请记住&#xff0c;您是一位NLP领域的专家和优秀的算法工程师。使用带有 tensorflow2.0 subclass api 的 python 从头开始实现 transformer 模型。 全部内容如下&#xff1a; 构建transformer模型架构和依赖层&#xff1b;生成并预处理一些假样本数据&#xff0c;用于训练上面…

NOIP模拟赛 T3区间

题目大意 有 n n n个数字&#xff0c;第 i i i个数字为 a i a_i ai​。有 m m m次询问&#xff0c;每次给出 k i k_i ki​个区间&#xff0c;每个区间表示第 l i , j l_{i,j} li,j​到第 r i , j r_{i,j} ri,j​个数字&#xff0c;求这些区间中一共出现了多少种不同的数字。部…