+-
docker-iptables在容器中的macvlan通信上不起作用
我有一台主机,其接口为eth0,IP为10.0.10.10/24.我启动docker,添加一个容器,没有网络.然后,我在eth0上创建一个macvlan设备,为其分配IP 10.0.10.20/24,并将其放入容器中.

主机和容器现在都具有完全的网络访问权限.

然后,我在主机上创建一个iptables规则,以丢弃往返于容器IP 10.0.10.20的所有流量.规则不起作用,流量通过.

当然,如果我从容器中执行此操作(ip netns exec $PID iptables …或通过赋予容器NET_ADMIN功能),则它可以工作.

基础主机的iptables规则不应该过滤流量吗?

最佳答案
答案是:您无法做到.使用网桥时,流量会流入主机并流出,因此会碰到主机的ip堆栈.使用macvlan时,唯一的IP堆栈是容器中的IP堆栈,因此永远不会调用主机上的iptables规则.

唯一的方法是更改​​容器内的iptables规则.

如果您不想授予容器访问权限,例如如果要控制容器,请从主机本身使用ip netns exec …,它将控制容器中的iptables规则,而不给容器本身提供控制权.

我写了一个脚本来做到这一点.它可在https://github.com/deitch/ctables获得,并获得MIT许可.

点击查看更多相关文章

转载注明原文:docker-iptables在容器中的macvlan通信上不起作用 - 乐贴网