docker容器虚拟化网络概述

2020-07-05  本文已影响0人  麟之趾a

docker虚拟化概述

linux 可以虚拟二层设备和三层设备

SDN: 软件定义的网络

C1和C3通信,且C1和C3在不同的网段

image.png

1.开启物理机的内核转发,使之通信
2.在模拟一个名称空间,开启内核转发,并且模拟2对网卡,分别插在s1和名称空间A1,s2和名称空间上A1


image.png

C1和C5通信,C1和C5在不同的物理机上

image.png

1.C1和C5,桥接在物理网卡。物理网卡当交换机使用,再使用软件定义出一个一样的物理网卡。如果有大量的容器,很容易产生广播风暴
2.C1出去用SNAT,进C5用DNAT。C5出去SNAT,进C1DNAT。需要做两次NAT,效率低下
3.overlay network 叠加网络
让C1和C5在同一网络内,C1和C5通信的源地址和目的地址不变,在此报文上,封装上物理机的源地址和目的物理机的地址。物理机1发到物理机2,发现地址是C5的IP,进行转发。C1和C5通信完成

docker网络

docker network ls
bridge: nat桥
yum -y install bridge-utils
brctl show  查看桥接的网卡
iptables -t nat -vnL  查看NAT规则
image.png

web1和web2进行通信,除了NAT,桥接和隧道的其他方式


image.png

容器是名称空间的隔离,我们可以使两个容器,共用一个NET,IPC,和UTS。及两个容器之间的进程进行通信,就可以用socket
我们也可以让容器,直接使用物理机的UTS,NET,和IPC。的名称空间,我们称之为容器的网络第二种模式host

docker网络的第三种格式none,意味着此容器没有网络是单机模式,只有lo接口。无网卡

docker网络的四种模式

1.none,容器中只有lo接口
2.Nat 模式,桥接到docker0桥上
3.联盟式网络,让两个容器用相同的Net,UTS,IPC名称空间
4.开放式网络,容器共用物理机的net,uts,ipc名称空间
如果创建容器时没有指定,默认使用bridge网络,NAT桥
docker container run --network [指定网络类型]
docker network inspect bridge查看网络的详细信息

手动操作网络名称空间

[root@ceshi ~]# ip netns help
Usage: ip netns list
       ip netns add NAME
       ip netns set NAME NETNSID
       ip [-all] netns delete [NAME]
       ip netns identify [PID]
       ip netns pids NAME
       ip [-all] netns exec [NAME] cmd ...
       ip netns monitor
       ip netns list-id
#创建一个r1的网络名称空间
ip netns add  r1
ip netns exec r1 ifconfig -a  查看r1的网卡
[root@ceshi ~]# ip netns exec r1 ifconfig -a
lo: flags=8<LOOPBACK>  mtu 65536
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ip link help 查看帮助,创建一对网卡,分别插在r1和物理机上
ip link add  name veth1 type veth peer name veth1.2 // peer name 指明另一对网卡的名字
ip link set dev veth1.2 netns r1    //把veth1.2插在r1上,使用set参数把veth1.2转移到r1的名称空间内
ip netns exec r1 ifconfig -a  查看网卡
ip netns exec r1 ip link set dev veth1.2 name eth0 修改r1名称空间网卡的名字
ip netns exec r1 ifconfig eth0 192.168.1.1/24  设置r1网络名称空间网卡的地址
ifconfig veth 192.168.1.2/24
ping 192.168.1.1 两者是可以通信的
 把两个接口,配上IP地址,进行激活,物理机和r1是可以通信的。两者的IP地址,要在同一网段上
上一篇 下一篇

猜你喜欢

热点阅读