docker虚拟化概述
linux 可以虚拟二层设备和三层设备
SDN: 软件定义的网络
C1和C3通信,且C1和C3在不同的网段
![](https://img.haomeiwen.com/i18572346/b7f6097b8833c591.png)
1.开启物理机的内核转发,使之通信
2.在模拟一个名称空间,开启内核转发,并且模拟2对网卡,分别插在s1和名称空间A1,s2和名称空间上A1
image.png
C1和C5通信,C1和C5在不同的物理机上
![](https://img.haomeiwen.com/i18572346/77454048f3f44c1d.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规则
![](https://img.haomeiwen.com/i18572346/9ba7be3c94d0c989.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地址,要在同一网段上
网友评论