Author Topic: [GNS3] : Load Sharing with multiple PC by Hypervisors  (Read 23444 times)

0 Members และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

pwatta

  • Guest
[GNS3] : Load Sharing with multiple PC by Hypervisors
« on: 05 เมษายน , 2010, 08:45:58 pm »
เพื่อนๆเคยอยากทำ LAB ขนาดใหญ่อลังการแบบในรูปข้างล่างนี้กันบ้างหรือเปล่า คำตอบน่าจะเป็นเคยคิดแต่ไม่เคยทำ เนื่องจาก spec เครื่องมีเท่านี้จะไปทำได้ไง(ฟะ) [onion5] หรือแค่ router 3 ตัวก็ไม่รอดแล้วเพ่ [onion14] คำตอบเหล่านี้จะหมดไปด้วยกระทู้นี้ [onion26]



ทำความร้จัก Hypervisor กันก่อน
     เอาแบบย่อๆ Hypervisor คือ ตัวจำลอง hardware ของ router ที่มีโครงสร้างพื้นฐานมากับการพัฒนาโปรแกรม Dynamips โดยเป็นตัวจัดการทรัพยากรณ์ให้กับ virtual router ที่เราสร้างขึ้นมาใน LAB โดยที่ Hypervisor หนึ่งตัวจะสามารถควบคุม virtual router ได้ 1 กลุ่มเท่านั้นโดยทั่วไปจะถูกกำหนดโดยขนาดของ RAM เมื่อมีการใช้งาน RAM เกินกว่าที่กำหนดจะต้องสร้าง Hypervisor อีกตัวเพื่อมารองรับ process ที่เกิดขึ้นใหม่  ถ้าไม่มีการสร้าง Hypervisor ใหม่จะเป็นเหตุให้ Dynamips เกิดอาการ crash ได้ สำหรับค่าโดยปกติของ Hypervisor มีค่า 512Mb และ Hypervisor ยังมีคุณสมบัติอีกด้านที่น่าสนใจคือใช้ port udp ในการสื่อสารดังนั้นเราจึงสามารถนำ Hypervisor มาใช้ประโยชน์เพื่อการใช้งานในบทความนี้ได้โดยการใช้ Hypervisor บน Host (PC) เครื่องอื่นโดยผ่าน port udp นี้นั่นเอง สำหรับ port ของ hypervisor ที่ใช้งานตามปกติคือ udp 7200
     สำหรับการจัดการ Hypervisor process ในโปรแกรม GNS3 นั้นหลายๆท่านอาจจะมองข้ามไปได้เลยเนื่องจากตัว GNS3 ทำการจัดการ Hypervisor ให้โดยอัตโนมัติกล่าวคือเมื่อมีการสร้าง virtual router ขึ้นและมีการใช้งานทรัพยากรณ์ของเครื่องเกินกว่าที่ Hypervisor หนึ่งตัวจะรับได้ GNS3 จะสร้าง Hypervisor ขึ้นมาอีกตัวเพื่อรองรับการใช้งานในส่วนที่เกินให้โดยอัตโนมัติ สังเกตุได้จาก menu IOS images and Hypervisors ในส่วนของ Hypervisors จะมีการเลือก Use the hypervisor manager อยู่แล้วตามรูป



แล้วจะรู้ได้ยังไงว่ามี Hypervisor ใช้งานอยู่แล้ว ??? คำตอบก็คือดูได้จาก process ที่ run อยู่ในชื่อ Dynamips นั่นเองตัวอย่างในรูปเนื่องจากผมใช้ windows process จึงมีชื่อว่า dynamips-wxp.exe



สำหรับเรื่อง Hypervisor เอาไว้แค่นี้นะครับมาเข้าเรื่องเลยดีกว่า
« Last Edit: 05 เมษายน , 2010, 10:07:53 pm by อ่อนด๋อย »

pwatta

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #1 on: 05 เมษายน , 2010, 08:47:16 pm »
สำหรับการที่จะทำ Load Sharing ตามหัวข้อกระทู้นั้นจะต้องใช้ความสามารถของ Hypervisor ดังนั้นจึงมีการเกริ่นนำกันก่อนสักเล็กน้อยตอนนี้มาเริ่มเข้าขั้นตอนกันเลยว่าจะต้องมีการเตรียมอะไรกันบ้างครับ

การเตรียมความพร้อม

1. PC 2 เครื่องขึ้นไป (แหงสิไม่งั้นจะทำ Load Sharing ได้ไง)
2. ลงโปรแกรม GNS3 และกำหนด Path ที่จำเป็นทั้งหมดให้ตรงกันทุก Path ** ข้อนี้สำคัญที่สุดเลยนะครับ
3. ให้เครื่องทั้งสองเครื่องเชื่อมต่อกันผ่าน network โดยจะต้องทำการ ping หากันได้
4. ทำการเช็ค firewall ว่าเปิด port ที่จะใช้งานระหว่างเชื่อมต่อกันไว้หรือยัง
    - สำหรับในตัวอย่างนี้ผมจะใช้ Hypervisor port udp 7200 สำหรับ PC ตัวที่ 1
    - และ Hypervisor port udp 7201 สำหรับ PC ตัวที่ 2
5. ทำการเพิ่ม External Hypervisor เข้าไปโดยกำหนด IP address , Port , Base UDP , Base Console และ Working Directory (ต้องสัมพันธ์กับข้อ 2 นะครับ)
6. การ add IOS เข้าไปใหม่ให้ระบุเครื่องที่ใช้เป็น IP address เท่านั้นห้ามใช้ localhost และต้องทำการยกเลิกการใช้งาน Hypervisor manager
7. ทั้งสองเครื่องต้องผ่านการหาค่า idlepc มาแล้ว และจะต้องหา idlepc ให้กับ IOS ที่ใช้ Hypervisor จากเครื่องอื่นด้วยเช่นเดียวกัน

ขั้นตอนพร้อมรูปกันงงครับ

ขั้นตอนที่ 1 เชื่อมต่อ PC เข้าหากันตามรูปครับตามตัวอย่างผมใช้ VMware


ขั้นตอนที่ 2 การกำหนด Path  ** ถ้ากำหนดไม่ตรงกันทั้งสองเครื่องจะไม่สามารถใช้งานได้

ในส่วนนี้แยกออกเป็นสองส่วนย่อยคือ
2.1 การกำหนด path ที่ General setting เป็นการกำหนด Path ของ Project Directory และ IOS Directory


2.2 การกำหนด path ที่ Dynamips setting เป็นการกำหนด Path ของ Dynamips working directory


ทั้งสองหัวข้อนี้ผมกำหนด Path ใหม่โดยให้อยู่ใต้ Path C:\Program Files\GNS3\ เพื่อความเป็นระเบียบและจัดการง่าย

ขั้นตอนที่ 3 ผลการ ping test บน VMware

« Last Edit: 06 เมษายน , 2010, 01:52:49 am by อ่อนด๋อย »

pwatta

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #2 on: 05 เมษายน , 2010, 08:47:40 pm »
ขั้นตอนที่ 4 กำหนด Port ที่จะให้ Hypervisor ทำงานบน PC ตัวที่ 1 และ 2 โดยมีขั้นตอนดังนี้

4.1 เข้าไปที่ Path C:\Program Files\GNS3
4.2 ทำการ copy file dynamips-start.cmd แล้วเปลี่ยนชื่อเป็น Hypervisor7200.cmd สำหรับ PC1 และ Hypervisor7201.cmd สำหรับ PC2 โดยภายใน file มีค่าตามนี้

ไฟล์ Hypervisor7200.cmd ที่ PC1
Code: [Select]
@echo off
rem Launch a local copy of dynamips
set dynamips=%CD%\Dynamips\dynamips-wxp.exe
cd %TEMP%
start /belownormal /B /wait "Dynamips" "%dynamips%" -H 7200  --> port ตามปกติ
pause

ไฟล์ Hypervisor7201.cmd ที่ PC2
Code: [Select]
@echo off
rem Launch a local copy of dynamips
set dynamips=%CD%\Dynamips\dynamips-wxp.exe
cd %TEMP%
start /belownormal /B /wait "Dynamips" "%dynamips%" -H 7201 --> เปลี่ยนแค่ port ตรงนี้เท่านั้น
pause


ขั้นตอนที่ 5 การกำหนดค่าให้กับ External Hypervisor ขั้นตอนนี้ทั้งสองเครื่องต้องทำเหมือนกัน



ขั้นตอนที่ 6 การ add IOS มีขั้นตอนย่อยดังนี้

6.1 ต้องเลือกว่าจะไม่ใช้ Hypervisor Manager
6.2 ทำการ Add IOS ที่มีอยู่ในเครื่องตามปกติ
6.3 ทำการเลือก Hypervisor ที่จะเป็นตัวจัดการ IOS ตัวที่เลือกในข้อ 6.2
6.4 ถ้าในสองเครื่องมี IOS นั้นเหมือนกันไม่ต้องทำการเลือก Default image เนื่องจากตอนที่เราลาก Virtual Router ลงมาใช้งานจะมีหัวข้อให้เลือกว่าจะให้ใช้ Hypervisor จากที่ไหน แต่ถ้าเลือก Default      image ไว้โปรแกรมจะเลือกจาก Default image เท่านั้น จากนั้นทำการ save ตามปกติ


« Last Edit: 06 เมษายน , 2010, 01:44:19 am by อ่อนด๋อย »

pwatta

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #3 on: 05 เมษายน , 2010, 08:48:10 pm »
เมื่อเตรียมความพร้อมเสร็จแล้วก็ลงมือทดสอบกันได้แล้วครับ

ขั้นตอนการทดลอง

1. ต้องทำการ start Hypervisor ที่แต่ละเครื่องแบบ manual เองทั้งสองเครื่อง


2. ที่เครื่อง PC1 เปิดโปรแกรม GNS3 แล้วทำการลาก virtual router มาเพื่อใช้งานสองตัวโดยมีข้อกำหนดดังนี้
    2.1 R0 ใช้ Hypervisor จาก IP address 192.168.200.128 (เครื่องตัวเอง)
    2.2 R1 ใช้ Hypervisor จาก IP address 192.168.200.129


3. ทำการ start R1 สังเกตุ CPU , RAM , Hypervisor7201 ที่ start ไว้ที่ PC2 ว่ามีความเปลี่ยนแปลงอย่างไร
4. ลอง start R0 สังเกตุ CPU , RAM , Hypervisor7200 ที่ start ไว้ที่ PC1 ว่ามีความเปลี่ยนแปลงอย่างไร
5. ลองเปลี่ยนไปใช้ PC2 เป็นตัวจัดการทั้งหมดได้ผลเป็นอย่างไร
6. ลองปิด Hypervisor ทั้งสองตัวสลับกันแล้วลอง start virtual router ได้ผลเป็นอย่างไร

ผลหลังจากที่ทำข้อ 3. ของผมบน VMware ได้ดังนี้ครับ


ถ้าใครได้ตามนี้ก็ขอแสดงความยินดีด้วย คุณสามารถนำ LAB นี้ไปใช้งานจริงต่อได้เลย ขอให้สนุกกับการทำ LAB แบบอลังการงานสร้างได้แล้วครับ  [onion41]

จบ LAB แล้วก็ขอเวลาไปทำ Thesis ต่อแล้วนะคร้าบบบบบ รอโอกาสเหมาะๆจะหาอะไรมาลงใหม่ อย่าลืม Comment นะคร้าบบบบบ [onion54]

ปล. ถ้าจะทำ LAB แบบใหญ่โตขนาดรูปแรกในกระทู้ควรจับกลุ่มกันแล้วช่วยกันทำจะได้มีคนช่วยเหลือและทบทวนความรู้ของตัวเองไปในตัวด้วยนะครับ (จะได้มีหลายเครื่องช่วยกัน run [onion41])
ปล.2 พอดีว่าผม capture แบบ video มาให้ดูไม่ได้ไม่รู้ว่าเครื่องเป็นอะไรขออภัยด้วยเน้อ [onion35]

ref & credits :  http://nchc.dl.sourceforge.net/project/gns-3/GNS3/0.5/GNS3-0.5-tutorial.pdf
                      http://7200emu.hacki.at/
                      http://www.siamnetworker.com/board/index.php?topic=390.0
« Last Edit: 07 เมษายน , 2010, 01:19:39 pm by อ่อนด๋อย »

spermaru

  • Layer 1
  • *
  • Posts: 41
  • จิตพิสัย +0/-0
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #4 on: 05 เมษายน , 2010, 10:32:08 pm »
เยี่ยมเลยครับ ผมเคยทำแต่ Multi-Server and Multi Hypervisor โดยใช้ dynamips run lab CCIE โดยมี router 3725 13 ตัว

มี Notebook 2 เครื่อง
- เครื่องแรก(Core 2 Duo Ram 4GB) ทำ 2 process run router 5 ตัว
- เครื่องสอง(Centrino 2 Ram 4GB) ทำ 2 process run router 8 ตัว

ทั้งหมดเป็น topology เดียวกัน โดย Control ที่เครื่องแรกเท่านั้น

http://dynagen.org/tutorial.htm#_Toc193248008

pwatta

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #5 on: 05 เมษายน , 2010, 10:39:59 pm »
เยี่ยมเลยครับ ผมเคยทำแต่ Multi-Server and Multi Hypervisor โดยใช้ dynamips run lab CCIE โดยมี router 3725 13 ตัว

มี Notebook 2 เครื่อง
- เครื่องแรก(Core 2 Duo Ram 4GB) ทำ 2 process run router 5 ตัว
- เครื่องสอง(Centrino 2 Ram 4GB) ทำ 2 process run router 8 ตัว

ทั้งหมดเป็น topology เดียวกัน โดย Control ที่เครื่องแรกเท่านั้น

http://dynagen.org/tutorial.htm#_Toc193248008


มันก็แบบเดียวกันอ่ะฮับ  [onion35] แค่ผมตั้งชื่อไม่เหมือนคนอื่นเขา  [onion54] แล้วก็เปลี่ยนมาใช้บน GNS3 แค่นั้นเอง  [onion112]

zenze

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #6 on: 07 เมษายน , 2010, 02:10:45 pm »
ขอบคุนครับพี่อ๋อ ที่เคยสอบมาลืมหมดแว้ว จะได้ทบทวนความจำ  [onion49] ขอบคุนหลาย ๆ คับ

zenithsoul

  • Layer 3
  • ***
  • Posts: 101
  • จิตพิสัย +0/-0
    • Email
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #7 on: 24 พฤษภาคม , 2010, 03:35:39 pm »
ผมลองแล้วนะ มีปัญหาตรงที่ Save & Load File อ่ะ  [onion54]
สวัสดีครับคุณ CREATIVE ....

pwatta

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #8 on: 24 พฤษภาคม , 2010, 03:57:14 pm »
ผมลองแล้วนะ มีปัญหาตรงที่ Save & Load File อ่ะ  [onion54]

เกี่ยวกับ path ที่ตั้งไว้ตอนแรกอ่ะครับเซ็ตตรงกันหรือเปล่า ตอนนี้ผมลบไฟล์พวกนี้ไปหมดแล้วอ่ะ ยังไงเดี๋ยวจะลองให้อีกครั้งแล้วกัน แต่คิวยาวมากเลยช่วงนี้เหอๆๆๆๆๆ รอไปก่อนนะครับ

zenithsoul

  • Layer 3
  • ***
  • Posts: 101
  • จิตพิสัย +0/-0
    • Email
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #9 on: 28 พฤษภาคม , 2010, 12:58:27 am »
ผมลองแล้วนะ มีปัญหาตรงที่ Save & Load File อ่ะ  [onion54]

เกี่ยวกับ path ที่ตั้งไว้ตอนแรกอ่ะครับเซ็ตตรงกันหรือเปล่า ตอนนี้ผมลบไฟล์พวกนี้ไปหมดแล้วอ่ะ ยังไงเดี๋ยวจะลองให้อีกครั้งแล้วกัน แต่คิวยาวมากเลยช่วงนี้เหอๆๆๆๆๆ รอไปก่อนนะครับ

ตอนนี้ Sol ปัญหาเรียบร้อยแล้วครับ   [onion54]

คือเครื่องที่ทำการ Load Sharing จะไม่สามารถทำการ New Project จาก GNS3 ได้เลย (หรือว่าผมเป็นคนเดียว  [onion56])

และถ้าจะ Save ก็ให้ใส่ ๆ ๆ อุปกรณ์บน GNS3 ก่อนถึงจะ Save ลงไปครับ แล้วทำการแก้ไขไฟล์เพิ่มเติมครับ โดยใน  file  *.net

จะต้องทำการใส่ Path การของตัวอุปกรณ์ให้เต็มรูปแบบเช่น                xxxxx\xxxxxx เป็น    a:\xxxxxx\xxxxx  แทน โดย a แทนค่าตัวอุปกรณ์

ส่วนค่า config ต่าง ๆ จะถูกเก็บไว้ใน File NVRAM ที่ GNS 3 สร้างขึ้นไว้ครับ

เช่น


PC1   =======================   PC2


PC1 Run GNS3 GUI สร้าง Router โดย โหลดแชร์ IOS ในเครื่อง PC2 มาไว้

เมื่อทำการ copy run start หรือ wr ใน Router ใน PC1 ค่า Config ต่าง ๆ จะถูกเก็บไว้ใน PC2 แทนครับ ตาม path file ที่ set ไว้แต่แรกครับ

แต่เราสามารถ export  config   ออกมาดูได้ตามปกติใน Menu GNS3 ครับ  [onion79]
สวัสดีครับคุณ CREATIVE ....

Kied

  • Layer 2
  • **
  • Posts: 84
  • จิตพิสัย +0/-0
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #10 on: 28 พฤษภาคม , 2010, 08:31:03 pm »
upload file VDO ขึ้นเว็บเลยคับผม อยากลองทำตามมั่ง  [onion79]

ปลาวาฬทราย

  • Layer 5
  • *****
  • Posts: 558
  • จิตพิสัย +1/-0
    • ไทยซีพีอี
    • Email
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #11 on: 04 ตุลาคม , 2010, 06:16:36 pm »
แล้วถ้าให้เรียกจากเครื่อง server อย่างเดียวล่ะคับ
1. ขั้นตอนที่ 4 set dynamips-start.cmd ต้อง set ทั้งฝั่ง server และ pc ด้วยมั้ยคับพี่
2. ต้อง add ios สองบรรทัดมั้ย [onion56]
« Last Edit: 05 ตุลาคม , 2010, 08:38:25 am by ปลาวาฬทราย »
ปลาวาฬทราย
RMUTT CPE IX

pwatta

  • Guest
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #12 on: 05 ตุลาคม , 2010, 10:39:25 am »
แล้วถ้าให้เรียกจากเครื่อง server อย่างเดียวล่ะคับ
1. ขั้นตอนที่ 4 set dynamips-start.cmd ต้อง set ทั้งฝั่ง server และ pc ด้วยมั้ยคับพี่
2. ต้อง add ios สองบรรทัดมั้ย [onion56]

1. ทำที่ Server ที่เดียว แล้วตอนเลือก Router มาวางให้เลือกจาก IP ที่เป็นของ Server
2. IOS ใส่แค่ตัวของ Server ก็พอของเครื่องที่ใช้ไม่ต้องใส่

seanmine

  • Global Staff
  • Layer 5
  • ****
  • Posts: 776
  • จิตพิสัย +0/-0
    • Email
Re: [GNS3] : Load Sharing with multiple PC by Hypervisors
« Reply #13 on: 01 กรกฎาคม , 2012, 11:01:46 am »
มีประโยชน์มากๆ
จงเชื่อในความพยายาม