อธิบาย NAT Mode ของ virt-manager

วันนี้จะมาเขียนบทความเกี่ยวกับ Virt-Manager และหลักคิดของ Network ที่จะต้องทำความเข้าใจ
Virt-Manager คืออะไร ?

Virt-Manager ชื่อเต็มๆ คือ Virtualization Manager คือโปรแกรมที่เป็น GUI ทำหน้าที่ในการให้เรามองเห็น บริการจัดการ Virtual Machine ได้ง่าย

ซึ่งเบื้องหลังของ Virt-manager ก็จะถูกสั่งงานลงไปยัง libvirt ,

ฉันใดก็ฉันนั้น ถ้าเราใช้ zenmap เป็น gui ไส้ในก็คือคำสั่ง nmap แบบ cli
ถ้าเราใช้ virt-manager เป็น GUI ไส้ในก็คือคำสั่ง virsh ในการบริหารจัดการ vm เช่นเดียวกัน

รัน VM ได้ เหมือน oracle virtualbox มั้ย ?
รัน VM ได้ เหมือน vmware workstation pro มั้ย ?
รัน VM ได้ เหมือน hyper-v มั้ย ?

kernel-libvirt-relationship

คำตอบ เหมือน , และบางอย่าง "ทำได้ดีกว่า" ด้วย

เพราะ virsh (และ Virt-Manager) เป็นเครื่องมือที่ใช้สื่อสารกับ libvirt Daemon อีกที จากนั้น libvirt จะทำหน้าที่ประสานงานกับ KVM และ QEMU เพื่อจัดการ VM ครับ เพื่อที่ เมื่อ chain ทุกอย่างถูกเชื่อมโดยตรง vm (โดยเฉพาะ vm ที่เป็น linux os) จะได้รับอนุญาติให้เข้าถึง kernel ของ host ได้ เข้าเส้น มากกว่า hypervisor แบบอื่นๆ

ทำให้ vm ที่เป็น Linux มีประสิทธิภาพดีมาก แทบจะเหมือนไม่ได้เป็น vm แต่เป็นเครื่องจริงอีกเครื่องที่ Direc Access Hardware

ด้วยการเข้าถึง kernel ที่ทำหน้าที่บริหารจัดการ hardware / service ต่างๆได้ดี การใช้งาน network interface ก็จะต้องมีความเข้าใจมากขึ้น ในการใช้งาน VM

เพราะ network interface card ถือเป็นทรัพยากร hardware อีกอันที่ vm มีสิทธิ์ใช้
แล้ว linux มี kernel ที่ direct access hardware รวมถึงปรับแต่งได้เต็มที่ จึงต้องมาดูและพิจารณากันว่า เราจะใช้ network interface card แบบไหนในแต่ละ VM รวมไปถึงมันเหมาะกับสถานการณ์ไหนบ้าง 


ใน Mode การใช้งานของ virt-manager จะมีรูปแบบ network interface ให้ OS VM ได้ใช้ดังนี้ 

Virtual network 'default' : NAT
คำอธิบาย: นี่คือการกำหนดค่าเครือข่ายเริ่มต้นของ libvirt โดยใช้ virtual switch ชื่อ virbr0 ซึ่งทำงานในโหมด NAT (Network Address Translation) ผมเองได้เขียนความเข้าใจเรื่อง NAT , MASQUERADE ไว้แล้วใน medium ไปอ่านกันดู

IP Routing , NAT , Masquerade ความแตกต่างที่หาคำตอบยากเหลือเกิน เขียนไว้เมื่อ 2020 December 09



โหมดนี้จะอนุญาตให้ Guest OS (เครื่องเสมือน) สามารถเข้าถึงเครือข่ายภายนอกได้โดยใช้อีเธอร์เน็ตการ์ด (MAC Address) และที่อยู่ IP ของ Host OS (เครื่องแม่ข่าย

แต่เครื่องจากภายนอก Host OS จะไม่สามารถเริ่มต้นการสื่อสารกับ Guest OS ได้

โหมดนี้เหมาะสำหรับการทดสอบหรือการใช้งานที่ไม่จำเป็นต้องให้ VM สามารถเข้าถึงได้จากภายนอก เช่น การพัฒนาเว็บหรือการทดสอบซอฟต์แวร์ หรือทำ malware analysis ก็ได้ ซึ่งมันต่างจากความเข้าใจตอนเราใช้ Oracle virtualbox / vmware workstation ตอนที่เรา setting network ให้ VM นะ

วันนี้เราจะมาอธิบาย NAT ด้วยภาพกัน และต้องทำความเข้าแบบชัดเจน มากๆ ให้เข้าเส้น เป็นพื้นฐานที่จะเข้าใจก่อน Bridge อีก (bridge ซับซ้อนกว่ามาก) บทความนี้จะทำให้เห็น NAT MODE ของ Virt Manager ก่อนครับ ไปดูภาพกันเลย

libvirt-network-NAT

ขอบคุณที่ติดตาม , ครั้งต่อไปถ้าไม่ติดก็จะเขียนเรื่อง Bridge ต่อ
เจอกันใหม่ในบทความต่อไปครับ ขอบคุณครับ