DNAT 이슈먼저 보기
여기서 10.0.0.2 아이피를 할당한 컨테이너가 DNAT 옵션을 사용하여 패킷을 포워딩 하고 있었으며 해당 컨테이너가 삭제될경우 아이피 회수 과정에서 해당 DNAT 설정 부분을 초기화 하는 것으로 확인되었다
결과
이를 통해 네트워크나 방화벽 정책까지 고려할 필요 없이 도커컨테이너 관리에만 집중하면 되므로 관련 프로그램을 개발할 때 참고하게 되었다
휴우, 만약 방화벽 정책까지 관래 대상이었다면 DNAT 에 욕박고 시작 했을 듯
자동으로 관리 되어서 고오오오오맙다 Docker !
DNAT
Docker에서 DNAT(Destination Network Address Translation)는 주로 포트 포워딩이나 특정 네트워크 트래픽을 컨테이너의 특정 포트로 리디렉션하는 데 사용된다. DNAT는 네트워크 패킷의 목적지 주소를 다른 주소로 변환하는 방식으로 작동하며, Docker 환경에서는 이를 통해 외부에서 컨테이너로의 접근을 가능하게 하는 중요한 메커니즘이다.
Docker는 내부적으로 iptables를 활용해 네트워크 트래픽을 관리한다. 컨테이너를 -p 옵션과 함께 실행하면 Docker는 자동으로 DNAT 규칙을 생성한다. 예를 들어, 호스트의 80번 포트를 컨테이너의 8080번 포트로 매핑하면, 외부에서 호스트의 80번 포트로 들어오는 트래픽은 컨테이너의 8080번 포트로 리디렉션된다.
DNAT 사용 예
다음은 Docker에서 DNAT를 사용해 포트 포워딩을 설정하는 예이다.
docker run -d -p 80:8080 nginx
이 명령은 nginx 컨테이너를 백그라운드에서 실행하고, 호스트의 80번 포트로 들어오는 모든 트래픽을 컨테이너의 8080번 포트로 포워딩한다. 이 과정에서 DNAT 규칙이 iptables에 자동으로 추가되어, 네트워크 트래픽의 목적지 주소가 조정된다.
DNAT의 중요성
접근성 향상: 외부 네트워크에서 컨테이너의 애플리케이션에 접근할 수 있게 해준다.
보안: 특정 포트만 외부에 노출시켜, 필요한 서비스에 대한 접근을 제한할 수 있다.
유연성: 다양한 포트 설정을 통해 여러 컨테이너를 동일한 호스트에서 운영할 수 있다.
Docker에서 DNAT 구현은 컨테이너화된 애플리케이션의 배포와 운영을 더 유연하고 접근하기 쉽게 만들어주며, 포트 포워딩을 통한 네트워크 트래픽 관리를 단순화한다.
'Tool > Docker' 카테고리의 다른 글
python 3.10 install on ubuntu 22.04 (1) | 2024.05.02 |
---|---|
Fix 'add-apt-repository command not found' Error on Ubuntu and Debian (0) | 2024.05.01 |
매번 까먹는 도커 이미지 백업 및 복구 (0) | 2024.04.07 |
[suricata |수리카타] 도커에 한방에 설치하기 (0) | 2024.04.06 |
Failed to start Docker Application Container Engine (0) | 2024.02.28 |