docker网段冲突导致主机网络异常处理

最近公司服务器网络出现了问题,现象就是有台主机不能访问某个网段的机器,无法ping通。原因是在启动docker容器的时候突然断开连接,然后就连接不上了。服务器网段是100.10.x.x,被访问机器是172.17.x.x。

后来琢磨可能是docker网桥导致主机路由表异常,定位了一下,果然如此,那么解决方法就很简单了。大概解释一下,docker安装以后会在主机上创建一个虚拟网卡-docker0,而我们启动的容器host网络以外,其他的都是通过docker0这个虚拟网卡经过物理网卡与外部通信的。这个虚拟网卡本身会有一个网段,一般是172.17.x.x,所以问题就明确了,因为docker0占用了这个网段,导致主机无法访问真是的网段机器。只要把docker0绑定的网段修改一下,就可以了。解决步骤如下:

查看路由信息

查看主机路由信息

route -n

可以看到docker0占用的网段
docker网段冲突导致主机网络异常处理_第1张图片

也可以直接查看docker0占用的网段

ifconfig docker0

docker网段冲突导致主机网络异常处理_第2张图片

修改docker0默认网段

1. 停止docker服务

systemctl stop docker

2. 删除原有网桥

ip link del docker0 down

3. 修改docker网段

vim /etc/docker/daemon.json

{
  "bip":"192.168.100.1/24"
}

4. 重启docker服务

systemctl restart docker

5. 通过ifconfig 查看docker网段是否已经变更

ifconfig docker0

参考文档

https://cloud.tencent.com/dev...
https://blog.csdn.net/penetra...
https://blog.csdn.net/q955488...

本文由mdnice多平台发布

你可能感兴趣的:(程序员)