Skip to content

Veth

Virtual Ethernet Device

DESCRIPTION

veth 장치는 가상 이더넷 장치입니다. 이들은 네트워크 네임스페이스 사이에서 터널 역할을 하여 다른 네임스페이스에 있는 물리적 네트워크 장치에 대한 브리지를 생성할 수 있지만 독립형 네트워크 장치로도 사용할 수 있습니다.

veth(버추얼 이더넷 인터페이스)는?

veth는 리눅스의 버추얼 이더넷 인터페이스를 의미합니다. veth는 쌍으로 만들어지며 네트워크 네임스페이스들을 터널로서 연결하거나, 물리 디바이스와 다른 네트워크 네임스페이스의 장비를 연결하는 용도로 사용할 수 있습니다.

리눅스에서는 ip를 사용해 veth 타입의 가상 네트워크 장비를 생성할 수 있습니다. veth는 쌍으로 만들어지므로, <veth0_name>과 <veth1_name>을 적절한 이름으로 치환해줍니다.

$ ip link add <veth0_name> type veth peer name <veth1_name>

veth0과 veth1 쌍으로 된 veth를 생성하는 경우 아래 명령어를 실행합니다.

$ ip link add veth0 type veth peer name veth1

veth 타입의 장비는 기본적으로 리눅스의 디폴트 네임스페이스에 속하게 되며, 활성화되지 않은 상태로 생성됩니다. veth0과 veth1은 직접 연결되어있기 때문에 활성화 상태는 항상 동시에 변경됩니다.

veth0과 veth1이 추가된 구성도는 다음과 같습니다.

Veth0_-_veth1.png

ip link 명령어로 현재 네트워크 네임스페이스(디폴트)에 veth0과 veth1이 추가된 것을 확인할 수 있습니다. @ 다음의 내용은 이름이 아니라 연결된 목적지를 의미합니다.

$ ip -br link
...
veth1@veth0      DOWN           18:b9:5a:bb:f0:4a <BROADCAST,MULTICAST,M-DOWN>
veth0@veth1      DOWN           39:e0:cf:aa:1b:2c <BROADCAST,MULTICAST,M-DOWN>

네트워크 네임스페이스를 추가하고 veth를 사용해 네트워크 연결을 구성하는 예제는 다음 글을 참고. 네트워크 네임스페이스를 중심으로 ip 명령어와 veth 가상 장치를 실제로 어떻게 활용하는지 소개합니다:

... TODO - 나중에 차근차근 정리

See also

Favorite site

References


  1. 44BITS_-_container-network-1-uts-namespace.pdf 

  2. 44bits_-_container-network-2-ip-command-and-network-namespace.pdf