ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도커 다섯번째
    프로그래밍/Docker 2024. 1. 14. 20:04

     

     

     

    도커 네트워크

     

    도커네트워크는 커널의 네트워크 스택의 하위,  상위에는 네트워크 드라이버를 생성한다.

     

    도커 네트워크 = 리눅스 네트워크라고 볼 수 .있다

     

     

    도커 네트워크 아키텍처는  CNM(Container Newworking Model) 이라하는 인터페이스 위에 구축한다.

    그래서 OS 및 인프라에 구애받지 않고 구축할 수 있다.

     

     

    CNM (Container Newworking Model)

     

     

    CNM은 립네트워크를 통해 모델이 구현된것.

    도커 엔진을 통해 립네트워크를 관리하며,  

    도커네트워크는 브리지 네트워크이므로 도커엔진을 통해 관리가 된다.

     

     


     

    리눅스 네트워킹 빌딩 블록 

    리눅스 브리지

    네트워크 네임스페이스

    veth pair 및 iptables

     

    복잡한 네트워크 정책을 위한 전달규칙,  네트워크 분할 및 관리도구 제공

     

     

    리눅스 브리지

    리눅스 브리지는 커널 내부의 물리적 스위치를 가상으로 구현한 OSI 2계층 디바이스이다.

    트래픽을 검사하여 동적으로 학습되는 MAC 주소를 기반으로 트래픽을 전달.

     

    네트워크 네임스페이스

    - 커널에 격리된 네트워크 스택으로 자체 인터페이스, 라우트 및 방화벽 규칙 보유.

    - 컨테이너와 리눅스의 보안적 측면으로 컨테이너를 격리하는데 사용.(자체적인 독립성을 갖는 컨테이너 생성)

    - 네트워크 네임스페이스는 도커 네트워크를 통해 구성된 경우가 아니면 동일한 호스트의 두 컨테이너가 서로 통신하거나

     호스트 자체와 통신할 수 없음을 보장

     

    veth (virtual ethernet device)

    - 두 네트워크 네임스페이스 간 연결선으로 동작하는 리눅스 네트워킹 인터페이스 (eth0와 도커호스트 사이를 연결)

    - veth는 각 네임스페이스에 단일 인터페이스가 있는 전이중 링크 (full duplex link)

    - 한 인터페이스의 트래픽을 다른 인터페이스로 전달

    - 도커 네트워크를 만들 때 도커 네트워크 드라이버는 veth를 사용하여 네임스페이스 간에 명시적 연결을 제공

    - eth0는 veth~~ 의 숫자보다 하나 작은 값을 가진다.  (ex.   240: eth0@if241)

     

    컨테이너는 다이렉트로 브리지와 연결할 수 없음.  그래서 터널역할을 하는 터널링 네트워크 버츄얼이더넷(veth)를 사용

     

     

     

     

    veth는 OSI 2계층 서비스로 컨테이너 내부에

    제공되는 네트워크인터페이스 eth0와

    한 쌍(pair)로 제공되어 도커0와 

    가상의 터널링 네트워크를 제공

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    docker-proxy

    커널이 아닌 사용자 환경에서 수행되기때문에 커널과 상관없이

    호스트가 받은 패킷을 그대로 컨테이너의 포트로 전달.

    포트를 외부로 노출하도록 설정하게 되면, 도커 호스트에는 도커-프록시  프로세스가 자동생성됨

     

     

    Overlay network

    - 서로 다른 Host(node)에서 서비스되는 컨테이너를 네트워크로 연결하는데 사용되고,  이런 네트워크 생성을 위해

     오버레이 네트워크 드라이버를 사용한다.

    - 네트워크로 연결된 여러 도커 호스트 안에 있는 도커 대몬 간의 통신을 관리하는 가상 네트워크

    - 컨테이너는 오버레이 네트워크의 서브넷에 해당하는 IP 대역을 할당받고, 받은 IP를 통해 상호간의 내부통신을 수행

    - 오버레이 네트워크에 포함된 모든 컨테이너들은 서로 다른 도커 호스트에 있는 컨테이너들과   같은 서버에 있는 것처럼

     통신이 가능해진다.

     

     

     

     

     

     

    '프로그래밍 > Docker' 카테고리의 다른 글

    도커 일곱번째  (0) 2024.01.15
    도커 여섯번째  (1) 2024.01.15
    도커 네번째  (1) 2024.01.14
    도커 세번째  (0) 2024.01.04
    도커 두번째  (1) 2024.01.02
Designed by Tistory.