วันอาทิตย์ที่ 11 สิงหาคม พ.ศ. 2556

ปรับแต่ง virtualbox บน Ubuntu ให้ใช้ Guest ซึ่งต่อ Host-Only Networking ใช้ Internet ได้

โดย KX
สภาพแวดล้อม : Ubuntu Desktop 9.04, VirtualBox 3.0.2, Guest OS (2 Ubuntu Servers 8.04)


การต่อ Network ใน VirtualBox นั้นมีหลายแบบ
- NAT
- Bridge
- Internal Network
- Host-Only


ซึ่งหากต้องการทำการทดสอบ Server ต่างๆ ก่อนจะติดตั้งในระบบจริง การใช้ VirtualBox ให้ความสะดวกมาก
ระบบที่ต้องการคือ
1. มี Private IP ไม่เกี่ยวข้องกับภายนอก เช่นเล่นกับ ADSL ที่บ้าน หรือ ทดสอบใน Network ของที่ทำงานซึ่งจำกัดการใช้งาน IP Address
2. ต้องการให้เครื่อง Guest (เครื่องที่เป็น Virtual Machine) สามารถต่อ Internet เพื่อ Update ได้ด้วย
3. ไม่ต้องการให้ Network ภายนอกเข้าถึงเครื่องเหล่านี้ แต่ต้องการให้เฉพาะเครื่องที่เป็น Host OS สามารถติดต่อกับเครื่องภายในได้


ในการนี้ NAT ก็ไม่เหมาะ เพราะเมื่อมี Guest หลายๆเครื่อง มันจะมองไม่เห็นกัน
Bridge ก็ไม่เหมาะเพราะ แม้เครื่อง Guest จะสามารถใช้งาน Internet ได้ แต่หากติดตั้งแบบพื้นฐาน Guest จะได้ IP จริง (ใน Network เดียวกับ Host) และทำให้เครื่องภายนอก เข้าถึงเครื่องทดสอบได้
การติดตั้งให้ Bridge Network ทำงานได้ตามประสงค์ จะต้องแก้ไข Network Interface ของ Host OS ให้มี 2 IP Address ซึ่งค่อยข้างซับซ้อน



VirtualBox ใน Version ใหม่ๆ อย่าง 3.0.2 จึงมี Network แบบ Host-Only มาช่วยให้สามรถใช้งานตามต้องการได้ง่ายๆ ดังนี้
1.  ที่ Host OS (ในที่นี้ใช้ Ubuntu Desktop 9.04) ใช้คำสั่งต่อไปนี้

           sudo sysctl net.ipv4.ip_forward=1
           sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

      หากต้องการให้ทำทุกครั้งที่ boot เครื่อง ให้เขียนไว้ใน /etc/rc.local ก่อนบรรทัดที่เขียนว่า exit 0

           iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

       และเขียนใน /etc/sysctl.conf ที่บรรทัดล่างสุด

           net.ipv4.ip_forward = 1
      

2. ติดตั้ง dnsmasq เพื่อช่วยในการทำ DHCP และ DNS ง่ายๆ

           sudo apt-get install dnsmasq

           sudo /etc/init.d/dnsmasq stop

    2.1 แก้ไขไฟล์ /etc/dnsmasq.conf โดยแก้ interface ที่เครื่อง Guest จะถาม DHCP ในที่นี้คือ vboxnet0
          และแก้ไข  dhcp-range เพื่อกำหนดช่วยที่จะปล่อย ip address ในที่นี้ให้เป็นช่วย 10.0.2.130 - 10.0.2.140

            interface = vboxnet0
            dhcp-range = 10.0.2.130, 10.0.2.140,12h

          จากนั้น start dnsmasq ด้วยคำสั่ง

            sudo /etc/init.d/dnsmasq start

    2.3 การกำหนด Name ให้กับ IP Address ต่างๆที่แจกไปจาก DHCP ของ dnsmasq
          สามารถกำหนดที่ /etc/hosts ของเครื่อง Host ได้เลย เช่น
             10.0.2.131    u1.mydomain.com
             10.0.2.132    u2.mydomain.com
             10.0.2.133    u3.mydomain.com

          จากนั้น start dnsmasq ด้วยคำสั่ง

            sudo /etc/init.d/dnsmasq start

     2.4 หากต้องการกำหนด MX Record สำหรับระบบ E-Mail ภายใน ให้กำหนดค่า mx-host ใน /etc/dnsmasq.con ด้วย เช่น
           ต้องการให้ gw1.mydomain.com ทำหน้าที่เป็น MX ของ Domain mydomain.com ซึ่งอาจทำหน้าที่เป็น Spam Filtering
           หมายความว่า หากมี E-Mail ส่งให้ @mydomain.com ระบบจะส่งให้ gw1.mydomain.com เป็นต้น  โดยให้กำหนดค่าดังนี้
               mx-host=gw1.mydomain.com, mydomain.com, 10
           หากต้องการมี Failover ก็สามารถกำหนด Server ที่ทำหน้าที่รับช่วงต่อ หาก gw1.mydomain.com เสีย สมมุติให้ชื่อ gw2.mydomain.com
           โดยกำหนดตัวเลข หลังสุด เป็นมีค่ามากกว่า อันดับแรก เช่น 20 เป็นต้น
           ให้กำหนดดังนี้
               mx-host=gw1.mydomain.com, mydomain.com, 10
               mx-host=gw2.mydomain.com, mydomain.com, 20



3. ที่ VirtualBox GUI ให้ตั้งค่าใน

     เมนู File -> Preferences -> Network

     คลิกที่ Virtual Interface ซึ่งอาจจะชื่อว่า vboxnet0 แล้วกด Space Bar

     ในที่นี้ ต้องการให้ Network Adapter มี IP Address เป็น 10.0.2.128

 
     ที่สำคัญ ห้ามใช้ DHCP ของ VirtualBox ที่ให้มา เพราะทำอะไรหลายๆอย่างไม่ได้
 
4. สร้าง/ตั้งค่า Guest OS ในส่วนของ Network -> Adapter 1

    ค่า Attached to: ตั้งค่าเป็น Host-Only Adapter


5. เมื่อ Run Guest OS ขึ้นมา ให้ตั้งค่า Network แบบเรียกข้อมูลจาก DHCP ทั้งหมดได้เลย
    หรือจะกำหนด IP Address เองก็ได้ หากต้องการทำเป็น Server ทดสอบ แต่ต้องอยู่ใน Subnet ที่กำหนดไว้

1 ความคิดเห็น:

  1. Ubiquiti UAP Access Point in UAE, UniFi Access Point in UAE, Access Point in UAE
    https://gccgamers.com/ubiquiti-uap.html
    Ubiquiti Access Point in UAE, Safe Shopping Multiple Payment Options Express Delivery GCC Gamers Moneyback Guarantee.
    1634609991676-10

    ตอบลบ