登山则情满于山,观海则意溢于海。这篇文章主要讲述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网桥信息:
##客户端恢复与服务器通信:
推荐阅读
- 解析Redis操作五大数据类型常用命令
- RENIX操作之XML报文模板说明——网络测试仪实操
- Spring | Spring5学习笔记#yyds干货盘点#
- #yyds干货盘点# 30个类手写Spring核心原理之动态数据源切换
- #私藏项目实操分享# 你了解shiro吗(手把手教你集成shiro)
- Veeam Backup for Red Hat Virtualization
- 快速入门vue,含实战案例,“建议收藏”,用到省的百度了#yyds干货盘点#
- IDEA对Docker容器进行打包构建的两种方式
- 「自我检验」熬夜总结50个Vue知识点,全都会你就是神!!!