Aen*_*non 7 networking containers docker promiscuous-mode
组成一个 3 服务架构和一个虚拟桥接网络,三个服务都附加在该网络上。我希望其中一个容器能够监听虚拟网络中的所有流量(混杂模式)。是否可以?我几乎尝试了所有方法,但似乎没有任何效果。
我试过的:
上述许多尝试导致容器的 eth0 接口“认为”它处于混杂模式,事实上 ifconfig 和 syslog(来自主机)都说它是,但容器仍然只能看到自己的流量。
我使用的是 Docker 1.11,容器内的基本映像是 Ubuntu 14.04:latest
下面列出了我的 docker-compose 文件提前致谢
docker-compose.yml
version: '2'
networks:
snort_net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.19.0.0/24
gateway: 172.19.0.3
services:
mysql:
build:
context: .
dockerfile: MySql/MySqlFile
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
networks:
snort_net:
ipv4_address: 172.19.0.2
snort:
build:
context: .
dockerfile: Snort/SnortFile
depends_on:
- snorby
env_file:
- Snort/snort_variables.env
networks:
snort_net:
ipv4_address: 172.19.0.3
expose:
- "80"
- "21"
ports:
- "10100:80"
- "10101:80/udp"
- "21:21"
cap_add:
- NET_ADMIN
privileged: true
snorby:
build:
context: .
dockerfile: Snorby/SnorbyFile
depends_on:
- mysql
env_file:
- Snorby/snorby_variables.env
networks:
snort_net:
ipv4_address: 172.19.0.4
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud)
容器有效地附加到虚拟交换机;除了 (a) 容器的单播流量或 (b) docker 网络上的广播/多播流量之外,它永远不会看到任何其他内容。如果将其设置为网络网关,它还会看到从其他容器发送到网络外部目的地的任何流量(但仍然看不到同一网络上其他容器之间的通信)。
如果您使用的是 Linux 桥接器而不是 macvlan,则应该能够连接tcpdump到 docker 桥接器并获得您想要的内容(通过在主机上运行它,或者通过在容器内运行它--net=host)。
| 归档时间: |
|
| 查看次数: |
10042 次 |
| 最近记录: |