我正在玩ipvlan_mode=l3,我学习了关于码头github回购的教程。
https://gist.github.com/nerdalert/28168b016112b7c13040#ipvlan-l3-mode-example-usage
在运行这些命令之后,我的主机和docker无法相互切换。
然而,两个在不同子网上使用相同父面的容器可以进行ping。
命令:
docker network create -d ipvlan \
--subnet=192.168.214.0/24 \
--subnet=10.1.214.0/24 \
-o ipvlan_mode=l3 ipnet210
# Test 192.168.214.0/24 connectivity
$ docker run --net=ipnet210 --ip=192.168.214.10 -itd alpine /bin/sh
$ docker run --net=ipnet210 --ip=10.1.214.10 -itd alpine /bin/sh
# Test L3 connectivity from 10.1.214.0/24 to 192.168.212.0/24
$ docker run --net=ipnet210 --ip=192.168.214.9 -it --rm alpine ping -c 2 10.1.214.10
# Test L3 connectivity from 192.168.212.0/24 to 10.1.214.0/24
$ docker run --net=ipnet210 --ip=10.1.214.9 -it --rm alpine ping -c 2 192.168.214.10我遗漏了什么吗?
提前感谢
发布于 2022-02-26 01:02:10
您需要在主机或上游路由器上设置静态路由,以获得文档中提到的主机和坞子网之间的连接,本章末尾:
为了使来自远程码头主机或容器的容器能够平移远程主机,远程主机或介于两者之间的物理网络需要有指向容器的Docker主机eth接口的主机IP地址的路由。
例如(引用图片),您必须创建一条路由,将所有通信量指向子网172.16.20.0/24到网关192.168.50.10/24。
发布于 2022-01-27 16:32:14
我在这里读到关于ipvlan l3驱动程序的文章后发现了这个问题
我在ubuntu 18.04和ubuntu 20.04上看到了同样的行为,它们都有:
5.4.0-96-generic20.10.12我想正是这样的设计使得主机甚至看不到那些带有ip r的新网络
我很想知道容器的外部连接应该如何工作,在docs (上面的链接)中没有解释,只是简单的图片,根本没有任何details...not帮助。
https://stackoverflow.com/questions/50258150
复制相似问题