阻止流向其中一个 docker 服务任务(容器)的流量



有 3 个不同的虚拟机,其中 RabbitMQ服务以全局模式部署。 我的目标是阻止流向其中一个RabbitMQ服务容器的流量。 尝试使用 iptables 重现 RabbitMQ 网络分区场景

通过添加 iptables 链

iptables -A DOCKER-INGRESS -d 10.255.0.33 -p tcp --dport amqp -m state --state ESTABLISHED,RELATED -j DROP

在运行RabbitMQ服务任务容器的 2 个 docker 节点上。10.255.0.33是从docker service inspect输出中获取的来自群覆盖网络的容器 IP。 但是,流量仍然通过,并且不会重现网络分区。 如何正确阻止流向服务容器的流量?

假设您要阻止来自/流向由 container_id 标识的容器的流量

步骤 2-3 应在容器内运行。

1(进入容器:

docker exec -it --privileged --env http_proxy=proxy_ip container_id bash

如果您可以直接连接到 Web 而不是在某些(公司(代理后面,则不需要--env http_proxy=proxy_ip

2( 此步骤假设底层映像操作系统是基于Debian的。如果它基于 RED-HAT,请使用yum软件包安装程序等效命令。如果是其他操作系统系列,请使用相应的包安装程序命令。

安装网络表

apt-get update && apt-get install -y iptables

3( 阻止进出虚拟 IP 为 10.0.0.183 的容器的流量

iptables -A OUTPUT -d 10.0.0.183 -j DROP
iptables -A INPUT -d 10.0.0.183 -j DROP

相关内容

最新更新