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는 패킷의 목적지 주소가 폐기조건에 해당하더라도 패킷을 내부로 전달하는 방식
- 불필요한 패킷이 내부로 전달될 수 있으나, 패킷 모니터링 등 특정 목적을 위하여 사용
반응형