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/hlBddMVRL9Q 1. 개요 OpenMediaVault(OMV)는 Debian 기반의 오픈소스 NAS(Network Attached Storage) 운영체제로, 웹 브라우저를 통해 스토리지,…
https://youtu.be/iCUa8Ua8fIg 1. 개요 Raspberry Pi OS Lite를 Raspberry Pi Imager를 이용하여 설치하는 방법을 설명합니다. 2.…
안녕하세요.이번에 CKA(Certified Kubernetes Administrator) 시험에서 90점으로 합격했습니다. (합격 기준 66점) 합격 자체도 기뻤지만, 이번 시험을 준비하면서…
https://youtu.be/n8-wlkZiqio 1. 개요 NFS(Network File System)를 설치하고, rw/ro 및 root_squash 옵션에 따른 접근 제어와 성능을 테스트하는 방법을 정리한 가이드입니다.…
https://youtu.be/4MVxzmepY3s 1. 개요 리눅스에서 정기적으로 실행되는 작업(백업, 로그 정리, 모니터링 등)은 cron 서비스를 통해 자동화할 수 있습니다.…
https://youtu.be/vPfxWFBE1yc 1. 개요 리눅스 서버를 운영할 때 사용자 계정 생성, 비밀번호 설정, 권한 부여, 계정…