티스토리 뷰


도커 네트워크 Overview

도커 네트워크는 기본적으로 아래와 같은 기본 구성을 가지고 간다.
물리적 또는 가상화 기반의 이더넷 네트워크는 기본 리눅스 구성과 동일하다.


1. 물리적 이더넷 정보

일반적으로 운영체제에서 사용되는 NIC(Network Interface Card)를 사용하는 것은 동일하다.

[root@cent151 ~]# ifconfig ens192

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.72.78.151  netmask 255.255.255.128  broadcast 10.72.78.255
        inet6 fe80::250:56ff:fe07:8151  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:07:81:51  txqueuelen 1000  (Ethernet)
        RX packets 43217427  bytes 4261207431 (3.9 GiB)
        RX errors 0  dropped 1193  overruns 0  frame 0
        TX packets 19452716  bytes 1583784858 (1.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2. Iptables 

리눅스에 기본제공되고 있는 iptable은 Docker에서 외부 네트워크와 통신하는 데 중요한 역할을 한다.
특별하게 설정하지 않더라도,  Docker Pakage설치시 iptable에 자동으로 등록된다.
보통 iptable은 리눅스 방화벽의 역할을 수행하는 도구로, 주로 패킷 필터링과 NAT (Network Address Translate)의 역할을 수행한다.
아래는 리눅스의 iptable의 역할에 대한 3가지 주요 역할을 구분하였다.

실제 Packet은 아래와 같은 흐름으로 iptable을 통과하게 된다.
이러한 이유로 Packet filter와 NAT를 동작하게 되면, 트래픽 양이 많아 질수록 성능 저하를 야기 시킬 수도 있다.