티스토리 뷰
도커 네트워크 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를 동작하게 되면, 트래픽 양이 많아 질수록 성능 저하를 야기 시킬 수도 있다.