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

《零入门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 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.2.4/24 dev veth2a

ip link set veth1b up
ip link set veth2b up

brctl 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 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.2.4/24 dev veth2a

ip link set veth1b up
ip link set veth2b up

brctl addif br0 veth1b
brctl addif br0 veth2b

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

5.2、测试命令

ip netns exec ns1 ping 10.244.2.4 -c 1

6、总结

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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码二哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值