Infra & Devops/Docker

[Docker] 도커 네트워크 유형 비교 (feat. macvlan, promiscuous mode)

겸둥이xz 2021. 9. 17. 00:15
반응형
Driver 기본 생성 특징
bridge bridge Docker 내부에 네트워크를 구성하고, 호스트의 인터페이스를 사용하여 외부와 연결 가능한 구성
호스트의 기본  bridge 인터페이스 : docker0
컨테이너의 기본 bridge 인터페이스 : veth...
필요 시 기본 bridge 네트워크 이외의 네트워크를 새롭게 생성하여 사용 가능
host host 호스트의 네트워크 인터페이스 정보를 그대로 사용
호스트의 주소를 통해 컨테이너에서 사용중인 포트로 접근 가능
포트 충돌 문제나, 네트워크 격리가 해제되는 등의 문제로 사용이 권장되지 않음
null none 네트워크 구성이 필요하지 않은 컨테이너에서 사용
macvlan 없음 호스트의 네트워크 인터페이스와 같은 네트워크에 연결시키는 방식

 

macvlan

  • 컨테이너의 MAC 주소를 사용하여 호스트가 사용 중인 네트워크에 연결하는 방식
  • Docker daemon이 트래픽을 컨테이너의 MAC 주소로 라우팅
  • 컨테이너가 Docker내부의 가상 bridge가 아닌 실제 네트워크에 직접 연결하여야 할 때 사용
  • macvlan이 직접 연결할 네트워크에 연결되어 있는 호스트의 NIC에 Promiscuous mode 가 설정되어야 함
  • Promiscuous mode가 설정되어 있지 않을 경우, 컨테이너의 MAC 주소가 목적지로 되어 있는 패킷이 Docker 호스트의 인터페이스로 전달되더라도 패킷을 컨테이너로 전달하지 않아 통신이 정상적으로 이루어지지 않음

 

Promiscuous mode

  • 네트워크 인터페이스는 패킷 도달 시 패킷의 2 계층 목적지 주소를 확인
  • 2 계층 목적지 주소가 해당 인터페이스의 주소가 맞거나, 브로드캐스트 주소 (FF:FF:FF:FF:FF:FF) 일 경우는 패킷을 내부로 전달
  • 2 계층 목적지 주소가 해당 인터페이스의 주소나 브로드캐스트 주소가 아닐 경우 해당 패킷을 폐기함
  • Promiscuous  mode는 패킷의 목적지 주소가 폐기조건에 해당하더라도 패킷을 내부로 전달하는 방식
  • 불필요한 패킷이 내부로 전달될 수 있으나, 패킷 모니터링 등 특정 목적을 위하여 사용

 

반응형