Featured image of post 容器网络影响宿主机入网问题排查

容器网络影响宿主机入网问题排查

容器网络影响宿主机入网问题排查

问题描述

发现172.27.0.0/16,172.26.0.0/16 网段的服务无法访问宿主机的服务

问题排查

网卡配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
docker network ls
NETWORK ID     NAME                      DRIVER    SCOPE
8eacdcbf22d7   7b-full_default           bridge    local
f22af6f77037   bridge                    bridge    local
4a56201be716   host                      host      local
6e36d25cdbb0   llama2-13b-lora_default   bridge    local
fb2839792d18   llama3-8b_lora_default    bridge    local
d1f916892b02   none                      null      local
2c9c2578ecce   tgi_default               bridge    local
446845acbad5   v2-9b_default             bridge    local
d1301d605f3c   v2-27b-it_default         bridge    local
c3d523d51ee4   v3-8b_default             bridge    local
1d3cf7bd9665   v4-9b_default             bridge    local
59aecf59ca81   v31-8b_default            bridge    local
42cca879c18f   webui-docker_default      bridge    local

发现1d3cf7bd9665、1d3cf7bd9665占用了172.27.0.0/16,172.26.0.0/16 网段,导致路由冲突。Linux 内核的路由机制会优先选择 最匹配的路由,它会覆盖默认路由,流量会被错误的流向docker。

解决方法

修改docker 配置,不使用冲突网段

1
2
3
4
5
6
7
8
9
{
  "bip": "192.168.100.1/24",
  "default-address-pools": [
    {
      "base": "192.168.200.0/20",
      "size": 24
    }
  ]
}

创建容器时使用特定网络

docker network create –subnet=xx.xx.xx.xx/24 my_custom_network

如果必须保留冲突网段,修改宿主机路由,让外部网络优先

1
2
ip route del 172.27.0.0/16
ip route add 172.27.0.0/16 via <外部网关> metric 100

Powered by Hugo | Theme by Stack
Deployed with GitHub Actions 🚀
使用 Hugo 构建
主题 StackJimmy 设计