Docker网络原理分析报告

Docker网络原理分析报告

ID:47391431

大小:178.05 KB

页数:10页

时间:2020-01-10

Docker网络原理分析报告_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《Docker网络原理分析报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、........Docker网络原理分析Docker使用linux的bridge和veth虚拟网络设备,以及networknamespace对网络进行虚拟化。Bridge看其名字是网桥,但实际上它的功能和交换机(switch)相似。Veth则是一对网络接口,像是用一条网线连接起来的两块网卡。阅读这篇文章前,应该先了解linux的bridge和veth的原理和用法,熟悉brctl,ip,iptables三个重要命令的使用方法。一、Docker经典网络架构:从上图可知,每个docker容器通过一对veth连入bridgebr0。Veth的一端在dockernetns中,通常改名为eth

2、0.专业学习资料.........;另一端在default或globalnetns中,通常命名为vethXXXXXXXX。上图中将其命名为vnic11和vnic21。Bridgebr0自带一个网络接口,相当于主机的一张网卡,它的名字也叫br0。上图相当于一个bridgebr0连接了三台机器:host,docker1,docker2,它们形成了一个独立的LAN。而主机的eth0则将主机连接到外部的交换机,和交换上的其它主机形成一个LAN。现在配置网络的IP:Host的eth0:将主机连接到外部交换机。Ip=192.168.1.181/24,主机的网关为192.168.1.1devet

3、h0。Host的br0网络接口:将主机连接到内部交换机br0。Ip=10.0.0.1/16。注意,当同时为主机的eth0和br0设置IP时,它俩不能处于同一网段。Docker1的eth0:将docker1连接到交换机br0。Ip=10.0.0.100/16。Docker1网关为10.0.0.1。Docker2的eth0:将docker2连接到交换机br0。Ip=10.0.0.200/16。Docker2网关为10.0.0.1。这样docker1,docker2以及host所形成的LAN就配置好了,它的网段为10.0.0.0/16。现在,docker1、docker2以及主机,这三台

4、设备可以正常通信了。那么,docker1和docker2如何才能访问host以外的世界呢?答案是NAT。也就是需要配置转发机制,在网络接口host:br0和host:eth0.专业学习资料.........之间转发数据包。配置转发机制首先要开启linux的网络转发功能,然后要在iptables中配置SNAT源地址转换。上面就是docker默认使用的网络模式(--net=bridge)。Dockerdaemon一启动,就会创建bridge,不过名字叫做docker0。并将网口docker0的IP配成了172.17.0.1/16。以后每启动一个容器,就自动为该容器创建vethpair,

5、将一端连到bridgedocker0,将另一端放入容器内,改名为eth0。容器内的eth0的ip配置为172.17.x.x/16,容器的网关配置为172.17.0.1。下面,我们用命令一步一步创建该网络,以加深对docker网络原理的理解。1.启动两个docker容器,不要让docker自动配置网络dockerrun–itd--name=docker1--net=nonetest/ubuntu:14/bin/bashdockerrun–itd--name=docker2--net=nonetest/ubuntu:14/bin/bash2.找到容器的netns,将其连接到/var/r

6、un/netns/下,以便为其配置网卡。先找到docker容器的PID:docker1Pid=$(dockerinspect–-format=’{{.State.Pid}}’docker1)docker2Pid=$(dockerinspect–-format=’{{.State.Pid}}’docker2)再将docker容器的netnamespace链接到/var/run/netns/:mkdir/var/run/netns#如果没有该目录,先创建。.专业学习资料.........ln–s/proc/$docker1Pid/ns/net/var/run/netns/docker1

7、nsln–s/proc/$docker1Pid/ns/net/var/run/netns/docker2ns现在,就可以查看一下这两个netnamespace中的连接情况:ipnetnsexecdocker1nsiplinklist1.创建网桥和虚拟网卡brctladdbrbr0iplinkaddvnic11typevethpeernamevnic12iplinkaddvnic21typevethpeernamevnic22iplinklist#查看所有link将vn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。