2016-10-19 2 views
2

은 3 개의 서비스 아키텍처와 3 개의 서비스가 연결된 가상 브리지 네트워크를 구성합니다. 컨테이너 중 하나가 가상 네트워크 내의 모든 트래픽 (무차별 모드)을들을 수 있기를 원합니다. 가능한가? 나는 거의 모든 것을 시도했지만 아무것도 작동하지 않는 것 같습니다. 나는 무엇을 시도했다Docker 컨테이너의 무차별 모드 네트워크 인터페이스

:

  • 무차별 (은 ifconfig eth0에의 PROMISC)에 컨테이너의 eth0 인터페이스
  • 컨테이너 내부의 네트워크 관리자를 다시 시작 설정 컨테이너
  • 에 모든 권한을 부여
  • 호스트 컴퓨터에서 무차별 모드로 컨테이너와 관련된 veth를 설정합니다.
  • maceworks에서 pipework의 "bridge"에서 "passthru"로 모드를 수정하십시오. 둘은 ifconfig 사실, 고정 표시기-작성 파일이 무차별 모드에 "생각"하는 컨테이너의 eth0를 인터페이스 위의 시도 결과

많은 사람들의 네트워크 속성에서 게이트웨이로 컨테이너를 설정

  • cript (호스트의) syslog는 그것이라고 말하지만, 컨테이너는 여전히 자신의 트래픽만을 볼 수 있습니다. 내가 도커 1.11 용기 내부의 기본 이미지를 사용하고

    우분투 14.04입니다 : 최신

    다음

    사전에 내 고정 표시기-작성 파일을 감사를 나열

    고정 표시기 - 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" 
    
  • 답변

    1

    컨테이너는 사실상 가상 스위치에 연결됩니다. (a) 컨테이너로의 유니 캐스트 트래픽 또는 (b) 도커 네트워크상의 브로드 캐스트/멀티 캐스트 트래픽 이외의 것을 결코 보지 못할 것입니다. 네트워크 게이트웨이로 설정 한 경우 다른 컨테이너에서 네트워크 외부의 대상으로 전송되는 트래픽도 볼 수 있습니다 (단, 동일한 네트워크의 다른 컨테이너 간에는 통신이 표시되지 않음).

    macvlan 대신 Linux 브리지를 사용하는 경우 tcpdump을 도커 브릿지에 연결하고 호스트에서 실행하거나 --net=host이있는 컨테이너에서 실행하여 도커 브리지에 연결할 수 있어야합니다.

    관련 문제