Docker基础-18-网络-两个网络命名空间网络通信配置过程

本篇继续学习linux的网络命名空间,主要介绍如何创建和删除一个linux network namespace,然后通过最底层的linux network namespace来解释前面一篇两个容器可以互相ping同的原理。

 

查看本机的network namespace

上面查询,我本机没有network namespace。

如何创建一个network namespace

如何删除一个network namespace

我们知道通过exec可以查询一个容器的ip地址信息,那么我们是否也可以查询一个network namespace的IP呢

发现只有一个环回接口l0,没有ip为127.0.0.1这个信息,而且状态为DOWN。然后,下面我们再学一个命令ip link

红圈是test1这个网络命名空间的ip link信息,下面是本机linux的ip link信息。

如何让一个ip link的接口状态UP起来

之前是DOWN状态,现在通过命令给UP起来,UP起来之后为什么显示UNKNOW,这里说明下。其实我们本地ip link后lo接口状态也是UNKNOW,因为这需要两端才能UP起来,目前只有一端。单个端口是没法UP起来,必须是一对。

 

上面我们只创建了一个网络命名空间test1,现在我这里再创建一个网络命名空间test2

然后,这里我们分别查询test1 和test2的ip link信息。

我们发现我们创建这两个网络命名空间没有ip4的地址,而且state的状态都是DOWN的。为了能够让两个网络命名空间能够通信,就必须给test1和test2分别设置IP地址,有了地址,我们就可以把state改成UP状态,两个网络命名空间才能进行通信。

 

接下的内容就是利用linux底层的网络命名空间的原理来解释前面一篇,两个容器能够通信的原因。这里我们把前面的两个容器,换成本篇的两个网络命名空间,两者通信效果图如下。

这两个网络命名空间是一对,上面两个绿色的长方形块,就是一个网络接口。这个网络接口是可以设置IP地址的,接下来就是介绍如何在一个网络命名空间创建一个网络接口,并设置IP地址的过程。

 

先添加一对网络接口

通过上面命名,添加了两个接口veth-test1和veth-test2,这两个网络接口都有MAC地址,但是还没有IP地址。接下来,我们分别要把veth-test1添加到网络命名空间test1,把veth-test2添加到网络命名空间test2.

 

把veth-test1添加到test1

第一个命令是把网络接口veth-test1添加到网络命名空间test1中,然后查询test1的ip link就发现,把我们linux外层的网络接口veth-test1添加到了test1下。下面我们再次查询外层linux的ip信息,看看编号为5的veth-test1还在不在。

发现外层的veth-test1不显示了。同理,我下面也把veth-test2添加到test2中。

外层接口4和接口5都不再显示,分别分给了test1和test2.到这里,我们分别在两个网络命名空间添加了网络接口,现在缺的就是设置IP地址,然后测试通信。

 

给test1和test2分配IP地址

然后分别查询test1和test2的IP地址

IP地址有了,我们就可以进行ping命名来测试下。对了,ping之前,我们需要把ip link中没有up的接口给up起来。

然后同样方法给test2里面的lo给up起来。

 

然后我们把每个网络命名空间里的网络接口veth-test1和veth-test2都给UP起来。

我们看到两个接口veth-test1和veth-test2已经UP,现在我们来使用ping命令

上面意思是在test1网络命名空间里进行ping test2的IP。

 

总结:上面这两个网络命名空间的配置过程,其实就是docker中两个容器的网络通信的原理。两者几乎是完全一样以这种方式实现的。本篇没有介绍docker的任何知识,而是通过linux中网络的命名空间的知识,来从底层网络进一步解释两个容器为什么能够通信的原因。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值