docker之修改docker0网桥默认网段

登山则情满于山,观海则意溢于海。这篇文章主要讲述docker之修改docker0网桥默认网段相关的知识,希望能为你提供帮助。
1, 背景:1)问题描述:
centos7服务器上安装完docker及k8s后,且业务pod全部上线运行,客户通过windows客户端访问我们服务器ip,反馈网络连接不上问题。


【docker之修改docker0网桥默认网段】2)问题排查:
连接客户端ip为(172.17.0.222),初步排查,客户端无法ping通我方服务器,且经网络工程师排查反馈,双方路由配置没有问题,且没有添加黑名单操作,防火墙,iptables策略均已关闭。

如上图所示,通过在服务器上与客户端通信,每次返回的ip为172.17.0.1也就是docker的虚拟地址,每次出去的路由走的都是docker0网桥,通过后续定位到原因有可能为docker0虚拟机网卡影响造成。


3)问题复现:
关闭docker0网络:客户端连接正常;
开启docker0网络:客户连接异常;

###操作命令:
ifconfig docker0 down//关闭
ifconfig docker0up//开启
brctl delbr docker0//删除


2,docker0网络详解当docker server启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。接下来就要为容器分配IP了,docker会从RFC1918所定义的私有IP网段中,选择一个和宿主机不同的IP地址和子网分配给docker0,连接到docker0的容器就从这个子网中选择一个未占用的IP使用。如一般Docker会使用172.17.0.0/16这个网段(默认网段),并将172.17.0.1/16分配给docker0网桥(在主机上使用ifconfig命令是可以看到docker0的,可以认为它是网桥的管理接口,在宿主机上作为一块虚拟网卡使用);
#默认docker0的网桥信息:
?
3,线上问题解决原因定位到为客户端主机网段与docker默认网段冲突造成,修改docker0网桥默认网段解决此次问题:
1)修改文件  /etc/docker/daemon.json 添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]
?
2)重启docker服务:
systemctl daemon-reload
systemctl restart docker

3)查看修改后的docker0网桥信息:

##客户端恢复与服务器通信:




    推荐阅读