หลังจาก การสร้างเครื่องเสมือนใน VirtualBox เสร็จเรียบร้อยแล้ว หากเราต้องการให้เครื่องเสมือน (guest) สามารถใช้เน็ตเวิร์กหรืออินเทอร์เน็ตได้ด้วย หรือเราต้องการรีโมตเข้าไปที่เครื่องเสมือนเช่นโดยใช้ ssh, web เราต้องแก้ไขคอนฟิกส่วนเน็ตเวิร์กใน VirtualBox
ในโปรแกรม VirtualBox คลิกเลือกที่ชื่อเครื่องเสมือนที่ต้องการแก้ไขคอนฟิกเน็ตเวิร์ก แล้วกดปุ่ม Settings
หน้าจอ Settings แถบด้านซ้ายมือคลิกที่ Network หน้าจอจะแสดงค่าคอนฟิกเน็ตเวิร์กของเครื่องเสมือนที่เราเลือก
เราสามารถสร้างพอร์ตแลน (Network Adapter) ให้กับเครื่องเสมือน (guest) ได้ทั้งหมด 4 พอร์ต โดยแต่ละพอร์ตสามารถคอนฟิกเลือกให้เชื่อมต่อเข้ากับเน็ตเวิร์ก (Attached to:) แตกต่างกันได้
หมายเหตุ หากต้องการสร้าง Network Adapter ใหม่ ก็คลิกที่แท็บ Adapter 2, Adapter 3, Adapter 4 แล้วคลิกเลือก [x] Enable Network Adapter
ดีฟอลต์การสร้างเครื่องเสมือนใหม่ จะมีการสร้าง 1 พอร์ตแลน เชื่อมต่อเข้ากับโหมด NAT
ในที่นี้ขออธิบาย 3 โหมดคือ
- NAT
- Bridged Adapter
- Host-only Adapter
Network Address Translation (NAT)
NAT เป็นโหมดดีฟอลต์ที่ได้จากการสร้างเครื่องเสมือน เพื่อให้เครื่องเสมือนเชื่อมต่อกับเน็ตเวิร์กภายนอกเหมือนกับเครื่องหลักได้ โดย VirtualBox ที่ลงในเครื่องหลัก (Host) จะทำ NAT เพื่อแปลง IP Address ของแพ็กเก็ตที่ส่งออกมาจากเครื่องเสมือน ให้สามารถส่งออกไปเน็ตเวิร์กภายนอกได้ ถ้าเปรียบเทียบ VirtualBox ก็ทำหน้าที่เหมือน ADSL Router เพื่อให้เครื่องที่ต่ออยู่ด้านหลังผ่านพอร์ตแลนหรือ WiFi สามารถเข้าอินเทอร์เน็ตได้ โดย ADSL Router จะทำ NAT
รูปแสดงการคอนฟิก Network Adapter ให้อยู่โหมด NAT เพื่อเชื่อมต่อเน็ตเวิร์กภายนอก (Internet)
พอร์ตในเครื่องเสมือนที่คอนฟิกในโหมด NAT นี้จะได้รับแจก IP Address มาโดยอัตโนมัติ (DHCP) ซึ่งอยู่ในช่วง 10.0.2.x, 10.0.3.x, … และได้รับแจก Default Gateway มาด้วย
ตัวอย่าง IP Address, Default Gateway ที่ได้รับแจกมา เมื่อคอนฟิกในโหมด NAT
$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr ... inet addr:10.0.3.15 Bcast:10.0.3.255 Mask:255.255.255.0 ... $ /sbin/route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 10.0.3.2 0.0.0.0 UG 0 0 0 eth0
สามารถ ping เว็บไซต์ www.google.com ได้
$ ping -n www.google.com PING www.google.com (27.123.17.23) 56(84) bytes of data. 64 bytes from 27.123.17.23: icmp_seq=1 ttl=63 time=21.6 ms ^C --- www.google.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 405ms rtt min/avg/max/mdev = 21.630/21.630/21.630/0.000 ms
Bridged Adapter
ถ้าคอนฟิกพอร์ตแลนของเครื่องเสมือน (guest) เชื่อมเข้ากับโหมด Bridged Adapter นี้ ด้านล่างช่อง Name: จะมีให้เลือกว่าจะ bridge เข้ากับพอร์ตแลนของเครื่องหลัก (host) ไหน
รูปแสดงการคอนฟิก Network Adapter ให้อยู่โหมด Bridged เพื่อเชื่อมต่อเน็ตเวิร์กภายนอก (Internet)
จากรูปหากคอนฟิกอยู่ในโหมด Bridged จะเปรียบเสมือนว่าพอร์ตแลน (Net. Adapter) ของเครื่องเสมือน เชื่อมต่อโดยตรงกับเน็ตเวิร์กภายนอก เหมือนกับ LAN Port ของเครื่องหลักเชื่อมอยู่จริงเลย
การคอนฟิกเน็ตเวิร์กของเครื่องเสมือนไม่ว่าจะเป็น IP Address, Default Gateway ทำเหมือนกับมีอีกเครื่องหนึ่งแยกต่างหาก ต่ออยู่เน็ตเวิร์กเดียวกันกับเครื่องหลัก
Host-only Adapter
โหมด Host-only Adapter โปรแกรม VirtualBox จะสร้างวงเน็ตเวิร์กเสมือน (Virtual Network) ขึ้นมา เพื่อใช้เชื่อมต่อระหว่างเครื่องเสมือน (guest) และเครื่องหลัก (host)
รูปแสดงการคอนฟิก Network Adapter ให้อยู่โหมด Host-only
จากรูปถ้าคอนฟิกพอร์ตแลน (Net. Adapter) ของเครื่องเสมือน อยู่ในโหมด Host-only นี้ เครื่องเสมือนจะสามารถเชื่อมต่อกับเน็ตเวิร์ก Host-only ที่โปรแกรม VirtualBox สร้างขึ้นมาเท่านั้น ไม่สามารถเชื่อมต่อไปยังเน็ตเวิร์กภายนอกได้
โดยดีฟอลต์ VirtualBox จะสร้างเน็ตเวิร์กเสมือน (Virtual Network) รองรับการเชื่อมต่อในโหมด Host-only โดยจะกำหนด IP Address ให้อยู่ในวง 192.168.56.0/24 โดยกำหนด IP Address ของเครื่องหลักเป็น 192.168.56.1
สามารถดูรายละเอียดการคอนฟิกได้ที่กดที่เมนู File -> Preferences แล้วคลิกที่ Network เลือกแท็บ Host-only Networks
ดับเบิลคลิกที่ VirtualBox Host-Only Ethernet Adapter เพื่อดูคอนฟิกเน็ตเวิร์ก
คลิกแท็บ DHCP Server เพื่อดูคอนฟิก DHCP Server เพื่อให้พอร์ตแลนของเครื่องเสมือนที่อยู่ในโหมด Host-only นี้ ได้รับ IP Address โดยอัตโนมัติ
หากต้องการแก้ไข IP Address หรือไม่ต้องการคุณสมบัติ DHCP Server ที่เปิดไว้ ก็สามารถคลิกเพื่อไม่เลือก [ ] Enable Server ในแท็บ DHCP Server ได้
หมายเหต DHCP Server ที่คอนฟิกใน Host-only จะแจก IP Address เฉพาะเครื่องที่อยู่ในวง Host-only Virtual Network เท่านั้น ไม่กระทบกับพอร์ตแลนของเครื่องหลัก
ข้อดีอย่างหนึ่งของการคอนฟิกพอร์ตให้อยู่ในโหมด Host-only คือเครื่องหลักและเครื่องเสมือนยังสามารถติดต่อส่งข้อมูลหากันได้ แม้พอร์ตของเครื่องหลัก (Host) จะไม่สามารถใช้งานได้ (Down) เช่นพอร์ตแลนไม่ได้เชื่อมเข้ากับสวิตช์ หรือ WiFi ไม่ได้ต่อ
คำแนะนำในการคอนฟิกเน็ตเวิร์กของเครื่องเสมือนใน VirtualBox
แต่ละโหมดคอนฟิกเน็ตเวิร์กของเครื่องเสมือนใน VirtualBox มีข้อดีข้อเสียแตกต่างกัน ความเห็นส่วนตัวขอแนะนำดังนี้
- ถ้าเป็นการติดตั้ง VirtualBox ในเครื่องส่วนตัว เพื่อทดลองหัดใช้ลีนุกซ์ หรือทดสอบโปรแกรมต่างๆ แนะนำคอนฟิกเครื่องเสมือน (Guest) ให้มี Network Adapter สองพอร์ต โดยพอร์ตแรกให้อยู่ในโหมด Host-only เพื่อให้จากเครื่องหลัก (Host) สามารถรีโมตไปยังเครื่องเสมือนได้ ส่วนอีกพอร์ตให้คอนฟิกในโหมด NAT เพื่อให้เครื่องเสมือนสามารถเชื่อมต่ออินเทอร์เน็ต เช่นใช้เพื่อการดาวน์โหลด ติดตั้ง อัปเดตโปรแกรมได้
- ถ้าติดตั้ง VirtualBox ในเครื่องเซิร์ฟเวอร์ เพื่อให้เครื่องเซิร์ฟเวอร์นี้มีหลาย OS แนะนำให้คอนฟิกพอร์ตเครื่องเสมือนอยู่ในโหมด Bridged เพื่อให้แต่ละเครื่องเสมือนมีอิสระจากกัน มี IP Address เพื่อให้เครื่องอื่นๆ จากภายนอกสามารถใช้งานได้สะดวก