하이퍼 바이저를 통해 VM을 사용하는 환경에서는 종종 VLAN을 사용해야만 하는 경우가 있습니다. 이번 장에서는 KVM 가상화 환경에서 하나의 리눅스 브리지에 복수개의 VLAN을 구성하여 VM에 VLAN 네트워크를 할당하고 VM간에 VLAN 통신 및 검증할 수 있는 방법에 대해 소개 드리겠습니다.
검증 환경:
- Red Hat Enterprise Linux 8
- NetworkManager
- KVM virtual machines
- Linux Bridge
- VLAN 20, 30
- 172.16.20.0/24 VLAN 20, 172.16.30.0/24 VLAN30

Host 서버 환경 구성: Linux Bridge & VLAN 설정
1. Linux Bridge 생성
mgmt 이름의 Bridge를 생성합니다.
[root@lee-host04 ~]# nmcli connection add type bridge ifname mgmt ipv4.method disabled ipv4.never-default true ipv6.method ignore ipv6.never-default true 802-3-ethernet.mtu 1500 con-name mgmt |
2. vlan 20 생성(device enp8s0, master mgmt)
mgmt.20 이름으로 VLAN 20을 갖도록하고 master는 mgmt로 설정합니다.
[root@lee-host04 ~]# nmcli connection add type vlan ifname mgmt.20 dev enp8s0 id 20 ipv4.method disabled ipv4.never-default true ipv6.method ignore ipv6.never-default true 802-3-ethernet.mtu 1500 master mgmt con-name mgmt.20 |
3. vlan 30 생성(device enp8s0, master mgmt)
mgmt.30 이름으로 VLAN 30을 갖도록하고 master는 mgmt로 설정합니다.
[root@lee-host04 ~]# nmcli connection add type vlan ifname mgmt.30 dev enp8s0 id 30 ipv4.method disabled ipv4.never-default true ipv6.method ignore ipv6.never-default true 802-3-ethernet.mtu 1500 master mgmt con-name mgmt.30 |
VM 환경 구성: VM1, VM2 생성 및 네트워크 구성
vm1 설정에서 두개의 네트워크를 동일한 Bridge device(mgmt)로 설정을 하고 VM을 시작합니다.

vm1에 접속하여 vlan id 20, 30을 갖는 device를 생성하고 vlan device별 IP를 설정합니다.
[root@vm1 ~]# nmcli con add type vlan ifname vlan20 id 20 con-name vlan20 dev enp1s0 [root@vm1 ~]# nmcli con modify vlan20 ipv4.method manual ipv4.addr 172.16.20.51/24 [root@vm1 ~]# nmcli con add type vlan ifname vlan30 id 30 con-name vlan30 dev enp7s0 [root@vm1 ~]# nmcli con modify vlan30 ipv4.method manual ipv4.addr 172.16.30.51/24 ![]() |
vm2 설정에서 두개의 네트워크를 동일한 Bridge device(mgmt)로 설정을 하고 VM을 시작합니다.

vm2에 접속하여 vlan id 20, 30을 갖는 device를 생성하고 vlan device별 IP를 설정합니다.
[root@vm2 ~]# nmcli con add type vlan ifname vlan20 id 20 con-name vlan20 dev enp1s0 [root@vm2 ~]# nmcli con modify vlan20 ipv4.method manual ipv4.addr 172.16.20.52/24 [root@vm2 ~]# nmcli con add type vlan ifname vlan30 id 30 con-name vlan30 dev enp7s0 [root@vm2 ~]# nmcli con modify vlan30 ipv4.method manual ipv4.addr 172.16.30.52/24 ![]() |
TCPDUMP로 VLAN 네트워크 통신 검증
호스트 서버에서 vm1과 vm2 간의 vlan 통신을 하는지 tcpdump로 확인합니다.
HOST서버에서 Bridge를 통해 VLAN20 네트워크 통신 검증
[root@lee-host04 ~]# tcpdump -i mgmt -nn -e vlan | grep 'vlan 20'

HOST서버에서 Bridge를 통해 VLAN30 네트워크 통신 검증
[root@lee-host04 ~]# tcpdump -i mgmt -nn -e vlan | grep 'vlan 30'
