리눅스 네트워크 네임스페이스란?

<aside> ❗ 실습이 필요할 경우, 가상머신을 사용할 것을 권장합니다. 여기서는 Ubuntu 20.04를 사용하였습니다.

</aside>

<aside> ❗ 아래 실습 자료는 ‘참고자료’ 섹션에서 소개하는 44bits 블로그의 예제를 따릅니다.

</aside>

리눅스 네트워크 네임스페이스 실습

       Host
       +--------------------------------------------------+
       |                                 +--------------+ |
   [lo]+                             [lo]+              | |
       |                                 |    [Nginx]   | |
 [eth0]+                +-------->[veth1]+              | |
       |                |                |  direct_netns| |
[veth0]+<---------------+                +--------------+ |
       |                                                  |
       |                                   Root Namespace |
       +--------------------------------------------------+

1. 네트워크 디바이스 확인

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 02:18:ce:0d:00:12 brd ff:ff:ff:ff:ff:ff

2. 가상 인터페이스 만들기

# veth0과 veth1을 만든다.
$ sudo ip link add veth0 type veth peer name veth1

# 만들어진 가상 네트워크 인터페이스 확인.
$ ip -br link
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0             UP             02:18:ce:0d:00:12 <BROADCAST,MULTICAST,UP,LOWER_UP>
veth1@veth0      DOWN           be:d4:d8:12:d3:e8 <BROADCAST,MULTICAST,M-DOWN>
veth0@veth1      DOWN           5a:ce:e1:3b:6a:17 <BROADCAST,MULTICAST,M-DOWN>

3. 새로운 네트워크 네임스페이스 만들기