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
1. 개요 LVM 환경에서 Thin Pool과 Thin Volume을 생성하고, ext4·XFS 파일시스템으로 마운트한 뒤, lvs 명령어로 사용 현황을 확인하는 과정을 다룹니다. 씬…
https://youtu.be/8jrMVfosV6Y 1. 개요 LVM 환경에서 pvmove를 사용해 /dev/vdb1 → /dev/vdc1로 데이터를 무중단(온라인) 이관하는 과정을 다룹니다. 이관 전/후 LV–PV 매핑…
https://youtu.be/QNAq6f2rO-I 1. 개요 본 글은 LVM의 스냅샷(snapshot) 기능으로 복구 지점 생성 → 파일 변경 → 스냅샷 병합(rollback) 과정을 실습합니다.…
https://youtu.be/ZcxB7akkDKs 1. 개요 두 개의 디스크(/dev/vdb, /dev/vdc)로 LVM을 구성하고, ext4·XFS 파일시스템 생성 → 마운트 → VG/LV 확장 → ext4 축소(오프라인)까지 전체…
https://youtu.be/XYBR1ZFrV9s 1. 개요 parted를 사용해 새 디스크에 GPT 라벨 생성 → 파티션 생성(ext4/XFS) → 포맷/마운트 →…
https://youtu.be/yYV8RQKCFzA 1. 개요 이 문서는 fdisk를 사용해 MBR(DOS) 디스크에 파티션을 생성하고, ext4/XFS 파일시스템을 포맷·마운트, /etc/fstab에 등록했다가, 안전하게 해제·삭제하는 전…