2023. 9. 21. 21:01ใSystem ์์ ์ค/LINUX
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ QEMU/KVM ๋คํธ์ํฌ ๊ตฌ์ฑ
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
ํ์ฌ ์ฃผ๋๋ ์ฐ๋ถํฌ 22.04.3์์ QEMU/KVM์ ์ด์ฉํ์ฌ ๊ฐ์ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ์์ด์.
์ฃผ๋๊ฐ ๊ฐ์ง ๋ฌผ๋ฆฌ ์๋ฒ๋ ๋ ๊ฐ์ Netowrk Port(๋คํธ์ํฌ ํฌํธ)๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ํ๋๋ ๊ณต์ ๊ธฐ์ ํ๋๋ ์ค์์นญ ํ๋ธ์ ๋ฌผ๋ ค ๊ฐ๊ฐ Private ๋ง๊ณผ Public ๋ง์ ๊ตฌ์ถํ๋ ค๊ณ ํด์.
์ด ๋, ๋ ๊ฐ์ UTM์ ๊ตฌ์ฑํด ์ค ๊ฒ์ด๊ณ , ์ด UTM์ ํตํด ๋ฐฉํ๋ฒฝ ๋ฑ์ ๊ตฌ์ถํด ์ค๊ฑด๋ฐ, ์ด ๋ถ๋ถ์ ๋ํด์๋ ์ด ๊ณณ์ ์ฐธ๊ณ ํด ์ฃผ์๋ฉด ์ข์ ๊ฑฐ ๊ฐ์์.
vSwitch(๊ฐ์ ์ค์์น)๋ฅผ ๋ง๋ค๋ ค๋ ์ด์ ๋ ๊ฐ๊ฐ์ ๋คํธ์ํฌ ํฌํธ๋ฅผ UTM์ด ์ต์ด๋ก ๋ฌผ๊ฒ ๋๊ณ , ์ด UTM์ด ๋ด๋ถ๋ก ๋คํธ์ํฌ๊ฐ ๋ ์ ์๋๋ก ์๋น์ค ํด์ผ ๋๊ธฐ ๋๋ฌธ์ด์์.
์ด๋ฒ์ ๋ง๋ค ๊ฐ์ ์ค์์น๋ KVM์ Virtual Machine Manager(๊ฐ์ ๋จธ์ ๊ด๋ฆฌ์)๋ฅผ ํตํด ๋ง๋ค์ด ๋ณด๋๋ก ํ ๊ฒ์.
๐ฝ ๊ตฌ์ฑ
๐ฆ Virtual Machine Manager(๊ฐ์ ๋จธ์ ๊ด๋ฆฌ์)
์ต์ด Ubuntu(์ฐ๋ถํฌ) GUI ํ๊ฒฝ์์ ๊ฐ์ ๋จธ์ ๊ด๋ฆฌ์๋ฅผ ์คํํด ์ค ๋ค ์์
ํ ๊ฒ์.
์์ ๊ฐ์ด Virtual Networks Tab(ํญ)์์ ๋ฐ์ + ๋ชจ์์ ๋ฒํผ์ ๋๋ฌ ์ค๋๋ค.
์ต์ด ์์ ๊ฐ์ด ์ค์์น์ ์ด๋ฆ์ ์ ํด ์ฃผ๊ณ , Mode(๋ชจ๋)๋ฅผ ์ ํด ์ฃผ์ด์ผ ํด์.
์์ ๋ชจ๋๋ ์๋ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ด์.
vSwitch Mode | ๊ธฐ๋ฅ ์์ธ |
NAT (Network Address Translation) |
- NAT ๋ชจ๋๋ Host System์ด Virtual Machine์ Network Traffic์ ๊ด๋ฆฌํ๊ณ , Virtual Machine์ Host System์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ์ ํต์ . - NAT ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ๋ฌ Virtual Machine์ด Host์ Single IP Address๋ฅผ ๊ณต์ ํ ์ ์์ผ๋ฉฐ, ์ธ๋ถ๋ก ๋๊ฐ๋ Traffic์ Host IP Address๋ฅผ ํตํด Routing. |
Routed | - Routed ๋ชจ๋๋ Host System์์ ๋ค๋ฅธ Virtual Machine๊ณผ ๋ถ๋ฆฌ๋ Virtual Network ์์ฑ. - Virtual Machine ๊ฐ์ ํต์ ์ Host System์ ๊ฑฐ์น์ง ์๊ณ , ์ง์ Routing. - Routed ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ Virtual Machine์ ๊ณ ์ ํ IP Address๋ฅผ ๋ถ์ฌํ ์ ์๊ณ , Routing์ ํตํด Virtual Machine ๊ฐ ํต์ ๊ฐ๋ฅ. |
Open | - Open ๋ชจ๋๋ Virtual Network์ ์ํ ๋ชจ๋ Virtual Machine์ด ์๋ก ํต์ ๊ฐ๋ฅ. - Open ๋ชจ๋๋ Virtual Machine ๊ฐ Network ํต์ ์์ ๋กญ๊ฒ ๊ฐ๋ฅ. - ๋จ, ๋ณด์์ ์ฃผ์ํด์ผํ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ Firewall ์ค์ ์ ํตํด ๋ณด์ ๊ฐํ ๊ฐ๋ฅ. |
Isolated | - Isolated ๋ชจ๋์์๋ ๊ฐ Virtual Machine์ด ์์ ํ ๊ฒฉ๋ฆฌ๋ Network ํ๊ฒฝ. - Virtual Machine ๊ฐ ํต์ ์ฐจ๋จ ๋ฐ Virtual Machine ์ธ๋ถ ํต์ ๋ถ๊ฐ. - Isolated ๋ชจ๋๋ ๋ณด์์ด๋, Test Environment์์ ์ฌ์ฉ. |
SR-IOV pool (Single Root I/O Virtualization pool) |
- SR-IOV pool ๋ชจ๋๋ Hypervisor ์์์ SR-IOV Network Card ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉ. - SR-IOV ๋ชจ๋๋ Virtual Machine์ ์ง์ Hardware ์์์ ํ ๋นํ์ฌ ์ฑ๋ฅ์ ํฅ์ ์ํค๋ ๊ธฐ์ . - SR-IOV Network Card๋ฅผ ์ฌ์ฉํ๋ Virtual Machine์ Physical Network์ ์ง์ ํต์ ๊ฐ๋ฅ. |
์ฃผ๋๋ NAT ๋ชจ๋๊ฐ ๊ฐ์ฅ ํ์ฌ ํ๊ฒฝ์ ์ ํฉํ๋ค๊ณ ํ๋จํ์ด์.
์๋ํ๋ฉด ๋ด๋ถ ์๋ฒ๋ผ๋ฆฌ ํต์ ์ด ๊ฐ๋ฅํด์ผ ํ๊ณ , ํด๋น ์ค์์น๋ ๋ฐฉํ๋ฒฝ ๊ธฐ๋ฅ์ด ์๋ UTM๊ณผ ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ UTM์ด ๊ฐ์ ๋จธ์ ๋คํธ์ํฌ Traffic(ํธ๋ํฝ)์ ๊ด๋ฆฌํ๊ณ , UTM์ IP๋ฅผ ํตํด ์ธ๋ถ์ ํต์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ด์์.
๊ทธ๋ฆฌ๊ณ , ๊ฐ์ ๋จธ์ ์ ๋ชจ๋ ๋คํธ์ํฌ ๊ด๋ฆฌ๋ฅผ UTM์ ์ ๊ฐ์ํค๊ธฐ ์ํจ์ด์์.
๊ทธ๋ฐ ๋ค ์์ ๊ฐ์ด IPv4 Configuration์ ํ์ฅํ์ฌ ๋คํธ์ํฌ์ ์์, ๋ IP ๋ฒ์๋ฅผ ์ง์ ํด ์ฃผ์์ด์.
์ด์ Finish๋ฅผ ๋๋ฌ์ค๊ฒ์.
๊ทธ๋ผ ์์ ๊ฐ์ด ์ค์์น๊ฐ ๋ง๋ค์ด์ง ๊ฑธ ํ์ธํ ์ ์์ด์.
์ด์ ํด๋น ์ค์ ์ฐธ์ ๋ซ๊ณ , ๊ฐ์ ๋จธ์ ์ค UTM๊ณผ ์๋์ฐ 10์ ํด๋น ์ค์์น์ ์ฐ๊ฒฐํด ๋ณผ๊ฒ์.
์ฐธ๊ณ ๋ก ๊ฐ์ ๋จธ์ ์ ์๋ก์ด Virtual Network Interface Card(๊ฐ์ NIC)๋ฅผ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์
๋์ ๊ฐ์ ๋จธ์ ์ ๋ชจ๋ ์ข
๋ฃํด์ฃผ์ด์ผ ํด์.
Open์ ๋๋ฌ ์ค๋๋ค.
์ค์ ์ฐฝ์์ ์์ ๊ฐ์ด ๋๋ํ ๋ชจ์์ ๋๋ฌ์ค ๋ค Add Hardward๋ฅผ ๋๋ฌ์ค๊ฒ์.
Network source Dropdown(๋๋กญ๋ค์ด) Button(๋ฒํผ)์ ๋๋ฅด๋ฉด ์์์ ๋ง๋ ๊ฐ์ ์ค์์น๊ฐ ๋ณด์ผ๊ฑฐ์์.
๊ทธ๊ฑธ ์ ํํด ์ค๋๋ค.
Device model์ virtio๋ฅผ ์ ํํด์ค๊ฑด๋ฐ, virtio๋ ๊ฐ์ํ ํ๊ฒฝ์์ ๋์ ์ฑ๋ฅ๊ณผ ํจ์จ์ฑ์ ์ ๊ณตํ๊ธฐ ์ํด ์ค๊ณ๋
๊ฐ์ Device(๋๋ฐ์ด์ค) Framework(ํ๋ ์์ํฌ)์์.
๊ทธ๋ผ ์ฃผ๋๋ ์? virtio๋ฅผ ์ ํํ๋ ค ํ ๊น์?
1. ๋์ ์ ๋ฅ: virtio๋ Hypervisor(ํ์ดํผ๋ฐ์ด์ )์ ๊ฐ์ ๋จธ์ ๊ฐ์ ํจ์จ์ ์ธ Data(๋ฐ์ดํฐ) ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ,
์ผ๋ฐ์ ์ธ ๊ฐ์ํ ์ธํฐํ์ด์ค๋ณด๋ค ๋์ ๋คํธ์ํฌ ์ฑ๋ฅ ์ ๊ณต.
2. ์ ๋ ดํ ๊ฐ์ํ ๋น์ฉ: virtio ๋๋ฐ์ด์ค๋ ํ๋์จ์ด ๊ฐ์์ ์ฌ์ฉํ์ง ์๊ณ , Software(์ํํธ์จ์ด) ๊ฐ์ํ๋ฅผ ํตํด ๋คํธ์ํฌ ์์
์
์ํํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋จธ์ ์ด ํ๋์จ์ด ์์์ ๊ณต์ ํ๋ ๊ฒ๋ณด๋ค ๊ฒฝ์ ์ .
3. ํ์คํ: virtio๋ ํ์คํ๋ ๊ฐ์ ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ ํ๋ ์์ํฌ๋ก ์ฌ๋ฌ ํ์ดํผ๋ฐ์ด์ Platform(ํ๋ซํผ)์์ ์ง์๋๊ธฐ ๋๋ฌธ์
์ด์์ฑ์ด ๋ฐ์ด๋จ.
4. ๊ฐ๋ ฅํ ๊ฐ์ํ ๊ธฐ๋ฅ: virtio๋ I/O ๊ฐ์ํ๋ฅผ ์ํ ๋ค์ํ ๊ธฐ๋ฅ ์ง์ ๋ฐ Disk(๋์คํฌ), ๋คํธ์ํฌ, Graphic(๊ทธ๋ํฝ), Memory(๋ฉ๋ชจ๋ฆฌ),
Serial(์๋ฆฌ์ผ) ๋ฑ ๋ค์ํ ๊ฐ์ ๋๋ฐ์ด์ค ์ ํ ์ ์ฉ ๊ฐ๋ฅ.
์์ ๊ฐ์ ์ด์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ํํ๋ ค๊ณ ํด์.
ํ์ง๋ง, ์ฐธ๊ณ ํด์ผ ํ ์ ์ Host System(ํธ์คํธ ์์คํ
)๊ณผ ํ์ดํผ ๋ฐ์ด์ ๊ฐ virtio๋ฅผ ์ง์ํด์ผ ์ ์ ์๋ํ๊ธฐ ๋๋ฌธ์
ํธํ์ฑ ํ์ธ์ด ํ์ํด์.
์์ ๊ฐ์ด ๋์๋ค๋ฉด Finish๋ฅผ ๋๋ฌ์ค๊ฒ์.
๊ทธ๋ผ ์์ ๊ฐ์ด ์๋ก์ด NIC๊ฐ ์ถ๊ฐ๋๊ฑธ ๋ณผ ์ ์์ด์.
๋ฌผ๋ฆฌ์ ์ผ๋ก ์๊ฐํด๋ณด๋ฉด NIC๋ฅผ ํ๋ ์ถ๊ฐํ๊ณ , ์์์ ๋ง๋ external-server ๊ฐ์ ์ค์์น์ ์ฐ๊ฒฐํด์ค๊ฑฐ์์.
์ฌ๊ธฐ๊น์ง ๋์๋ค๋ฉด UTM์ ์ฌ ๊ธฐ๋ํด๋ณผ๊ฒ์.
์ฐธ๊ณ ๋ก ์๋์ฐ 10์ ๋์ผ ์์
์ด๊ธฐ ๋๋ฌธ์ ๋์ด๊ฐ๊ฒ์.
์์ ๊ฐ์ด ์๋กญ๊ฒ ์ถ๊ฐ๋ ์ธํฐํ์ด์ค๋ฅผ ํ์ธํ ์ ์์ด์.
ํด๋น ์ธํฐํ์ด์ค ์ฆ, ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ด์ผ๊ธฐํ๋ฉด ๋คํธ์ํฌ ํฌํธ์ IP๋ฅผ 192.168.30.2/24๋ก ์ฃผ์์ด์.
์? 1์ด ์๋๊ณ , 2๋ํ๋ฉด ์์์ ๋ง๋ ์ค์์น๊ฐ 1๋ฒ์ด ๋๊ธฐ ๋๋ฌธ์ด์์.
์๋์ฐ 10์์ ๋คํธ์ํฌ ์ค์ ์ ์์ ๊ฐ์ด ํด์ฃผ๊ณ , ํต์ ์ด ๋๋์ง ํ์ธํด ๋ณผ๊ฒ์.
์์ ๊ฐ์ด ์ค์์น, UTM, ์ธ๋ถ ํต์ ๋ชจ๋ ๊ฐ๋ฅํ๊ฑธ ํ์ธํ ์ ์์ด์.
๐ฝ libvirt๋ฅผ ์ด์ฉํ ๋คํธ์ํฌ ์์ฑ
๐ฆ ๊ฐ์ ๋คํธ์ํฌ ์์ฑ
์ต์ด libvirt ๋คํธ์ํฌ ์ค์ ์ ํด ์ค๊ฑด๋ฐ, libvirt๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๊ณ , ๊ตฌ์ฑํด ๋ณผ๊ฑฐ์์. ์ฃผ๋๋ internal-server-vSwitch๋ผ๋ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด ์ค๊ฑฐ์์.
์ ๋ช
๋ น์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค์ด์ ธ ์๋ default๋ผ๋ ๊ฐ์ ๋คํธ์ํฌ์ ์ค์ ํ์ผ์
internal-server-vSwitch.xml๋ก ๋ณต์ฌํ์ฌ ๋ง๋ค์ด ์ฃผ๋ ๋ช
๋ น์ด์์.
์์ ๊ฐ์ด ํ๋ฉด ํ์ฌ ์์นํ ๊ณณ์ internal-server-vSwitch.xml์ด ๋ง๋ค์ด์ง๊ฑฐ์์.
<network>
<name>internal-server-vSwitch</name>
<forward mode='nat'/>
<bridge name='virbr1' stp='on' delay='0'/>
<ip address='192.168.20.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.20.2' end='192.168.20.254'/>
</dhcp>
</ip>
</network>
์์ ๊ฐ์ด ๊ฐ์ ์ค์์น IP ๋์ญ ์ค์ ์ ์ํ ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ค์ด ์ฃผ์์ด์.
์์ ๋ด์ฉ์ ๊ฐ์ ์ค์์น์ธ internal-server-vSwitch์
IP ๋์ญ์ 192.168.20.0/24๋ก ์ฌ์ฉ๋ ์ ์๋๋ก ์ค์ ํด ์ค ๊ฒ์ด์์.
์ฐธ๊ณ ๋ก bridge name์ Ifconfig ๋ช
๋ น์ด๋ฅผ ํตํด virbrX๊ฐ ์๋ ๋ฒํธ๋ก ์ง์ ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด ํ๊ฒ ๋๋ฉด ๊ฐ์ ์ค์์น์ IP ์ฃผ์๋ 192.168.20.1/24๋ก ์ค์ ๋๊ณ ,
DHCP ์๋ฒ๋ฅผ ํตํด 192.168.20.2/24 ~ 192.168.20.254/24๊น์ง์ ์ฃผ์๋ฅผ ๊ฐ์ ๋จธ์ ์ ํ ๋นํด ์ค ์ ์์ด์.
์์ ๊ฐ์ด ๊ตฌ์ฑ ํ์ผ์ ์ ์ํด ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค ํด๋น ๋คํธ์ํฌ๋ฅผ ๊ธฐ๋ ์์ผ ์ฃผ์์ด์.
๊ทธ๋ฆฌ๊ณ ์ ๋ช
๋ น์ด๋ก ์๋์ผ๋ก ๊ธฐ๋๋ ์ ์๋๋ก ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด ๋คํธ์ํฌ๊ฐ ์์ฑ๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
์ด์ UTM์ ์๋ก ๋ง๋ค์ด์ค ๋คํธ์ํฌ๋ฅผ ์ถ๊ฐํด ์ค๊ฒ์.
์ต์ด Add Hardware๋ฅผ ๋๋ฌ์ค๊ฒ์.
์์ ๊ฐ์ด Network๋ฅผ ์ ํํ ๋ค Network source์์ ์์์ ๋ง๋ ๋คํธ์ํฌ๋ฅผ ์ ํํด ์ค๊ฒ์.
๊ทธ๋ฐ ๋ค์ Finish๋ฅผ ๋๋ฌ ์ค๋๋ค.
๊ทธ๋ผ ์์ ๊ฐ์ด NIC๊ฐ ํ๋ ๋ ์ถ๊ฐ๋๊ฑธ ํ์ธํ ์ ์์ด์.
์ด์ UTM์ ๋ถํ
์์ผ ๋ณผ๊ฒ์.
์์ ๊ฐ์ด ๋คํธ์ํฌ๊ฐ ์กํ์๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
Gateway๋ก Ping์ ๋ ๋ ค๋ณด๋ ์ ์ ํต์ ๋๋๊ฑธ ํ์ธํ ์ ์์ด์.
๐ฆ ๊ฐ์ ๋คํธ์ํฌ ์ ๊ฑฐ
์ต์ด ์์ ๊ฐ์ด ๋คํธ์ํฌ๋ฅผ ์ ๊ฑฐํด ์ค๋๋ค.
์์์ xml์ ์ด์ฉํด์ ์ ์ํ ๊ตฌ์ฑ ๋ด์ฉ์ ์ ๊ฑฐํด ์ฃผ์์ด์.
์ด๋ ๊ฒ ํ๋ฉด ๋คํธ์ํฌ๋ฅผ ์ ๊ฑฐํ ์ ์์ด์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."