작성일: 2024년 2월 9일
MACVLAN 가상 네트워크 포트 만들기
일반적으로 물리 네트워크 포트 1개에는 MAC address 1개, IP address 1개를 설정해서 사용한다.
(본업으로 Network 장비를 개발, 운영하는 사람이 아니라면 이런 단순한 구성이 익숙할 듯)
그런데 물리 네트워크 포트 1개에 '마치 여러 개의 네트워크 포트가 있는 것처럼' 동작하게 만들어야 할 때가 있다.
예를 들어,
- 물리 포트 eth0에 2개 이상의 MAC address를 설정
- 물리 포트 eth0에 2개 이상의 IP address를 설정
위 2가지를 모두 지원하는 가상 포트 타입이 'MACVLAN'이다.
[참고: Hypervisor, Virtual Machine Manager 에서 VM이 사용할 NIC 포트를 Bridge 타입으로 설정하면 위와 같은 형상이 된다)
아래 예시 명령과 같이 따라해보면 바로 이해가 될 듯.
(명령을 실행했던 OS: Ubuntu 22.04)
## 물리 NIC 포트 'eth0'에 IP address 설정
ip address add 10.1.4.55/24 dev eth0
## 물리 포트 'eth0'에 가상 포트 'macvlan1'을 만들기
ip link add macvlan1 link eth0 type macvlan mode bridge
## network namespace 'net1' 만들기
ip netns add net1
## network namespace 'net1'에 가상 포트 'macvlan1'을 추가
ip link set macvlan1 netns net1
## 가상 포트 'macvlan1'을 활성화(up)하기
ip netns exec net1 ip link set dev macvlan1 up
## 가상 포트에 IP address를 설정
ip netns exec net1 ip address add 10.1.4.51/24 dev macvlan1
## IP 통신이 잘 되는지 'ping test'하기
ip netns exec net1 /usr/bin/ping 10.1.4.56
## 테스트 종료, 가상 포트 'macvlan1' 지우기
ip netns exec net1 ip link del macvlan1
위 예시에서 'mode bridge'로 설정한 부분이 있는데, bridge 모드 외에도 아래와 같은 다양한 모드를 설정할 수 있다.
- Private
- VEPA
- Bridge
- Passthru
- Source
위 5 가지 모드에 대한 자세한 설명은 이 문서(Redhat Blod)를 참고할 것!
추천 문서
Redhat / Linux interfaces for virtual networking (2018년 10월)
'Network' 카테고리의 다른 글
[Study] High-speed packet capture, filtering - PF_RING, ZC(Zero Copy) (0) | 2024.04.02 |
---|---|
Ubuntu 22.04에 PPTP 서버 설치하기 (0) | 2024.02.20 |
WireGuard로 나만의 커스텀 VPN 서버 구축(일명, Bespoke VPN Server) (0) | 2024.01.08 |
SSH Port forwarding (SSH Tunneling) 구성 예제 및 실습 (0) | 2023.12.22 |
Juniper Switch 제어를 위한 Python Script 예제 (Junos PyEX 패키지 사용하기) (0) | 2023.12.11 |