Docker系列(六):Docker网络机制(下)

版权声明:本文为作者原创,转载请注明出处,联系qq:32248827 https://blog.csdn.net/dataiyangu/article/details/85262206

Linux Namespace详解

在这里插入图片描述
namespace:是一个空间,空间里可以放进程,文件系统,账号,网络等,某个资源被放到namespace之后
别人就看不到他了。
可以看到有两个namespace下两个相同名字的进程0,并不冲突,每个namespace是独立的隔离的,相当于一个linux系统
容器就相当于一个namespace,集成网络,文件等资源。
在这里插入图片描述
在这里插入图片描述

点对点模式

在这里插入图片描述
veth pair是用于不同network namespace间 进行通信的方式,veth pair将一个network namespace数据发往另一个network namespace的veth。

交换机模式

在这里插入图片描述
Linux Bridge可以实现类似交换机的工作模式, 将多个不同Namespace上的网卡连通
linuxbrige只是mac地址交换,linux Brige有ip地址,所以可以做路由转发。

举例

在这里插入图片描述
默认情况下,创建一个docker容器,会自动创建一个docker0的网桥,可以看到interface 是没有的,说明bridge是空的没有挂载端口,当你启动一个容器后,bridge就会出现一个端口。
每建立一个容器就会出现一个veth pair对,veth pair一端挂载在docker0上,一端挂载在容器的网卡上
docker中的namespace和pid是一样的,进程的编号就是namespace名称,这里的进程指的是containner本身的pid,不是containert里面应用的pid。
在这里插入图片描述
在这里插入图片描述

OVS+Docker

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上图是不容网段的,相同网段的可以通过二层,不同网段的必须通过交换机,

安装ovs

vi /etc/selinux/config SELINUX=disabled
重启
yum install openvswitch-2.4.0-1.x86_64.rpm
[root@docker128 ~]# service openvswitch restart Restarting openvswitch (via systemctl):[ OK ]
[root@docker128 ~]# service openvswitch status
ovsdb-server is running with pid 2429
ovs-vswitchd is running with pid 2439
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明了,gre是在物理网络上进行传播的,并不是在brg里面,只是在物理网络里面进行了二次封装,所以走的还是eth0.

猜你喜欢

转载自blog.csdn.net/dataiyangu/article/details/85262206