3 つのサービス アーキテクチャと、3 つのサービスが接続された仮想ブリッジ ネットワークを構成します。コンテナーの 1 つが仮想ネットワーク内のすべてのトラフィックをリッスンできるようにしたい (プロミスキャス モード)。出来ますか?私はほとんどすべてを試しましたが、何も機能していないようです。
私が試したこと:
- コンテナに完全な権限を与える
- コンテナー eth0 インターフェイスを無差別に設定する (ifconfig eth0 promisc)
- コンテナー内のネットワーク マネージャーを再起動します。
- ホストマシンから無差別モードでコンテナーに相対的な veth を設定する
- パイプワーク スクリプトの macvlan 構成で、モードを「ブリッジ」から「パススルー」に変更します。
- docker-compose ファイルのネットワーク プロパティでコンテナーをゲートウェイとして設定する
上記の試みの多くは、コンテナーの 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"