docker中bridge网络模式原理分析

同一宿主机同一桥接网卡下两个同一网段的容器之间的通信原理分析
                -----结合tcpdump和Wireshark分析

1实验环境的准备,docker run起两个符合要求的contanier
命令: [root@oxhtest ~]# docker run -itd --name centosdemo1 --privileged centos /bin/bash
[root@oxhtest ~]# docker run -itd --name centosdemo2 --privileged centos /bin/bash
命令截图:在这里插入图片描述
docker run --help
2分别进到两个容器中查看路由表
在这里插入图片描述
在这里插入图片描述

注释:去哪个网络地址走哪个路由可依据路由选择的最长匹配原则和交换机的工作原理思考

3查看两个容器的ip地址
在这里插入图片描述
在这里插入图片描述
4通信原理图
在这里插入图片描述

原理说明:1.此时172.17.0.4ping172.17.0.5是走的二层网络,并不会走三层,此时的docker0就相当于一个交换机,centosdemo1和centosdemo2就相当于下挂在交换机上的两台pc

5抓包验证
5.1首先在172.17.0.4上发起ping
在这里插入图片描述

5.2在centosdemo1上抓icmp的ping包查看源地址和目的地址情况
在这里插入图片描述
5.2在宿主机上的eth0和docker0上分别抓包
5.2.1在宿主机的eth0上抓icmp的ping包且源地址为172.17.0.4(按原理应该是抓不到任何包的)
在这里插入图片描述
5.2.2在宿主机的docker0上抓icmp的ping包且源地址为172.17.0.4(按原理应该是可以抓到包的)
在这里插入图片描述
5.3在centosdemo2上抓icmp的ping包查看源地址和目的地址情况

在这里插入图片描述
6结论:在整个过程中包并没有被做任何的修改,同一宿主机同一桥接网卡下两个同一网段的容器之间是做的二层协议,此时的docker0就相当于一个交换机,centosdemo1和centosdemo2就相当于下挂在交换机上的两台pc

 容器可以和外界通信原理的分析
                  --以ping通信为例子结合抓包分析

1实验环境准备我们已上面的centosdemo1为实验对象,ping另一台云主机(公网地址106.53.163.63)为实验环境
2.原理分析
在这里插入图片描述
分析:此时在从宿主机的docker0到宿主机的eth0的过程中会有一个源地址的转换,装换依据宿主机上的iptaples规则
在这里插入图片描述
整个通信过程如下
在centosdemo1上发起ping,此时ping包通过容器里的eth0与外界通信,容器经过查看路由表发现目标地址是106.53.163.63此时会选择走第一条路由,也就是走自己的网关172.17.0.1(docker0)与外界通信。
在这里插入图片描述
数据包到达docker0之后,也就是到达宿主机上时先看iptanles规则中的路由前规则,因为此时iptables没有路由前规则,随后查路由表,决定走哪个路由,选好路由规则后再查iptables的路由后规程
iptables没有路由前规则的截图,接下来会查路由表做哪条路由
在这里插入图片描述
依据数据包的源和目标ip选择以下路由,决定把数据包发给eth0

在这里插入图片描述

决定把数据包发给宿主机的eth0后做源地址装换(这个由路由后的iptables规则决定)
规则解释:所有源地址是172.17.0.0/16且目标地址不是docker0的数据包做源地址装换
在这里插入图片描述

3结合原理预测抓包结果
抓包网卡 源地址 目标地址
容器内的eth0 172.17.0.4 106.52.163.63
宿主机的docker0 172.17.0.4 106.52.163.63
宿主机的eth0 172.21.32.5(宿主机的eth0网卡地址) 106.52.163.63
目标主机的eth0 49.232.53.135(宿主机公网地址) 172.16.0.14(目标主机内网地址)

4抓包验证
4.1centosdemo1容器内发起ping
在这里插入图片描述
4.2容器内eth0抓包验证源地址目标地址
在这里插入图片描述
4.3宿主机docker0上抓包验证源地址目标地址
在这里插入图片描述
4.4宿主机eth0上抓包验证源地址目标地址(如果宿主机eth0上的数据包比较多的话,多写点tcpdump的过滤规则精确抓包有助于分析)
在这里插入图片描述
4.5目标主机eth0抓包验证源地址目标地址
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值