IPvlan L3网络中容器无法ping通Docker宿主机,MikroTik防火墙标记连接状态为invalid的原因咨询
IPvlan L3网络中容器无法ping通Docker宿主机,MikroTik防火墙标记连接状态为invalid的原因咨询
大家好,我遇到了一个关于IPvlan L3网络和MikroTik防火墙的问题,想请教一下各位大佬:
环境配置情况
MikroTik静态路由配置:
- 目的地址:10.21.0.0/16
- 网关:10.9.0.3(即Docker宿主机地址)
Docker宿主机上创建IPvlan网络:
docker network create -d ipvlan --subnet=10.21.0.0/16 --gateway=10.9.0.1 \ -o ipvlan_mode=l3 -o parent=ens18 ipvlan
- 容器内的测试操作:
我创建了一个Alpine容器并进入其中做ping测试,命令如下:
docker run -it --rm --network ipvlan alpine /bin/sh
Ping测试结果
- ✅
google.com:连通正常 - ✅
10.9.0.1(MikroTik路由器):连通正常 - ✅
10.9.0.2(同网段内的其他电脑):连通正常 - ✅
10.21.0.2(同IPvlan网络内的其他容器):连通正常 - ❌
10.9.0.3(Docker宿主机):无法连通
防火墙规则相关
MikroTik上有一条转发链的防火墙规则:
- 链(chain):forward
- 连接状态(connection state):invalid
- 动作(action):drop
我测试发现,要么禁用这条丢弃invalid状态连接的规则,要么新增一条规则——允许源地址10.9.0.3、目的地址10.21.0.0/16的invalid状态连接,就能让容器ping通Docker宿主机的操作正常工作。
核心疑问
现在我想弄明白:为什么容器ping宿主机的连接会被MikroTik标记为invalid状态呢?
备注:内容来源于stack exchange,提问作者TheFrost
相关产品推荐
相关产品推荐

