[Server]/Linux

NetworkManager를 이용하여 Linux Bridge 및 VLAN 구성

ByoungHee Lee 2023. 1. 5. 00:43

하이퍼 바이저를 통해 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'