《云计算网络技术与应用》实训5-2:利用Bridge创建虚拟网络连通两个命名空间

利用Bridge创建虚拟网络连通两个命名空间

在这里插入图片描述

1. 配置yum源

先检查虚拟机设置是否挂载镜像。
在这里插入图片描述
创建文件夹,镜像挂载,备份原来的yum源文件到home文件。

# mkdir /opt/centos  
# mount  -o  loop /dev/cdrom /opt/centos
# mv /etc/yum.repos.d/*  /home/

编辑yum配置文件

# vi /etc/yum.repos.d/local.repo

添加内容如下:

[centos]
name=centos
baseurl=file:///opt/centos/
gpgcheck=0
enable=1

保存退出::wq

2. 安装网桥模块
yum install -y bridge-utils

在这里插入图片描述

3. 查询网桥模块
# modinfo bridge

在这里插入图片描述

4. 加载网桥模块,检查网桥挂载情况,检查网桥
# modprobe bridge
# lsmod |grep bridge
# brctl show

在这里插入图片描述

5. 创建逻辑网段,名称为br0
# brctl addbr br0
# brctl show
6. 创建两个不同的网络

Bridge 是用来连接两个不同的虚拟网络的,所以在准备实验 bridge 之前我们得先需要用 net namespace 构建出两个不同的网络空间来。

net1:
# ip netns add net1

接下来创建一对儿 veth 出来,设备名分别是 veth1 和 veth1_p。并把其中的一头 veth1 放到这个新的 netns 中。

# ip link add veth1 type veth peer name veth1_p
# ip link set veth1 netns net1

因为我们打算是用这个 veth1 来通信,所以需要为其配置上 ip,并把它启动起来。

# ip netns exec net1 ip addr add 192.168.0.101/24 dev veth1
# ip netns exec net1 ip link set veth1 up

查看一下,上述的配置是否成功。

# ip netns exec net1 ip link list
# ifconfig
(如命令无法使用,则需安装net-tools)
# yum -y install net-tools
# ip netns exec net1 ifconfig

重复上述步骤,在创建一个新的 netns出来,命名分别为。

netns: net2
veth pair: veth2, veth2_p
ip: 192.168.0.102
这样我们就在一台 Linux 就创建出来了两个虚拟的网络环境。

7. 把两个网络连接到一起

在上一个步骤中,我们只是创建出来了两个独立的网络环境而已。这个时候这两个环境之间还不能互相通信。我们需要创建一个虚拟交换机 - bridge, 来把这两个网络环境连起来。

加粗样式
创建过程如下。
创建一个 bridge 设备, 把刚刚创建的两对儿 veth 中剩下的两头“插”到 bridge 上来。

# ip link set dev veth1_p master br0
# ip link set dev veth2_p master br0
# ip addr add 192.168.0.100/24 dev br0

再为 bridge 配置上 IP,并把 bridge 以及插在其上的 veth 启动起来。

# ip link set veth1_p up
# ip link set veth2_p up
# ip link set br0 up

查看一下当前 bridge 的状态,确认刚刚的操作是成功了的。

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.4e931ecf02b1       no              veth1_p
                                                        veth2_p
8 网络连通测试

我们在 net1 里(通过指定 ip netns exec net1 以及 -I veth1),ping 一下 net2 里的 IP(192.168.0.102)
在这里插入图片描述

# ip netns exec net1 ping 192.168.0.102 -I veth1
PING 192.168.0.102 (192.168.0.102) from 192.168.0.101 veth1: 56(84) bytes of data.
64 bytes from 192.168.0.102: icmp_seq=1 ttl=64 time=0.037 ms
64 bytes from 192.168.0.102: icmp_seq=2 ttl=64 time=0.008 ms
64 bytes from 192.168.0.102: icmp_seq=3 ttl=64 time=0.005 ms

这样,我们就在一台 Linux 上虚拟出了 net1 和 net2 两个不同的网络环境。我们还可以按照这种方式创建更多的网络,都可以通过一个 bridge 连接到一起。这就是 Docker 中网络系统工作的基本原理。

文章中部分内容借鉴微信公众号《张彦飞allen》大神的帖子,特此声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值