[Linux] Rocky Linux 9.5 KVM Isolated 네트워크 생성, VM 할/당






1. 개요

  • KVM 가상화 환경에서 Isolated 네트워크를 생성하고 VM에 할당하는 방법을 설명합니다.
  • Isolated 네트워크는 VM 간 통신은 가능하지만 외부 네트워크와는 완전히 단절된 환경을 제공합니다.



2. 버전

  • Rocky Linux 9.5



3. 설명




3-1. Isolated 네트워크란?

  • Isolated 네트워크는 KVM 가상화 환경에서 외부 네트워크(인터넷, LAN)와 완전히 단절된 네트워크를 의미합니다.
  • 해당 네트워크에 연결된 VM들은 서로 간 통신은 가능하지만, 호스트 네트워크나 외부 네트워크와는 절대 통신할 수 없습니다.



3-2. Isolated 네트워크의 기술적 특징

항목설명
forward modenone (외부 네트워크와 트래픽 전달 금지)
외부 통신불가능 (인터넷, LAN 접속 차단)
내부 통신동일 네트워크에 연결된 VM 간 통신 가능
브리지libvirt에서 가상 브리지 생성
IP 부여DHCP 또는 static 설정으로 내부 IP 할당



4. Isolated 네트워크 생성




4-1. Isolated 네트워크 XML 파일 생성

# vim isolated-net.xml


설정 예시:

<network>
  <name>isolated-net</name>
  <forward mode='none'/>
  <bridge name='virbr2' stp='on' delay='0'/>
  <ip address='192.168.200.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.200.100' end='192.168.200.200'/>
    </dhcp>
  </ip>
</network>


항목설정 값설명
<name>isolated-net네트워크 이름
<forward mode>none외부 통신 차단 (격리 모드)
<bridge name>virbr2가상 브리지 이름
stpon브리지 STP 활성화
delay0STP 딜레이 시간
<ip address>192.168.200.1브리지 인터페이스 IP
netmask255.255.255.0서브넷 마스크
<dhcp range start>192.168.200.100DHCP 시작 IP
<dhcp range end>192.168.200.200DHCP 끝 IP



4-2. Isolated 네트워크 생성

# virsh net-define isolated-net.xml



4-3. Isolated 네트워크 생성 확인

# virsh net-list --all


출력 예시:

 Name           State      Autostart   Persistent
---------------------------------------------------
 isolated-net   inactive   no          yes
 nat-net        active     yes         yes



4-4. Isolated 네트워크 시작 및 확인

# virsh net-start isolated-net


# virsh net-list --all


출력 예시:

 Name           State    Autostart   Persistent
-------------------------------------------------
 isolated-net   active   no          yes
 nat-net        active   yes         yes



4-5. Isolated 네트워크 자동 시작 설정 및 확인

# virsh net-autostart isolated-net


# virsh net-list --all


출력 예시:

 Name           State    Autostart   Persistent
-------------------------------------------------
 isolated-net   active   yes         yes
 nat-net        active   yes         yes



4-6. Isolated Birdge 인터페이스 확인

# ifconfig virbr2


출력 예시:

virbr2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.200.1  netmask 255.255.255.0  broadcast 192.168.200.255
        ether 52:54:00:71:30:37  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



5. VM 설정




5-1. GUI(virt-manager)



5-1-1. Virt-manager 실행

# virt-manager 


5-1-2. Isolated 네트워크 추가

  • VM 선택 → Open 클릭


  • 전구 아이콘


  • Add Hardware


  • Network → isolated-net 선택 → Finish


  • 생성 확인


5-1-3. Isolated 네트워크 확인

# ifconfig


출력 예시:

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.159  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::5054:ff:fe2b:e64e  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:2b:e6:4e  txqueuelen 1000  (Ethernet)
        RX packets 50  bytes 3968 (3.8 KiB)
        RX errors 0  dropped 32  overruns 0  frame 0
        TX packets 17  bytes 2164 (2.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.213  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::32ce:f8bc:aab5:4575  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:99:a5:b3  txqueuelen 1000  (Ethernet)
        RX packets 128  bytes 12743 (12.4 KiB)
        RX errors 0  dropped 31  overruns 0  frame 0
        TX packets 83  bytes 10429 (10.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



5-2. CLI(virsh)



5-2-1. VM 확인

# virsh list --all


출력 예시:

 Id   Name         State
-----------------------------
 1    rocky9       running
 -    rocky9-cli   shut off


5-2-2. 인터페이스 추가

# virsh attach-interface --domain rocky9-cli --type network --source isolated-net --model virtio --config


5-2-3. 인터페이스 확인

# virsh domiflist rocky9-cli


출력 예시:

 Interface   Type      Source         Model    MAC
------------------------------------------------------------------
 -           network   nat-net        virtio   52:54:00:52:76:7d
 -           network   isolated-net   virtio   52:54:00:ec:25:f9


5-2-4. VM 부팅 및 NAT 네트워크 접속 확인

# virsh start rocky9-cli


# virsh domifaddr rocky9-cli


출력 예시:

 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet2      52:54:00:52:76:7d    ipv4         192.168.100.221/24
 vnet3      52:54:00:ec:25:f9    ipv4         192.168.200.102/24


# ssh root@@192.168.200.102


# ifconfig


출력 예시:

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.102  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::5054:ff:feec:25f9  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:ec:25:f9  txqueuelen 1000  (Ethernet)
        RX packets 1182  bytes 80758 (78.8 KiB)
        RX errors 0  dropped 894  overruns 0  frame 0
        TX packets 210  bytes 33096 (32.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.221  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::c08e:726c:5a:6d80  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:52:76:7d  txqueuelen 1000  (Ethernet)
        RX packets 1107  bytes 65591 (64.0 KiB)
        RX errors 0  dropped 894  overruns 0  frame 0
        TX packets 206  bytes 17471 (17.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


5-2-5. VM 간 통신 확인

# ping -c 3 192.168.200.159



댓글 남기기