virsh
)와 GUI(virt-manager
) 모두를 활용한 방법을 다룹니다.NAT 종류 | 설명 | KVM에서 사용 여부 |
---|---|---|
SNAT (출발지 NAT) | 내부에서 외부로 나갈 때 출발지 IP를 변환 | ✅ 기본 NAT 네트워크 |
DNAT (목적지 NAT) | 외부에서 내부로 들어올 때 목적지 IP를 변환 | ❌ 추가 설정 필요 |
PAT (포트 주소 변환) | 하나의 공용 IP에 여러 내부 포트를 매핑 | ✅ KVM NAT 내부적으로 사용 |
Full NAT | 출발지와 목적지 IP 모두 변환 | ❌ 기본에는 없음 |
# vim nat-net.xml
설정 예시:
<network> <name>nat-net</name> <forward mode='nat'/> <bridge name='virbr1' stp='on' delay='0'/> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.100' end='192.168.100.254'/> </dhcp> </ip> </network>
항목 | 설정 값 | 설명 |
---|---|---|
<name> | nat-net | 네트워크 이름 |
<forward mode> | nat | NAT 방식으로 외부 통신 지원 |
<bridge name> | virbr1 | 가상 브리지 이름 |
stp | on | 브리지 STP(스패닝 트리) 활성화 |
delay | 0 | STP 딜레이 시간 |
<ip address> | 192.168.100.1 | 브리지 인터페이스 IP |
netmask | 255.255.255.0 | 서브넷 마스크 |
<dhcp range start> | 192.168.100.100 | DHCP 시작 IP |
<dhcp range end> | 192.168.100.254 | DHCP 끝 IP |
# virsh net-define nat-net.xml
# virsh net-list --all
출력 예시:
Name State Autostart Persistent ---------------------------------------------- default active yes yes nat-net inactive no yes
# virsh net-start nat-net
# virsh net-list --all
출력 예시:
Name State Autostart Persistent -------------------------------------------- default active yes yes nat-net active no yes
# virsh net-autostart nat-net
# virsh net-list --all
출력 예시:
Name State Autostart Persistent -------------------------------------------- default active yes yes nat-net active yes yes
# ifconfig virbr1
출력 예시:
virbr1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.100.1 netmask 255.255.255.0 broadcast 192.168.100.255 ether 52:54:00:44:30:1b 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
# virt-manager
nat-net
선택 → Finish# ifconfig
출력 예시:
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 71 bytes 5994 (5.8 KiB) RX errors 0 dropped 34 overruns 0 frame 0 TX packets 45 bytes 4434 (4.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# ping -c 3 google.com
# virsh list --all
출력 예시:
Id Name State ----------------------------- - rocky9 shut off - rocky9-cli shut off
# virsh attach-interface --domain rocky9-cli --type network --source nat-net --model virtio --config
# virsh domiflist rocky9-cli
출력 예시:
Interface Type Source Model MAC ------------------------------------------------------------- - network default virtio 52:54:00:3b:03:32 - network nat-net virtio 52:54:00:52:76:7d
# virsh detach-interface --domain rocky9-cli --type network --mac 52:54:00:3b:03:32 --config
# virsh domiflist rocky9-cli
출력 예시:
Interface Type Source Model MAC ------------------------------------------------------------- - network nat-net virtio 52:54:00:52:76:7d
# virsh start rocky9-cli
# virsh domifaddr rocky9-cli
출력 예시:
Name MAC address Protocol Address ------------------------------------------------------------------------------- vnet1 52:54:00:52:76:7d ipv4 192.168.100.221/24
# ssh root@192.168.100.221
# ifconfig
출력 예시:
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 682 bytes 373306 (364.5 KiB) RX errors 0 dropped 66 overruns 0 frame 0 TX packets 415 bytes 60106 (58.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# ping -c 3 google.com
# virsh net-list --all
출력 예시:
Name State Autostart Persistent -------------------------------------------- default active yes yes nat-net active yes yes
# virsh net-autostart default --disable
# virsh net-list --all
출력 예시:
Name State Autostart Persistent -------------------------------------------- default active no yes nat-net active yes yes
# virsh net-destroy default
# virsh net-list --all
출력 예시:
Name State Autostart Persistent ---------------------------------------------- default inactive no yes nat-net active yes yes
# virsh net-undefine default
# virsh net-list --all
출력 예시:
Name State Autostart Persistent -------------------------------------------- nat-net active yes yes
https://youtu.be/2UUUOtFfPUk 1. 개요 virt-install 명령어를 이용해 KVM/QEMU 환경에서 Windows 11 24H2 버전을 설치하는 방법을 소개합니다. GUI 없이 CLI…
https://youtu.be/nNDRk8bt3c4 1. 개요 virt-manager를 사용하여 KVM/QEMU 가상화 환경에서 Windows 11을 설치하는 방법을 소개합니다. 설치 과정에서는 virtIO…
https://youtu.be/YL23ogmZhuY 1. 개요 이 문서에서는 Windows 11 24H2 버전 설치 방법에 대해 설명합니다. USB 설치 디스크를…
https://youtu.be/Nm9swsyeXlY 1. 개요 virt-install 명령어를 이용해 Rocky Linux 9.5 기반 KVM 가상 머신을 생성하는 방법을…
https://youtu.be/zZQl7OJZf7Q 1. 개요 virt-manager를 이용하여 KVM 가상 머신을 생성하는 방법을 설명합니다. Rocky Linux 9.5 ISO…
https://youtu.be/UPeCJbP3UIE 1. 개요 KVM 기반의 가상화 시스템 설치하는 방법을 소개합니다. 2. 버전 Rocky Linux 9.5…