Author Topic: [Dynamips] Dynamips / Dynagen (Step by Step) [12/01/10]  (Read 40942 times)

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

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
[Dynamips] Dynamips / Dynagen (Step by Step) [12/01/10]
« on: 11 กุมภาพันธ์ , 2009, 02:34:51 pm »



  Index



สำหรับบทความในกลุ่มแรกที่ผมเขียนเอาไว้ก็มีทั้งหมดประมาณนี้นะครับ ถ้าใครได้อ่านตั้งแต่ต้นจนจบ
อย่างน้อยๆก็คงจะสามารถทำ lab ขึ้นมาใช้งานได้อย่างแน่นอน ส่วนการนำไปใช้งานที่ซับซ้อนขึ้นนั้น
จากเรื่องที่ลงไว้ท้ายสุด ในเรื่องของการเชื่อมต่อระหว่าง lab กับโลกภายนอก ก็คงจะสามารถทำให้
นำไปประยุกต์ใช้งานได้อีกหลายเรื่องเลย ยังไงถ้าใครได้ลองอะไรที่น่าสนใจ ก็ลองเอาที่ได้ทดสอบทดลอง
มาโพสกันเอาไว้ให้เพื่อนๆในนี้ได้นำไปลองเล่นกันก็จะดีนะครับ ความรู้เรื่องพวกนี้มันจะได้กว้างออกไปอีก

จริงๆถ้ามีเวลาก็จะพยายามทำ tutorial ประกอบให้ครบทุกอัน แต่เนื่องจากตอนนี้ผมไม่ค่อยมีเวลาเท่าไหร่
ไม่แน่ใจเหมือนกันว่าจะได้กลับมาเขียนอีกรึเปล่า อย่างปีที่แล้ว ผมเองก็หายจาก thaiadmin ไปทั้งปีเลย


Archive : http://katiproject.info/category/index#dynamips-dynagen


ปล.เนื้อหาบางส่วนอาจจะมีข้อผิดพลาดหรือตกหล่นไป ยังไงก็ต้องขออภัยเพื่อนๆทุกท่านเอาไว้ด้วยนะครับ ^_^
« Last Edit: 27 กรกฎาคม , 2010, 11:20:14 pm by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
การติดตั้ง Dynamips / Dynagen (Tutorial)
« Reply #1 on: 11 กุมภาพันธ์ , 2009, 02:35:07 pm »


โปรแกรม dynamips นั้น เป็นโปรแกรม emulator ซึ่งทำให้เครื่องคอมพิวเตอร์ธรรมดาๆ สามารถจำลองตัวเอง ให้ใช้งาน ios images
และทำให้เราสามารถจำลอง router ขึ้นมาใช้งานได้ และยังสามารถจำลอง module ต่างๆของ router ให้ใช้งานได้อีกด้วย จึงเหมาะกับ
การจำลอง router ขึ้นมาเพื่อใช้งาน หรือ เอาไปใช้งานในการสร้าง home lab สำหรับสอบ แทนโปรแกรม simulator ต่างๆ หรือบางครั้ง
ก็อาจจะใช้สามารถใช้งานร่วมกับอุปกรณ์ network ของจริง หรือ อาจจะใช้แทนพวกอุปกรณ์จริงที่เคยใช้กันทั้งหมดเลยก็ได้

ปรกติแล้วเราสามารถสั่งงาน dynamips ได้โดยตรงโดยใช้คำสั่งแบบที่เป็น command line แต่เนื่องจากรูปแบบคำสั่งของ dynamips นั้น
อาจจะดูเข้าใจยาก หรือ ดูยุ่งยากในการใช้งาน จึงไม่ค่อยจะเหมาะกับการใช้งานของผู้ใช้ทั่วไป ดังนั้นการใช้งาน dynamips เพื่อจำลอง lab
ทางด้าน network หรือ ใช้ในการทำ lab เพื่อใช้สอบ จึงจำเป็นที่จะต้องมีการใช้งานร่วมกับโปรแกรมอื่นๆ ซึ่งโปรแกรมนั้นก็คือ dynaggen

โปรแกรม dynagen นั้นจริงๆแล้ว มันก็คือคือตัว front-end แบบ text base ของ dynamips ซึ่งทำหน้าที่ติดต่อกับผู้ใช้เพื่อที่จะทำให้เรา
สามารถคอนฟิก และ สั่งงาน dynamips ได้ง่ายขึ้น อีกทั้งยังเป็นตัวช่วยจัดการด้านรูปแบบของคอนฟิกไฟล์ ของ dynamips เพื่อให้อยู่ใน
รูปแบบที่สามารถเข้าใจได้ง่าย และ สามารถแก้ไขได้อีกด้วย (คอนฟิกของ dynamips นั้น เก็บข้อมูลเป็น text ไฟล์ มีนามสกุลเป็น .net)

Tutorial : flash video / download
 

# ขั้นตอนการติดตั้ง และคอนฟิกเบื้องต้น (update 10/01/09)

(ทดสอบโดยใช้ dynamips 0.2.8 rc2 ,dynagen 0.11.0 , winpcap 4.02 บน windows xp)

  #Step1 : การ download  ไฟล์ที่จำเป็น

    * ดาวน์โหลด dynamips , dynagen ที่เป็นตัว windows Installer จากเว็บ dynagen.org
    * ดาวน์โหลด winpcap จากเว็บไซท์ winpcap.org (เลือกหัวข้อ get winpcap จากหน้าหลัก)
    * ดาวน์โหลด ios (จากเว็บไซท์ของ cisco หรือ แหล่งอื่นๆ)

  #Step2 : การติดตั้งไฟล์ลงในระบบ

    * ติดตั้ง winpcap ลงในระบบเป็นอันดับแรก ( เพราะว่าตัว dynamips นั้น require เจ้า winpcap )
    * ติดตั้ง ติดตั้ง ตัว installer package ของ dynamips+dynagen ที่ได้จาก dynagen.org
    * ทำการ copy ไฟล์ ios ที่เราต้องใช้งาน ไปยัง /Program Files/Dynamips/images

  #Step3 : การเริ่มทำงานครั้งแรก

       #Step3 : การเริ่มทำงานครั้งแรก

    * เริ่มการทำงานของ dynamips ด้วยการไปคลิกที่ icon ของ Dynamips Server ที่อยู่บน desktop
      หลังจากนั้นจะมีกรอบข้อมูลของ dynamips ที่เป็น text mode รันขึ้นมา (ปล่อยค้างไว้แบบนั้น)

     

    * เข้าไปที่ C:\Program Files\Dynamips\sample_labs หรือ คลิกที่ icon ของ Dynagen Sample Labs ซึ่งอยู่ที่
      ตรง desktop แล้วเข้าไปที่ simple1.net  จากนั้นให้ทำการแก้ไข  network file   ด้วย wordpad เพื่อทำการแก้ไข
      ค่าต่างๆ เช่น ชื่อของไฟล์ ios image ที่เราจะใช้ และ เพิ่มรุ่นของ router เข้าไปใน config

      สำหรับ lab ในไฟล์นี้ มี router 2 ตัว คือ R1 และ R2 ซึ่งโดย default จะไม่กำหนดค่า module ของ router ทำให้
      ระบบมีการใช้ ios ที่ตั้งไว้ของ router รุ่น 7200 และใช้ ram ตามที่กำหนดเข้าไว้ในการจำลอง router เช่นเดียวกัน

         # Simple lab

            [localhost]

            [[7200]]   
            image = Program FilesDynamipsimagesc7200-jk9o3s-mz.124-7a.image << —– แก้ค่าให้ตรงกับ ios ของเรา
            # On Linux / Unix use forward slashes:
            # image = /opt/7200-images/c7200-jk9o3s-mz.124-7a.image
            npe = npe-400
            ram = 160
             
            [[ROUTER R1]]   
            s1/0 = R2 s1/0     <— การเชื่อมต่อของ R1 กับ R2
         
            [[router R2]]
            # No need to specify an adapter here, it is taken care of
            # by the interface specification under Router R1


      สำหรับรายละเอียดวิธีการแก้ไขค่าต่างๆในไฟล์ lab นั้น ผมได้แยกเอาไว้ในอีกกระทู้นึง ถ้าสนใจลองไปอ่านกันได้ครับ(คลิก)
      ถ้าใครอยากจะลองสร้างไฟล์ config ใหม่ของตัวเอง ก็ทำได้โดยสร้าง ไฟล์ชื่อ lab ที่เราต้องการ แล้วให้มีนามสกุลเป็น .net
      ส่วนค่า config เบื้องต้น แรกๆอาจจะ copy จากไฟล์ lab ต่างๆที่ dynagen ให้มาก็ได้ แล้วค่อยๆแก้ไขเอา 

    * หลังจากแก้ไขเสร็จ ให้ทำการเรียกใช้งานไฟล์ lab ที่ชื่อ simple1.net ด้วยการ ดับเบิ้ลคลิก แล้วจากนั้น ก็จะมีกรอบหน้าจอ
      ที่เป็น text ขึ้นมา ซึ่งในการเริ่มใช้งานไฟล์ lab ครั้งแรก ระบบจะยังไม่มีค่าของ idlepc ให้ทำการกำหนดค่า idlepc ก่อน ซึ่ง
      ขึ้นตอนในการตั้งค่า idle pc นี้ มีรายละเอียดค่อนข้างเยอะ เอาเป็นว่าผมขอแยกไปไว้ในกระทู้ต่อไปก็แล้วกันนะครับ (คลิก)

      ( ค่า idle pc ตรงนี้ ถ้าไม่ตั้ง จะทำให้เครื่องของเรา รัน lab โดยใช้ process ของ cpu สูงสุด คือเต็ม 100% เลยครับ)

     
      *** เมื่อเราใช้ dynamips/dynagen ในการรัน lab ครั้งแรก dynagen จะแจ้งว่า router ที่สร้างขึ้น ไม่มีค่า idle pc

    * หลังจากตั้งค่า idlepc เสร็จ ก็ทำการ telnet เข้าไปยัง router โดยใช้คำสั่ง telnet แล้วตามด้วยชื่อ router
      หรือใช้คำสั่ง telnet /all แล้วจากนั้น จะมีกรอบหน้าจอขึ้นมาให้อีกอัน เป็นหน้าจอของโปรแกรม telnet ก็ให้
      เราทำการ config ตัว routerจากตรงนี้แหละครับ

          Connected to Dynamips VM "R1" (ID 0, type c3600) – Console port

      แต่ถ้าหากว่าหน้าจอมันดำๆ แล้วไม่มีอะไรขึ้นมาอีก ก็ให้ลอง enter ไปซักสองสามที จนกว่ามันจะมี prompt ขึ้นมาครับ
   

memo (http://katiproject.info/dynamips-dynagen/dynamips-dynagen-installation)

memo

สำหรับผู้ที่เริ่มใช้งาน dynamips/dynagen เป็นครั้งแรกนั้น ขอแนะนำให้ลองใช้งานไฟล์ lab ที่มากับโปรแกรมก่อน เพราะว่ามันจะมี
ไฟล์ lab ให้เราลองอยู่หลายๆ lab เหมือนกัน ไฟล์ lab เหล่านั้นจะอยู่ที่ C:\Program Files\Dynamips\sample_labs หรือ คลิกที่
icon ตรง desktop ที่เขียนว่า Dynagen Sample Labs ถ้าหากต้องการจะแก้ไขหรือเพิ่มเติม สามารถอ่านข้อมูลได้จาก link ข้างล่าง

ในการใช้งาน lab ในครั้งแรกนั้น เราจะต้องมีการตั้งค่า idle pc ให้กับ router ที่เราสร้างขึ้นมาซะก่อน ซึ่งจริงๆแล้วคือการตั้งค่า idle pc
ให้กับ ios image ที่ routerใช้งานั่นเอง และถ้าหากเราไม่ได้มีการตั้งค่า idle pc ให้กับ ios image แล้ว การใช้งาน cpu ก็จะสูงมากๆ
หรืออาาจะมีการใช้งาน cpu จนเต็ม 100% เลยก็ได้ สำหรับขั้นตอนการตั้งค่าพวกนี้ เนื่องจากมันมีรายละเอียดผมเลยแยกไว้อีกกระทู้นึง

        - การแก้ไขเพิ่มเติมค่า ios images ในไฟล์ lab
        - การหาค่า Idle pc ที่เหมาะสม ให้ Dynamips

สำหรับคนที่ใช้ dynamips/dynagen บน windows vista แล้วเกิดปัญหากับการใช้โปรแกรม telnet อาจเป็นเพราะว่าตัว vista นั้น
ไม่ได้มีการติดตั้งโปรแกรมที่ใช้งาน telnet มาให้ตั้งแต่แรก ซึ่งตรงนี้ เราก็ต้องเลือกติดตั้งเพิ่มเข้าไปครับ การติดตั้ง telnet client บน
 windows vista สามารถทำได้โดย ไปที่ Control Panel > Programs and Features > Turn Windows features on or off
แล้วติ๊กเครื่องหมายถูกที่ Telnet Client จากนั้นก็จะสามารถใช้งานได้
 
สำหรับผู้ที่ใช้งาน dynamips บน windows 7 ที่อยู่ของ dynamips นั้น จะอยู่ที่ C:\Program Files (x86)\Dynamips\ ส่วน folder
ที่จะให้เราเอาไว้ใช้เก็บ ios image นั้น ก็จะอยู่ที่ C:\Program Files (x86)\Dynamips\images ครับ (ตรงนี้เราเปลี่ยนได้นะครับ)

Quote from: ตัวอย่างคอนฟิกทที่เพิ่มการใช้งาน ios ของ cisco 3640 ( แก้ไขจาก simple1.net )

# Simple lab
[localhost]

    [[7200]]
    image = \Program Files\Dynamips\images\c7200-jk9o3s-mz.124-7a.image
    npe = npe-400
    ram = 160

    [[3640]]   <-- เพิ่ม router เข้าไปใน config
    image = \Program Files\Dynamips\images\c3640-i-mz.124-12.bin   <--- เพิ่มชื่อไฟล์ ios ของ 3640 ลงไป
    slot0 = NM-4E <--- เพิ่ม card เข้าไป (3640 มี 4slot) ดูข้อมูลได้จาก
    slot1 = NM-4T     Hardware Currently Emulated ของเว็บ dynagen
    ram = 96   <--- กำหนด ram ที่ router จะใช้
       
    [[ROUTER R1]]
    model = 3640   <--- กำหนดให้ R1 เป็น cisco 3640 (router จะไปใช้งาน ios image ที่เราเพิ่มเข้าไป)
    s1/0 = R2 s1/0    <--- กำหนดการเชื่อต่อให้ interface s1/0 ของ R1 ไปเชื่อมต่อกับ interface s1/0 ของ R2
                                            ถ้ามีการตั้งค่าการเชื่อมต่อกันไปแล้ว ไม่ต้องตั้งค่าซ้ำที่ R2 อีก
         
    [[router R2]]
    model = 3640  <--- กำหนดให้ R2 เป็น cisco 3640

    # No need to specify an adapter here, it is taken care of 
    # by the interface specification under Router R1


*** จากที่ลองดู สำหรับ router 3640 ถ้าเราไม่ติดตั้ card อะไรเพิ่มเติม จะมี default เป็น NM-4T

สำหรับใครที่อยากได้ไฟล์ตัวอย่างของ simple1.net ที่ได้รับการปรับแก้ตามตัวอย่างข้างล่าง สามารถโหลดไฟล์ที่แนบไว้ไปใช้ได้เลย
แต่ถ้าใช้งาน ios image คนละตัวกันกับกับของผม ก็ให้ไปสร้าง router ต้นแบบขึ้นมาใหม่ แล้วแก้ไขค่า model และ image ให้ตรงกัน
กับ ios image ที่ใช้งานอยู่ แค่นี้ก็จะสามารถใช้งานไฟล์ lab อันนี้ได้แล้วครับ (อย่าลืม rename เอา .txt ด้านหลังไฟล์ออกด้วยนะครับ)

« Last Edit: 27 กรกฎาคม , 2010, 11:20:44 pm by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
การหาค่า Idle pc ที่เหมาะสม ให้ Dynamips
« Reply #2 on: 11 กุมภาพันธ์ , 2009, 02:35:39 pm »


[รอการตรวจสอบ / แก้ไข]

สำหรับผู้ที่ได้ทำการติดตั้ง dynamips/dynagen เอาไว้ที่เครื่องเรียบร้อยแล้ว ถ้าหากว่าต้องการจะใช้งาน lab ที่เราสร้างขึ้น
เป็นครั้งแรกๆ จะต้องมีการตั้งค่า idlepc ซะก่อน เพื่อทำให้ dynamips ให้กับ ios image ไม่ใช้งาน cpu จนเต็มที่ซึ่งจะส่งผล
ให้เครื่องของเราทำงานช้าลง หรือ อาจจะเกิดอาการอืดๆจนทำงานไม่ได้เลยก็มี

สำหรับค่า idle pc นั้น จะใช้ในการบอกให้dynamips ทำการพักการทำงานของ virtual router เป็นครั้งคราว เพื่อไม่ให้ตัวของ
dynamips ต้องทำงานอยู่ตลอดเวลาซึ่งจะส่งผลต่อการใช้งาน cpu ของเครื่องคอมของเราด้วย การตั้งค่า idle pc นั้น จริงๆแล้ว
ไม่ใช่การตั้งค่าให้กับตัวของ router ที่สร้างขึ้น แต่ว่าเป็นการตั้งค่า idle pc ให้กับ ios image ที่ router ใช้งานอยู่

ดังนั้นถ้าเราเคยมีการตั้งค่า idle pc ให้กับ iosไปแล้วครั้งนึง ตัว dynagen ก็จะทำการเก็บค่า idle pc เอาไว้ในไฟล์ database
ไฟล์นึง ทำให้ในการใช้งานครั้งต่อไปเราก็ไม่ต้องทำการตั้งค่านี้ถ้าหากว่าเรามีการใช้งาน ios ตัวเดิม

ถ้าในไฟล์ lab ของเรามี router ที่ใช้งาน ios รุ่นเดียวกันทั้งหมด เราก็ทำการหาค่า idle pc ให้กับ router เพียงตัวใดตัวนึงก็พอ
แต่ถ้าหากว่าเรามี router ที่ใช้ ios ต่างกันไป เราก็ควรจะทำการหาค่า idle pc ให้กับ router ตัวอื่นๆที่ใช้ ios ต่างๆกันด้วย โดยที่
ถ้าเราใช้ ios ต่างกัน2ตัว เราก็ทำการหาค่า idle pc แค่ 2 ค่าถึงแม้ว่าจะมี router ที่อยู่ใน lab มากกว่านั้นก็ตาม

(ios image ที่มีเวอร์ชั่นเดียวกันแต่ฟีเจอร์เซ็ตต่างกันก็ถือเป็นคนละตัว เพราะว่าค่า idle pc จะคำนวนจากข้อมูล ios ตัวที่เราใช้งาน)


# ขั้นตอนในการหาค่า idlepc   (ของ R1)

    * ทำการเรียก dynamips ขึ้นมา โดยไปคลิกที่ icon ของ dynamips server
    * ทำการเรียกใช้ไฟล์ lab ขึ้นมาใช้ โดยไปคลิกที่ไฟล์ lab (.net) ที่ต้องการ
    * ทำการสั่งให้เร้าท์เตอร์ R1 ทำงาน ด้วยคำสั่ง start R1
    * ทำการ telnet เข้าไปยังเร้าท์เตอร์ R1 ด้วยคำสั่ง telnet R1 (รอจนจนเข้าสู่ prompt ของ user mode)
    * ทำการหาค่า idlepc ด้วยคำสั่ง idlepc get R1
    * ทำการตรวจสอบการใช้งาน cpu โดยใช้ windows task manager หรือ process explorer
    * ทำการบันทึกค่า idlepc โดยใช้คำสั่ง idlepc save R1 db (ถ้าค่านั้นทำให้การใช้ cpu ลดลงอย่างมากๆ)


# การหาค่า idlepc ที่เหมาะสม (ของ R1)

สำหรับขั้นตอนแรกในการที่ในการที่จะตั้งค่า idlepc นั้น เราก็จะต้องทำการเรียกไฟล์ lab ที่เราต้องการจะใช้งานขึ้นมาก่อน
จากตัวอย่างในตอนที่แล้ว เราจะเรียกเอาไฟล์ชื่อ simple1.net ขึ้นมาใช้งานก็ได้ สำหรับขั้นตอนในการเรียกใช้งาน ไฟล์ lab
เราก็จะต้องเรียกโปรแกรม dynamips ขึ้นมาก่อน โดยไปทำการดับเบิ้ลคลิกที่ icon ของ dynamips server บน desktop
จากนั้นก็เข้าไปที่ folder ที่เก็บไฟล์ lab เอาไว้  จากนั้นก็รอให้ขึ้นกรอบหน้าจอของ dynagen ขึ้นมา และมีเครื่องหมาย =>

ในขั้นตอนนี้ ถือว่าไฟล์ lab ที่เราเรียกใช้งานนั้น ได้มีการทำงานขึ้นมาแล้ว ถ้าเราอยากจะทราบว่าในไฟล์ lab นั้นมีอุปกรณ์
อยู่ทั้งหมดกี่ตัว เราก็ใช้คำสั่ง list เพื่อตรวจสอบ จำนวน และ ชื่อ ของอุปกรณ์ที่มีการใช้งานอยู่ (รวมทั้งดูค่าที่เกี่ยวข้องอื่นๆ)

          =>list

อย่างที่บอกเอาไว้ว่า การหาค่า idlepc นั้น ถ้า router ที่ใช้งานอยู่ มีการใช้งาน ios image ตัวเดียวกัน การหาค่านี้ ก็จะทำกับ
router เพียงตัวใดตัวนึงวก็พอแล้ว สำหรับขั้นตอนในการหาค่า idlepc นั้น  อันดับแรก เราจะต้องเปิด router ขึ้นมาใช้งานก่อน
อย่างน้อยตัวนึงแล้วจากนั้นก็ถึงจะสามารถทำการหาค่า idle pc ได้ การสั่งให้ router ทำงาน ใช้คำสั่ง start <ตามด้วยชื่อ router>

        =>start R1

หลังจากที่เราสั่งให้มีการ start เร้าท์เตอร์ขึ้นมาทำงาน เราก็จะต้องทำการ telnet เข้าไปยังเร้าท์เตอร์ เพื่อให้มันเข้าสู่การใช้งานปรกติ

       =>telnet R1

หลังจากที่เราสั่งให้มีการ telnet เข้าไปยัง เร้าท์เตอร์ R1 ก็จะปรากฎหน้าจอ telnet ขึ้นมา 1 อัน แล้วก็จะแสดงข้อมูลของเ้ร้าท์เตอร์
โดยในตอนแรก ก็จะแสดงขั้นตอนของการ extract ios image ของเร้าท์เตอร์ ขึ้นมาใช้งาน (ซึ่งตรงนี้จะเสียเวลานิดหน่อย) จากนั้น
ก็จะมีการแสดงค่าต่างๆของ router อย่างที่เราใช้งานกันปรกติ แล้วสุดท้ายจะมาหยุดที่ configuration dialog ให้เราตอบ no ไป
จากนั้นก็จะมาถึงข้อความที่ว่า Press Return to Get Start  ก็ให้เราทำการกด enter ไปซักสองสามทีจนเข้า prompt

หลังจากเสร็จสิ้นขั้นตอนในการบูทเร้าท์เตอร์ ตัวที่เราต้องการขึ้นมาทำงานแล้ว ขั้นตอนต่อไปก็คือ เราจะต้องทำการรหาค่า idle pc
ที่เหมาะสมให้กับ ios image ที่เร้าท์เตอร์ตัวนั้น และ เร้าท์เตอร์ตัวอื่นๆใช้งานอยู่ โดยใช้คำสั่ง idle pc get R1 เพื่อหาค่า idlepc
ที่เหมาะสมกับการใช้งาน ios เราที่ใช้ใน router 1 จากนั้นรอซักพัก ก็จะมีการแสดงค่า idlepc หลายๆค่าขึ้นมา

ในขั้นตอนตรงนี้ ถ้าหากว่าระบบทำการ list ค่าขึ้นมา แล้วค่าไหน มีรูป * อยู่ข้างหลัง แปลว่าเป็นค่าที่ ค่อนข้างเหมาะสม ซึ่งบางครั้ง
ก็อาจจะไม่มีเลยหรือมีมากกว่า 1 ค่าก็ได้ ถ้าไม่มีค่าที่มี * เลย เราก็แค่ทำขั้นตอนนี้ซ้ำใหม่หรือ ถ้ามีหลายค่า แต่ว่าแต่ละค่าที่ได้นั้น
สูงไป ก็เริ่มหาค่าidlepc นี้ใหม่อีกเช่นกัน ( ถ้าเราพิมพ์ แค่ idlepc เฉยๆ มันจะโชว์การใช้งานคำสั่งนี้ครับ )

       => idlepc get R1 <<— รูปแบบคำสั่ง idlepc get <ชื่อของ router>
       Please wait while gathering statistics…
       1: 0×604a0508 [45]
       2: 0×6058a6ac [44]
       3: 0×6058a6b0 [22]
       4: 0×605c2824 [44]
    * 5: 0×6049c198 [53]
    * 6: 0×6049c1f8 [51]
       7: 0×6049c22c [21]
       8: 0×6049c240 [40]
       9: 0×605bc334 [33]
    * 10: 0×605bc364 [51]

       Potentially better idlepc values marked with “*” Enter the number of
       the idlepc value to apply [1-10] or ENTER for no change: 10 <—- เราเลือกค่าที่ 10

       Applied idlepc value 0×605bc364 to R1


ถ้า ใช้คำสั่งแล้วเกิด error อาจจะเป็นไปได้ว่าใส่ชื่อ router ผิด ชื่อ router ตั้งไว้ยังไง ต้องใช้ชื่อนั้นเลยเพราะว่า dynagen นั้น จะใช้ชื่อ
เร้าท์เตอร์ที่เป็นแบบ case sensitive คือว่า ชื่อที่ใช้ตัวใหญ่ กับตัวเล็ก จะถือว่าต่างกัน ถ้าใส่ผิดก็จะไม่ทำการหาค่า idlepc ให้กับเรา

ถ้าค่าที่ได้เครื่องหมาย * มีหลายค่า และมีค่าที่ต่ำที่สุดอย่างที่เราต้องการ เราก็กดหมาเลขข้างหน้าค่านั้น เพื่อทำการเลือกค่าที่ต้องการ
แล้วลองไปดูว่า พอเปลี่ยนค่า idlepc แล้ว ค่า cpu usage ลดลงหรือไม่ถ้าค่านั้น ทำให้ cpu usage ลดลง ก็ค่อยบันทึกค่า โดยใช้คำสั่ง
idlepc save R1 db เพื่อบันทึกค่าที่ได้ ลงในฐานข้อมูลของ dynagen

       => idlepc save <ชื่อ router> db <— รูปแบบคำสั่ง

แต่ถ้าค่าที่ได้ ไม่ทำให้ cpu usage ลดลง เราก็ยังไม่ต้องทำการ save และยังไม่ต้องตั้งค่า idlepc ตอนนี้ เพราะว่าุถ้าหากตั้งไปแล้ว
ระบบจะไม่ให้เราทำการตั้งค่าใหม่ เนื่องจากค่าเดิมมีอยู่แล้ว ดังนั้นก็ให้ close หน้าต่างของ dynamips serverและหน้าต่างของ lab
แล้วค่อย สั่งรันอีกที เพื่อตั้งค่าใหม่ หรือ จะใช้คำสั่ง idlepc show แล้วตามด้วยชื่อของ router ตัวที่ต้องการ เพื่อให้ระบบแสดงค่า
idlepc ของ router ให้เราเลือกอีกครั้งก็ได้ครับ

       => idlepc show <ชื่อ router><— รูปแบบคำสั่ง

*** ถ้าเราได้ค่า idlepc ที่เหมาะสมแล้ว หลังจากนี้ เวลาเรารัน dynamips และ lab ขึ้นมาใหม่ ค่า cpu usage ก็น่าจะลดลงกว่าเดิมครับ
(ถ้าค่าที่ได้ ไม่ทำให้ cpu usage ลดลง ก็อาจจะไปลบค่า idlepcออกจากไฟล์ lab หรือ ลบค่า idlepc ของ ios ในไฟล์ dynagenidledb.ini)


Memo (http://archive.katiproject.info/dynamips-dynagen/idlepc-for-dynamips)

ถ้าหากว่าค่า idle pc ที่เราทำการหามาได้นั้น ไม่ได้ช่วยให้ cpu มีการทำงานลดลง เราก็สามารถที่จะทำการหาค่านี้อีกลายๆครั้งก็ได้
หาจนกว่าจะได้ค่าที่ทำให้การทำงานของ cpu นั้น มีค่าลดลงจากเดิมอย่างมากๆ ปรกติแล้วค่า idlepc ที่เหมาะสม จะช่วยการใช้งาน
cpu ลดลงได้ตั้งแต่หลังช่วงของการ boot ตัว router ขึ้นมาใช้งานหมายถึงว่า พอผ่านช่วยที่มีการ extract iosไปแล้ว การใช้งาน cpu
ของ dynamips ก็จะเริ่มลดลงไปเรื่อยๆจนถึงระดับต่ำ (จะลดลงได้มากหรือน้อย ก็ขึ้นอยู่กับ cpu ที่เราใช้งานอยู่ด้วงย)

จากการลองใช้งานดูพบว่า บางครั้ง ค่า idlepc ที่หาได้ ก็จะมีทั้งแบบที่ทำงานได้ตลอดเวลาตั้งแต่เราเริ่มบูทเร้าท์เตอร์เลย หรืออีกแบบ
ก็คือจะเป็นค่า idlepc ที่จะเริ่มทำงาน (ลดการใช้งาน cpu) ต่อเมื่อเข้าเร้าท์เตอร์ได้เข้าสู่ mode ต่างๆของการคอนฟิกแล้วเท่านั้น ถ้าหาก
เร้าท์เตอร์ตัวใดตัวนึงหรือทั้งหมดที่ใช้งานอยู่มีการหลุดออกไปจาก user mode (time out ) จะทำให้ dynamips มีการใช้ cpu สูงขึ้น

ถ้าหากเราพบว่า ค่า idlepc ที่เราใช้งานอยู่ ทำให้ dynamips มีการใช้งาน cpu ลดลงได้เพียงบางช่วงเวลา เช่น เร้าท์เตอร์ที่เราใช้งาน
ตัวใดตัวนึงเกิดการ time out แล้วหลุดจาก mode  ที่กำลังใช้งานอยู่ แล้วพบว่ามีการใช้ cpu ที่สูงขึ้นมากๆ หรือมีการใช้งาน cpu สูงขึ้น
จนเต็มร้อย  และการใช้งาน cpu จะกลับมาลดลงเป็นปรกติเมื่อเราทำให้เร้าท์เตอร์เหล่านั้น กลับเข้ามายัง หน้าจอของ user mode

( เราอาจจะลองกด enter หลายๆหน เพื่อให้กลับเข้าหน้า prompt แล้วดูว่า dynamips มีการใช้งาน cpu จะลดลงหรือไม่)

สำหรับขั้นตอนในการแก้ไขค่า exec time out เราก็สามารถแก้ไขได้โดยตั้งค่า exec-timeout ของ line console 0 ซึ่งใช้ในการ telnet
เข้ามายัง router ให้มีค่ามากขึ้น หรือ ยกเลิก exec-timeout เพื่อป้องปัญหาที่จะเกิด ส่วนการแก้ไขการที่เร้าท์เตอร์ค้างการทำงานในขณะที่
มีการแสดงพวก message ต่างๆนั้น ให้แก้ไขด้วยการตั้งค่า logging synchronous เพื่อไม่ให้มีการค้างอยู่ที่หน้าจอการแจ้ง message ต่างๆ
เราจะต้องทำแบบนี้กับเร้าท์เตอร์ทุกตัวที่เราสร้างขึ้น ไม่เช่นนั้น วิธีนี้ก็อาจจะไม่ได้ผลเต็มที่ สำหรับขั้นตอนการตั้งค่ามีดังนี้  …
 
        Router>en
        Router#conf t
        Router(config)#line con 0
        Router(config-line)#exec-timeout 0 0
        Router(config-line)#logging synchronous

การแก้ไขปัญหาแบบนี้ โดยไปตั้งค่า exec-timeout ของ  router ทุกตัว ใน lab ให้เป็น 0 หรือ ให้มีระยะเวลาเพิ่มขึ้นมากๆ จะทำเพื่อลด
การเกิด time out  หรือ ยกเลิกการ timeout ของ router เพื่อจะได้ไม่ทำให้เกิดปัญหาในการใช้งาน cpu เต็ม 100 % เกิดขึ้นมา

สำหรับบางคนที่คิดว่า การกลับไปทำการหาค่า idle pc ค่าอื่นๆที่เหมาะสม น่าจะเป็นวิธีที่สะดวกและรวดเร็วกว่า ก็สามารถทำแบบนั้นไปก็ได้
แต่วิธีการนี้อาจสะดวกและรวดเร็วกว่าการเสียเวลาเพื่อหาค่า idle pc จนได้ค่าที่ใช้งานได้ตลอดเวลาโดยไม่เกิดปัญหาเลยก็ได้

ค่า exec-timeout นั้น ค่าปรกติจะอยู่ที่ 10 นาที ถ้าอยากจะยืดเวลา เป็นซัก 3ชั่วโมง เราก็อาจจะใส่ค่าลงไป เป็น exec-timeout 180 0
(180 นาที 0 วินาที) แต่ถ้าเราใช้ค่าที่เป็น 0 0 ก็จะหมายถึงการสั่งไม่ให้มีการ time out  ครับ …

« Last Edit: 06 ธันวาคม , 2010, 03:35:27 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
การแก้ไขเพิ่มเติมค่า ios images ในไฟล์ lab
« Reply #3 on: 11 กุมภาพันธ์ , 2009, 02:36:01 pm »


ในการใช้งาน dynamips ในช่วงแรกๆนั้น หลายๆคนคงจะยังไม่สามารถสร้างไฟล์ lab ขึ้นมาใช้งานเองได้ ก็เลยจำเป็นที่จะต้อง
ไปหาไฟล์ lab มาจากที่อื่น ซึ่งอาจจะดาวน์โหลดมา หรือจะเอามาจากไฟล์ตัวอย่าง ที่มีมากับ dynamips/dynagen ก็ได้  ซึ่ง
ไฟล์ต่างๆที่ได้มาเหล่านี้ บางครั้งอาจจะใช้งานไม่ได้ เพราะว่ามีปัญหาในเรื่องของการที่เราไม่มี ios image ตามที่กำหนดเอาไว้
ในไฟล์ lab ดังนั้นเมื่อเราได้ไฟล์ lab จากที่ต่างๆมาแล้ว เราก็ต้องทำการแก้ไขค่า ios image ให้เป็นตัวที่เรามีอยู่ด้วย

ถ้าหากเรามี ios เป็นตัวเดียวกับที่ใช้ในไฟล์ lab ของเราแล้ว เราก็ไม่ต้องทำการแก้ไขค่าอะไรเลย แค่ย้ายไฟล์นั้นไปไว้ใน folder
ที่ชื่อ images ที่อยู่ใน C:\\Program Files\Dynamips\ ก็พอ หรือ ถ้าเรามีไฟล์ ios images ของ router รุ่นเดียวกันกับที่ใช้อยู่
ในไฟล์ lab แต่ว่าเป็นไฟล์ตัวอื่น ก็ให้ทำการ แก้ไขเฉพาะส่วนที่เป็นชื่อของไฟล์ ที่อยู่ในหัวข้อ image ก็พอ

แต่ถ้าเรามี ios image ของ router รุ่นอื่นๆ ที่ไม่ได้มีกำหนดเอาไว้ในไฟล์ lab เราก็ต้องทำการเพิ่มค่าเข้าไป และในกรณีที่เราจะ
ทำการเก็บ ios image ที่จะใช้งาน เอาไว้ใน folder อื่น ซึ่งเป็นคนละอันกับค่าที่อยู่ในไฟล์คอนฟิก ก็ให้ทำการแก้ไขค่าของ path
ที่ใช้เก็บ  ios image ในไฟล์ lab ที่จะใช้งาน ก็จะทำให้เราสามารถใช้งานไฟล์ lab อันนั้นได้แล้วครับ


การเพิ่มเติมค่า ios images  [ flash video ]

ก่อนอื่น ให้ทำการ copy ไฟล์ ios images ที่มีอยู่ไปไว้ที่ c:\program files\dynamips\images\ จากนั้น ก็ให้เปิดไฟล์ lab
ที่เราต้องการขึ้นมาด้วย text editor อย่าง notepad หรือ word pad ก็ได้  แล้วทำการเพิ่มรุ่นของ router ลงไปก่อน โดยเพิมพ์
เครื่องหมาย [[ ]] แล้วใส่ชื่อรุ่นของ router ลงไป เช่น ถ้าเรามี ios สำหรับ router รุ่น 3640 ก็ใส่ค่า [[3640]] ลงไป จากนั้นก็ให้
ทำการกำหนดค่าของ path และ ชื่อของไฟล์ ios image ที่จะใช้งาน โดยใส่ค่าลงในหัวข้อ image

     [[3640]]
     image = \Program Files\Dynamips\images\c3640-i-mz.124-12.bin
 

จากนั้น ทำการกำหนดค่าของ card หรือ module ที่จะใส่ให้กับ router (บางตัวจะมีค่า default มาให้) ซึ่งจากตัวอย่าง ผมใช้
router รุ่น 3640 ซึ่งมี slot สำหรับใส่ card ได้ 4 slot ถ้าผมต้องการจะให้ slot0 ติดตั้ง NM-4E ลงไป เพื่อให้ router ของผม
มี ethernetinterface  และใน slot1 ติดตั้ง NM-4T เพื่อให้router ของผมมี serial interface ก็กำหนดค่า ลงไปว่า ...


   slot0 = NM-4E
   slot1 = NM-4T


จากนั้นก็ทำการตั้งค่า ram ให้กับ router โดยการกำหนดค่า ram = 128 (เป็นค่าสูงสุดของรุ่น 3640)

    ram = 128

จากนั้นทำการกำหนดให้ router ใน lab ทั้งสองตัว ใช้งาน ios image ตัวที่เราจะเพิ่มเข้าไปก็ให้เพิ่มค่า model = 3640
ลงในในส่วนข้อมูลของ router แต่ละตัว ตามที่เห็นข้างล่างนี้ . . .

    [[ROUTER R1]]
    model = 3640 
    s1/0 = R2 s1/0

                                 
    [[router R2]]
    model = 3640

หลังจากที่เราได้ทำการแก้ไขเพิ่มเติมเข้าไปประมาณนี้ ก็จะทำให้ไฟล์ไฟล์ lab  ของเราใช้งานได้แล้วครับ . . . ^_^


memo (http://katiproject.info/dynamips-dynagen/modify-simple1-net)

ข้อมูล slot / module ของ router ดูได้จาก hardware currently emulated ในเว็บ dynagen  หรับไฟล์ lab ที่มีการเชื่อมต่อ
แบบทั่วๆไป เราสามารถหาดาวน์โหลดได้จากเว็บไซท์ routerlabs.de  ซึ่งจะมี lab ให้เราเลือกไปใช้งานอยู่หลายๆแบบเลยครับ

ในบางครั้งถ้าในไฟล์ lab ที่เราได้มา มีการกำหนดค่า working dir ซึ่งใช้กำหนด folder ที่จะใช้เก็บไฟล์ต่างๆที่เกิดขึ้นเวลาที่เรารัน
ไฟล์ lab หรือมีการกำหนดหัวข้อ cnfg ซึ่งใช้เก็บไฟล์คอนฟิกของ router ที่สร้างขึ้น เราก็ต้องทำการแก้ไขค่า path เหล่านี้ให้ด้วย

------------------------------------------------------------------------------------------------------------------------------
# Simple lab
[localhost]

    [[7200]]
    image = \Program Files\Dynamips\images\c7200-jk9o3s-mz.124-7a.image
    npe = npe-400
    ram = 160

    [[3640]]
    image = \Program Files\Dynamips\images\c3640-i-mz.124-12.bin
    slot0 = NM-4E
    slot1 = NM-4T     
    ram = 128
    mmap = true
    ghostios = true   
 
  [[ROUTER R1]]
    model = 3640 
    s1/0 = R2 s1/0
                                 
    [[router R2]]
    model = 3640

    # No need to specify an adapter here, it is taken care of
    # by the interface specification under Router R1

หากคุณไม่ได้ใช้ ios ตัวเดียวกับผม ก็อย่าลืมแก้ค่าหัวข้อ images และ model ด้วยนะครับ


ข้อมูลจาก

Dynamips / Dynagen Tutorial (Revision 1.11.7) - 1700/2600/3600/3700 Routers


« Last Edit: 10 มกราคม , 2010, 02:48:25 am by =Aegis= »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
ปัญหา error ในการใช้งาน dynamips ครั้งแรก
« Reply #4 on: 11 กุมภาพันธ์ , 2009, 02:36:21 pm »


ในการเรียกใช้งาน dynamips/dynagen เป็นครั้งแรกนั้น หลายๆคนที่อ่านตามกระทู้ก่อนๆแล้วลองทำตามดู ก็อาจจะพบกับปัญหา
ที่คล้ายๆกันก็ได้ คือ จะมี error ขึ้นมาเต็มทั้งหน้าของ dynamips และ dynagen เลย ซึ่ง error เหล่านี้ ถ้าอ่านผ่านๆ แล้วก็เหมือน
error ต่างๆมันจะดูละลานตาไปหมด ทำให้งง หรือ ตกใจว่านี่มัน กำลังเกิดอะไรขึ้น และ ก็ทำให้ไม่แน่ใจว่าปัญหาเกิดจาก dynamips
หรือ dynagen กันแน่ ตรงนี้ถ้าสังเกตดีๆ จะพบว่า error จริงๆที่เราควรจะสนใจ ก็คือ error ที่ dynamips แจ้งเตือนเราว่า..

load_elf_image: open: Nosuch file or directory  และ C7200 ‘R1′ : fail to load cisco
IOS image
‘\Program Files\Dynamips\images\c7200-jk9o3s-mz.124-7a.image’.


ปัญหานี้เกิดจาก ในไฟล์ config มีการกำหนดค่า ios image ที่ใช้งานเอาไว้แล้ว แต่เราไม่มี ios ตัวนั้น โดยปรกติ dynagen จะมีไฟล์
ตัวอย่าง config มาให้เราลองใช้งานก็จริง แต่จะกำหนดให้ใช้ ios imageเป็นของรุ่น 7200 (c7200-jk9o3s-mz.124-7a.image)

(เราทำการรันไฟล์ lab ก่อนที่จะได้เข้าไปแก้ไขเพิ่มเติมข้อมูลของ ios ให้โปรแกรมมันมาใช้งาน ios ที่เรามี
ดังนั้นพอมันหา ios image ไม่เจอ ก็จะไม่สามารถสร้างไฟล์ต่างๆที่เกี่ยวข้องได้ ก็เลยเกิด error เพียบเลย)

ดังนั้นถ้าเราเอาไฟล์ lab จาก dynamips หรือ  จากที่อื่น มาลงไว้ใช้งาน เราก็จะต้องทำการแก้ไขค่าของ ios image ที่อยู่ในไฟล์นั้น
ให้เปลี่ยนมาเป็น ios ที่เราต้องการจะใช้งาน หรือ ที่เรามีอยู่ซะก่อน ถึงจะเริ่มใช้งานไฟล์ lab อันนั้นได้ ซึ่งการแก้เพิ่มเติมค่า ios image
ในไฟล์ lab นั้น อันดับแรก ให้ทำการ copy ไฟล์ ios image ที่เรามีไปไว้ที่ \Program Files\Dynamips\images\ แล้วก็ทำการแก้ไข
ชื่อของ ios image ที่เราจะเลือกใช้งาน ซึ่งอยู่ในหัวข้อ image ที่อยู่ใน network file ให้เป็นชื่อ ios ที่เรามี


memo (http://archive.katiproject.info/dynamips-dynagen/dynamips-error-first-start)

นอกจากการแจ้ง error แบบข้างบนแล้ว ในบางครั้งที่เราไม่มีไฟล์ ios image ตัวเดียวกันกับที่ใช้ในไฟล์ lab  เราก็อาจจะได้รับแจ้ง
error อีกตัวนึงก็ได้ ก็คือ Error: 209-unable to start instance ซึ่งการแก้ไขก็แค่ ทำการ copy ไฟล์ ios image ที่เรามีไปไว้ folder
image ของ dynampis ที่ C:\Program Files\Dynamips\images\  แล้วก็ทำการแก้ไขชื่อของ ios image ที่เราจะใช้งานให้เป็น
ชื่อของ ios image ที่เรามีอยู่ ซึ่งการแก้ไขค่าในไฟล์ lab เราจะต้องไปทำการแก้ไขที่หัวข้อ image ของ router รุ่นที่เราต้องการ และ
หลังจากแก้ไขเรียบร้อยแล้ว ก็ให้ลองทำการเรียกไฟล์ lab ขึ้นมาอีกครั้งก็น่าจะใช้ได้แล้วครับ 

« Last Edit: 06 ธันวาคม , 2010, 03:35:42 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
โครงสร้างของ network file ที่ใช้กับ dynamips
« Reply #5 on: 11 กุมภาพันธ์ , 2009, 02:36:37 pm »
[เนื้อหายังไม่สมบูรณ์ / รอการแก้ไข]

เคยสงสัยกันมั้ยครับ ว่าทำไมเวลาติดตั้ง dynamips แล้วเราต้องโหลด dynagen มาลงไว้ด้วย จริงๆแล้ว dynagen นั้น เป็น
text base front-end ของ dynamips ซึ่งจะดูแลด้านการติดต่อสื่อสารระหว่างผู้ใช้ กับ dynamips และดูแลเรื่องคอนฟิกต่างๆ
เพื่อให้เราสามารถใช้งาน dynamips ได้สะดวกขึ้นนั่นเอง ..

ดังนั้นจริงๆแล้ว รูปแบบคำสั่งที่เราใช้งานกันอยู่ และ ตัวคอนฟิกต่างๆที่อยู่ใน network file ทั้งหมดที่เห็นอยู่ จึงเป็นของโปรแกรม
dynagen ไม่ใช่ของ dynamips เลย dynagen จะเป็นตัวประมวลผลคำสั่งและค่าต่างๆที่อยู่ในnetwork file  แล้วติดต่อสั่งงานไปยัง
dynamips อีกทีนึง ในรูปแบบคำสั่งที่ dynamips สามารถเข้าใจได้ สำหรับรายละเอียดต่างๆที่อยู่ใน network file นี้ จะมีการแบ่ง
เป็นออกเป็นส่วนๆ ซึ่งแต่ละส่วนจะอยู่ในเครื่องหมาย [ . . ] แล้วจึงมีการกำหนดรายละเอียดเพิ่มลงไปตามที่ต้องการ

หัวข้อหลักๆที่มีการกำหนดค่ากันไว้ใน network file ของ dynamgen นั้น ก็ได้แก่

  - ข้อมูล ip address ของเครื่องที่รัน dynamips  (hypervisor)
  - กำหนดค่าพารามิเตอร์ต่างๆที่เป็น global (เพื่อใช้เป็นค่าตั้งต้นของอุปกรณ์)
  - ข้อมูลของ router ที่จะนำมาใช้เป็นต้นแบบ (มีได้มากกว่า1ตัว)
  - ข้อมูลของอุปกรณ์ที่สร้างขึ้นมาใช้งาน (มีได้มากกว่า1ตัว)
 

ข้อมูล ip address ของเครื่องที่รัน dynamips

การใช้งาน dynamips นั้น สามารถทำได้ทั้งแบบ local ที่เป็นการใช้งานอยู่ที่เครื่องของตัวเอง กับการใช้งานแบบที่เป็น remote
ซึ่งจะเป็นการรัน dynamips ไว้คนละที่กับ network file ก็เลยจำเป็นที่จะต้องมีการกำหนค่าของ ip address ของ เครื่องที่ใช้รัน
โปรแกรมเอาไว้ ซึ่งในกรณีที่เราใช้งานที่เครื่องของเราเองเราก็จะใส่ค่าลงไปว่า localhost หรือใส่ local ip ก็ได้  เช่น [localhost]

การกำหนดค่าในส่วนนี้เป็นการกำหนดค่าในส่วนที่เป็นหลัก จะใช้เครื่องหมาย [  ] แค่ชั้นเดียวเท่านั้น ส่วนการกำหนดค่าอื่นๆ อย่างเช่น
การสร้าง router ต้นแบบ หรือ การสร้างอุปกรณ์ต่างๆขึ้นมานั้น จะใช้ซ้อนกัน 2ชั้น [[ ]] เพราะถือเป็นการกำหนดค่าในส่วนย่อยๆเท่านั้น


กำหนดค่าพารามิเตอร์ต่างๆที่เป็น global (เพื่อใช้เป็นค่าตั้งต้นของอุปกรณ์)

หลังจากที่เราทำการกำหนดค่า ip ของเครื่องที่จะใช้รัน dynamips ไปเรียบร้อยแล้ว บางครั้งเราก็อาจจะจะทำการใส่พารามิเตอร์ต่างๆ
ลงไปหลังจากนั้นด้วย เนื่องจากค่าพารามิเตอร์ที่กำหนดเอาไว้ในส่วนของนี้ จะถือว่าเป็นค่าแบบ global ของระบบ  ซึ่งจะมีผลกับอุปกรณ์
ทุกๆัตัวที่สามารถใช้งานพารามิเตอร์อันนั้นได้ ทำให้เราไม่ต้องไปใส่ พารามิเตอร์นี้ ในส่วนของอุปกรณ์ต้นแบบทุกๆตัว

ตัวอย่างเช่นถ้าหากเราต้องการจะให้ router ทุกตัวที่สร้าง ไม่ start ตัวเองขึ้นมาอัตโนมัตแบบปรกติ เราก็กำหนดค่า autostart = false
ลง ไปหลังจากคำว่า [localhost]  ค่านี้ก็จะมีผลกับอุปกรณ์ทุกตัว ที่มีพารามิเตอร์ autostart  เช่นพวก router ซึ่งจะส่งผลให้หลังจากที่
เรารันไฟล์ lab ขึ้นมา ปรกติแล้ว router ทุกตัวที่สร้างขึ้นมา จะทำงานทันทีเป็นต้น

(สำหรับคำอธิบายในเรื่องของการใช้งานค่าแบบ global นี้ผมจะได้อธิบายแยกเอาไว้ในบทความตัวต่อไปก็แล้วกันนะครับ ...^_^)
 
ข้อมูลของอุปกรณ์ที่จะนำมาใช้เป็นต้นแบบ


การจำลองอุปกรณ์ต่างๆขึ้นมาเป็น lab นั้น เราใช้การสร้างอุปกรณ์ต่างๆ ขึ้นมาจากอุปกรณ์ที่เป็นต้นแบบอีกทีนึง ซึ่งอุปกรณ์ต้นแบบที่ใช้
ใน dynamips นั้น จะมีอยู่ด้วยกัน 2 แบบ คือแบบที่มีมาให้กับระบบเรียบร้อยแล้ว เราไม่สามารถไปปรับค่าอะไรในอุปกรณ์ที่เป็นต้นแบบได้
เช่น switch หรือ frame relay กับอีกแบบ คืออุปกรณ์ต้นแบบ ที่เราต้องทำการกำหนดค่าต่างๆก่อน ถึงจะใช้งานได้ เช่น router

การกำหนดค่าต่างๆของ router ต้นแบบนั้น จะต้องมีการเขียนชื่อรุ่นของอุปกรณ์ลงไปก่อน ซึ่งรุ่นของ router นี้ ก็ขึ้นกับ ios image ที่เรา
จะนำมาใช้งานใน lab ด้วย การประกาศค่านั้น ก็ให้ใส่ค่ารุ่นของ router ลงไป เช่น ถ้าสมมุติว่าเรามี ios รุ่น c3640-js-mz.124-13.bin ซึ่ง
เป็นของรุ่น 3640 เราก็ประกาศค่าลงไปว่า [[3640]] ลงไปใน network file เพื่อใช้สร้าง router ต้นแบบที่เป็นรุ่น 3640

หลังจากเราทำการกำหนดชื่อรุ่นของ router แล้ว เราก็ต้องทำการกำหนดค่ารายละเอียดของ router เข้าไปด้วย เช่น ประกาศค่าของ
ios image ที่จะใช้งาน ด้วยคำสั่ง image แล้วตามด้วย path และ ชื่อของไฟล์ image ที่เราจะใช้งาน จากนั้น กำหนดค่า ram ที่จะใช้
router ใช้งาน ด้วยคำสั่ง ram แล้วกำหนดที่ต้องค่าลงไป  จากนั้นทำการกำหนดค่าของ network module หรือ wic ที่จะใช้งาน

ถ้าหากว่า router ที่เราสร้างขึ้นมา เป็นแบบที่มี slot เราก็ทำการพิมพ์ชื่อ slot ลงไป แล้วตามด้วยค่าของ network module ที่เราจะใช้งาน
แต่ถ้า router ของเรานั้นเป็นแบบที่ใส่ wic ได้ ก็ให้กำหนดค่า wic slot ที่ต้องการ แล้วจึงตามด้วยชื่อของ wic module ลงไป  ดังนั้นถ้าเรา
สร้าง router ต้นแบบเป็นรุ่น 3640 และ กำหนดให้ให้ใช้ ios รุ่น c3640-js-mz.124-13.bin และต้องการที่จะให้มีการติดตั้ง module ลงไป
ใน slot0 เป็น nm-4t เพื่อให้ router ของเรามี serial interface เราก็จะต้องพิมพ์ค่าดังนี้

       [[3640]]

       image = \Program Files\Dynamips\images\c3640-js-mz.124-13.bin
       slot0 = NM-4T
       ram = 128



ข้อมูลของอุปกรณ์ที่สร้างขึ้นมาใช้งาน

ในการสร้างอุปกรณ์ขึ้นมาใช้งานนั้น เราต้องทำการกำหนดประเภทของอุปกรณ์ก่อน ว่าเราต้องสิ่งที่สร้างขึ้นนั้น เป็นอุปกรณ์อะไร
อุปกรณ์ที่สร้างขึ้นได้ ก็มี router , switch , frame-relay  ดังนั้นถ้าหากต้องการให้เป็น อุปกรณ์อะไร ก็พิมพ์คำนั้นลงไปใน [[ . .]]
จากนั้น ก็กำหนดชื่อให้กับอุปกรณ์ ด้วยการ พิมพ์ช่องว่าง ต่อจากประเภทของอุปกรณ์ แล้วตามด้วยชื่อที่เราต้องการ เช่น …

       [[ROUTER R1]] หรือ [[ethsw SW1]]

ปรกติแล้วสำหรับการทดสอบการทำงาน โดยทั่วๆไป ควรจะต้องสร้างอุปกรณ์ขึ้นมาอย่างน้อย 2 ตัวด้วยกัน หลังจากที่เราได้ทำการ
สร้างอุปกรณ์ขึ้นมาใช้งานแล้ว ถ้าอุปกรณ์ที่สร้างนั้นเป็น router ก็จะต้องมีการกำหนดค่าด้วยว่าจะให้ router ที่สร้างขึ้น ใช้คุณสมบัติ
ในการทำงานของ router ตันแบบตัวไหน ซึ่งตรงนี้เราทำได้โดยการกำหนดค่า model ลงไป แล้วตามด้วยรุ่นหมายเลข model ของ
router ที่เป็นต้นแบบ จากนั้นก็ให้กำหนดค่าการเชื่อมต่อของอุปกรณ์ต่างๆ ให้เป็นไปตาม topology ที่ต้องการ

การสร้างการเชื่อมต่อของอุปกรณนั้น ทำได้โดย พิมพ์ชื่อ interface ของ router ตัวนั้นลงไป แล้วตามด้วย ชื่อ และ interface ของ
อุปกรณ์ฝั่งตรงข้าม ถ้ามีการเชื่อมต่อกันที่ตรงไหน ตามหลักแล้วเราจะเขียนค่าของการเชื่อมต่อเอาไว้แค่ฝั่งเดียว ไม่ไปเขียนที่อีกฝั่ง
เพื่อไม่ให้เกิดการซ้ำซ้อนกัน

ถ้าหากเราจะสร้าง router ชื่อ R1 และ R2 ขึ้นมาทำงาน โดยกำหนดทั้งสองตัว เป็น router รุ่น 3640 ตามต้นแบบที่เขียนไว้ข้างบน
แล้วกำหนดให้ interface s0/0 ของ R1 เชื่อมกับ s0/0 ของ R2 เราก็จะได้หน้าตาของ config ออกมาเป็นอย่างนี้ ….


       [[ROUTER R1]]
       model = 3640
       s0/0 = R2 s0/0

       [[ROUTER R2]]
       model = 3640

 
จากนั้นทำการบันทึกค่าที่เราต้องการ เป็นไฟล์ที่มีนามสกุลเป็น . net เพื่อให้ dynagen สามารถเรียกขึ้นมาใช้งานได้ จากนั้นทำการ
สร้าง folder ขึ้นมาเพื่อเก็บไฟล์นี้ ที่ต้องสร้าง folder ขึ้นมาก็เนื่องจากว่าเวลามีการรันไฟล์ lab ก็จะมีการสร้างไฟล์ระบบ และพวก
ไฟล์ log ต่างๆขึ้นมาด้วย ซึ่งไฟล์ต่างๆเหล่านั้น จะได้ถูกเก็บเอาไว้ใน folder เดียวกันกับไฟล์ lab ไม่กระจัดกระจายไปไหน ..

memo (http://archive.katiproject.info/dynamips-dynagen/structure-of-dyngen-network-file)

สำหรับ router ที่เราสร้างขึ้นแต่ละตัว เราจะกำหนดใช้ต้นแบบเป็น model เดียวกัน หรือไม่ ก็ได้ ถ้าใช้ตัวเดียวกัน ก็จะมีคุณสมบัติ
ที่เหมือนกัน เช่น ใช้ ios image ตัวเดียวกัน ใช้ ram เท่ากัน ติดตั้ง module แบบเดียวกันและถ้าไม่ได้มีการกำหนดค่า model
เอาไว้ router ที่สร้างขึ้นจะถูกสั่งให้เป็นรุ่น 7200 ซึ่งเป็นค่า default การกำหนดประเภทของอุปกรณ์ จะใช้ตัวพิมพ์เล็กหรือใหญ่ก็ได้

ส่วนชื่อของ router นั้น ถ้าพิมพ์แบบไหนลงไป ก็จะต้องอ้างอิงชื่อนั้น ตามที่พิมพ์ไว้เลย เพราะเป็น case sensitive ซึ่งจะมีการแยก
ความต่างระหว่างตัวพิมพ์เล็กหรือใหญ่ด้วย ซึ่งถ้าเราเขียนไม่ตรงกับชื่อที่ใช้ การเชื่อมต่อระหว่างอุปกรณ์ก็จะไม่สามารถทำได้ครับ

ในกรณีที่เราไม่รู้ว่า router มี interface อะไรบ้าง อาจจะลองรัน router โดยยังไม่ต้องกำหนดการเชื่อมต่อเอาไว้ จากนั้นพอ router
ทำงานแล้ว ก็ค่อย telnet เข้าไปตรวจสอบชื่อ interface ได้ โดยใช้คำสั่ง show interface ซึ่งจะเป็นการดูข้อมูลอย่างเต็มๆ หรือจะ
ใช้คำสั่ง show interface desc หรือ summary เพื่อดูข้อมูลอย่างสั้นๆก็ได้

จริงๆเราสามารถปรับแต่งค่าต่างๆใน network file ได้อีกหลายๆอย่าง แต่เพื่อไม่ให้เกิดความสับสนสำหรับผู้ที่เพิ่งจะเริ่มต้นลองใช้งาน
dynamips/dynagen ผมก็จะขอแยกเนื้อหาเอาไว้พูดกันในวันอื่นๆก็แล้วกันนะครับ ตัวอย่างไฟล์ที่จะนำมาใช้งานกับ dynamips นั้น
และคำอธิบาย สามารถหาเพิ่มเติมได้จากเว็บไซท์ routerlabs.de ได้ครับ เว็บนี้มีตัวอย่าง lab ให้เราเลือกมาใช้หลายแบบเลย


----------------------------------------------------------------------------

[localhost]

  [[3640]]

  image = \Program Files\Dynamips\images\c3640-js-mz.124-13.bin
  slot0 = NM-4T
  ram = 128
  mmap = true
  ghostios = true   

   [[ROUTER R1]]
   model = 3640
   s0/0 = R2 s0/0   

  [[ROUTER R2]]
   model = 3640

ข้อมูลจาก 

Dynamips / Dynagen Tutorial (Revision 1.11.7)
Network Files / 1700/2600/3600/3700 Routers , WIC Modules
« Last Edit: 06 ธันวาคม , 2010, 03:36:24 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
การเพิ่ม switch และ frame releay เข้าไปใน lab
« Reply #6 on: 11 กุมภาพันธ์ , 2009, 02:37:08 pm »
[เนื้อหายังไม่สมบูรณ์ / รอการแก้ไข]

คราวก่อน เราคุยกันถึงเรื่องของโครงสร้างหลักๆของ network file ไปเรียบร้อยแล้ว ในเนื้อหาที่เขียนไว้ก็ได้
อธิบายไปว่าอุปกรณ์ที่เราจะใช้งานนั้นเราต้องสร้างมาจากต้นแบบ ซึ่งต้นแบบนั้นก็จะมี 2 แบบ คือแบบที่เราต้อง
ทำการสร้างขึ้นมาก่อน แล้ว ต้องกำหนดค่าต่างๆให้กับมันด้วย ถึงจะเอาไปใช้ได้ กับอีกแบบ ก็คืออุปกรณ์ต้นแบบ
ที่มามีกับระบบแล้วเราไม่ต้องตั้งค่าอะไรที่ต้นแบบเลย ก็สามารถนำไปอ้างอิงเพื่อใช้งานได้

แล้วเราก็ยังคุยกันถึงเรื่อง การสร้าง router ต้นแบบ และการกำหนดค่าคร่าวๆเพื่อให้ router ทำงานได้
นอกจากนี้ ก็ยังพูดถึงการสร้าง router ใน lab จากต้นแบบ ด้วยการกำหนดค่า model เพื่อกำหนดให้
router ที่สร้าง มีคุณสมบัติการทำงาน ตามต้นแบบที่เราสร้างเอาไว้

ในวันนี้ เราจะคุยกันในเรื่องของ อุปกรณ์ต้นแบบ ที่มีมาให้ในระบบอยู่แล้ว อย่าง switch และ frame-relay กัน
ซึ่งอุปกรณ์พวกนี้ เราไม่ต้องสร้างต้นแบบเอาไว้ใน network file เลย เราเรียกขึ้นมาใช้งานได้เลย โดยมีรูปแบบที่
เหมือนการสร้างอุปกรณ์ทั่วๆไปที่ได้อธิบายไว้ก่อนหน้าก็คือ มีการกำหนดประเภทของอุปกรณ์และกำหนดชื่อให้กับมัน


Ethernet Switch

เราสามารถสร้าง switch ที่จะใช้ใน lab ขึ้นมาได้เลย โดยกำหนดให้ประเภทของอุปกรณ์เป็น ethsw
แล้ว ก็ตามด้วยชื่อของ switch ดังนั้น ถ้าเราต้องการสร้าง switch ขึ้นมาใช้ใน lab แล้วจะให้มันชื่อว่า SW1
เราก็ต้องกำหนดค่าลงไปใน network file ว่า ...

    [[ethsw SW1]]

   จากนั้นก็ทำการกำหนดค่าต่างๆ ให้กับ port  ของ switch โดยกำหนดชื่อของ port ตามด้วยเครื่องหมาย =
   แล้วตามด้วยคุณสมบัติของ port แล้วตามด้วยหมายเลข vlan ที่จะกำหนดให้ port เช่น ...

    * ถ้าต้องการกำหนดให้ port นั้น เป็น access port เฉยๆ ก็กำหนดให้มีค่าเป็น access
      แล้วตามด้วยหมายเลข vlan ที่ต้องการ เช่น access 1
    * ถ้าต้องการกำหนดให้ port นั้นเป็น trunk port เราก็กำหนดให้มีค่าเป็น dot1q
      แล้วตามด้วยหมายเลข vlan ที่ต้องการให้ port  เช่น  dot1q 1
    * ถ้าต้องการ map ให้ port นั้นติดต่อกับอุปกรณ์จริง ที่อยู่ภายนอกได้ หรือ ติดต่อกับ loopback
      ก็ต้องกำหนดค่า NIO แล้วตามด้วย device name หรือ id ของ network adaptor ที่ต้องการลงไป


การกำหนดค่าสามารถทำได้หลายๆค่าร่วมกัน เช่น ถ้าเราต้องการให้ port นั้น เป็น trunk port และต้องการ
จะให้มันส่งต่อข้อมูลไปติดต่ออุปกรณ์จริงที่อยู่ภายนอได้ เราก็จะต้องใส่ทั้ง dot1q 1 และ NIO_gen_eth:

ค่าจากตัวอย่างในไฟล์ ethsw1.net ที่อยู่ใน simple lab\sethernet_switch เราก็จะพบตัวอย่างดังนี้

  [[ethsw S1]]

    1 = access 1
    2 = access 20
    3 = dot1q 1
    # Note, replace the interface below with a valid interface
    # on your system or Dynamips will crash!
    #4 = dot1q 1 NIO_gen_eth:eth0
    4 = dot1q 1 NIO_gen_eth:\Device\NPF_{B00A38DD-F10B-43B4-99F4-B4A078484487}


ใน file จะมีการเตือนว่า ถ้าเราจะใส่ค่าหลัง NIO_gen_eth: จะต้องใส่ค่าให้ถูกต้องตาม interface ที่จะใช้
ไม่เช่นนั้นจะเกิดปัญหาทำให้ dynamips เกิดปัญหาขึ้นมาได้ (ถ้าเราจะไม่ใช้ port 4 ก็ใส่ # เพื่อ remark ไป)

เรื่องจำนวน port ของ switch นั้น ตามตัวอย่างที่เห็นกันใน lab ของ dynagen จะมีอยู่ 4 port แต่จริงๆแล้ว
เราสามารถสร้าง switch ที่มี port มากกว่า 4 port ได้ แต่เมื่อต้องการใช้งาน ควรสร้าง port เฉพาะที่ต้องการก็พอ
ไม่เช่นนั้น  port ที่เหลือเหล่านั้น ที่ไม่ได้ทำการเชื่อมต่อกับอุปกรณ์อื่นๆ ตอนที่เราเรียกไฟล์ lab ขึ้นมาใช้งาน มันจะ
เกิด error แล้วเจ้งเตือนข้อความ 2 บรรทัด ประมาณว่า switchport . . . not connect to any thing
ซึ่งมันจะบอกชื่อ port ชื่อ switch ให้เราทราบด้วย

ถ้าไม่อยากลบ port ก็ให้ใส่ # ลงไปข้างหน้าเพื่อ remark การทำงานของ port ที่ไม่ต้องการเอาไว้ ถ้าจะใช้ค่อยแก้เอา

การที่เราจะทำให้ router ของเราติดต่อกับ switch ได้นั้น เราก็จะต้อง มีการติดตั้ง module ที่เป็น ethernet interface
เข้าไปก่อน อย่างเช่น จากตัวอย่างเดิม เราใช้งาน รุ่น 3640 อยู่ก็ต้องติดตั้ง NM-4E , NM-1FE-TX หรือ NM-16ESW
ลงไปเพื่อให้ router ของเรามี ethernet interface

การกำหนดค่าของ router ที่เป็นต้นแบบของรุ่น 3640 ที่อยู่ใน network file ของเดิมที่เราทำไว้ในตอนก่อน
ก็จะต้องทำการแก้ไขค่า เพิ่มเติมให้เป็นดังนี้  ...

  [[3640]]

  image = \Program Files\Dynamips\images\c3640-js-mz.124-13.bin
  slot0 = NM-4T

  slot1 = NM-16ESW
  ram = 128

ส่วนการเชื่อมต่ออุปกรณ์ ก็เหมือนเดิม ก็คือกำหนด interface ของ router แล้วตามด้วยเครื่องหมาย =
แล้วตามด้วยชื่อของ switch ที่เราจะเชื่อมต่อด้วย จากนั้นก็ต่อด้วยค่าของ port ที่เราจะเชื่อมต่อ เช่น ถ้าต้องการ
ให้ interface f1/0 เชื่อมต่อไปยัง port 1 ของ switch ชื่อ SW1 ก็ให้ใส่ค่าลงไปในส่วนของ router ดังนี้

   f1/0 = SW1 1

ถ้าเราใข้ NM-4T เราจะได้ interface ที่เป็น ethernet อ้างอิงชื่อย่อๆว่า e แต่ถ้าเราใช้ NM-1FE-TX หรือ
NM-16ESW เราจะได้ interface ที่เป็น fast ethernet ก็จะเรียกย่อๆว่า f ส่วนการอ้างถึงหมายเลขของ
interface นั้น ก็จะต้องอ้างถึงหมายเลข ของ slot ที่ได้ทำการติดตั้ง module ขึ้นมาก่อน แล้วตามด้วยชื่อ port
ซึ่งค่าพวกนี้จะเริ่มนับค่าแรกเป็น 0 เสมอ

ดังนั้นถ้าเราใส่ ethernet module เอาไว้ที่ slot0 แล้วเราต้องการจะอ้างถึง port แรกของมัน เวลาเราจะใช้งาน
เราก็จะต้องเขียนว่า e0/0 ถ้าเราเอาไปใส่ไว้ slot1 เราก็ต้องอ้างอิงเป็น e1/0 เป็นต้น


Frame Relay


ในเรื่องของ frame-relay นั้น ก็คล้ายๆกับเรื่องของ switch ก็คือ เราไม่ต้องทำการสร้างต้นแบบของ frame-relay
แต่สามารถสร้างอุปกรณ์ใน lab ได้เลย โดยกำหนดประเภทของอุปกรณ์เป็น frsw แล้วตามด้วยชื่อของอุปกรณ์ตัวนั้น
ส่วนการตั้งค่าก็แค่กำหนดค่าของ dlci ที่ต้องการ ให้กับ port ของ frame relay เท่านั้นเอง

จากตัวอย่างใน frame_relay1.net  ที่อยู่ใน sample_labsframe_relay เราก็จะพบตัวอย่างแบบนี้

    [[FRSW F1]]

    1:102 = 2:201
    1:103 = 3:301
    2:203 = 3:302


จากตัวอย่าง เป็นการสร้าง frame-realy switch ชื่อ F1 แล้วกำหนดค่า dlci ให้กับ port ต่างๆ แล้วกำหนด
ค่าความสัมพันธ์ของแต่ละ port ด้วยการใช้เครื่องหมาย = ลงไป เพื่อกำหนดว่า ให้ interface ไหนติดต่อกันได้

ส่วนการเชื่อมต่ออุปกรณ์ router ก็ไม่ต่างอะไรกับ switch  ก็คือกำหนด interface ของ router แล้วตามด้วย
เครื่องหมาย = แล้วตามด้วยชื่อของ frame-relay switch ที่เราจะเชื่อมต่อด้วย จากนั้นก็ต่อด้วยค่าของ port
ที่เราจะเชื่อมต่อลงไป เช่น ถ้าต้องการให้ interface s0/1 เชื่อมต่อไปยัง port 1 ของ frame-relay switch
ตามตัวอย่างข้างบน เราก็จะต้องเพิ่มค่าลงในส่วนของ router ของเราดังนี้ ...

  s0/0 = F1 1

 
memo (http://archive.katiproject.info/dynamips-dynagen/dynamips-add-switch-and-frame-relay-to-lab)

ถ้าเราทำการเรียกใช้งานไฟล์ lab ที่มีการใช้งาน switch ที่มีมากับระบบ เวลาเราสั่ง list เราจะได้รับการแจ้งข้อมูล
ขออุปกรณ์ว่า มี type เป็น switch และมีสถานะเป็น always on . . .

ถ้าเราไม่พอใจ switch หรือ frame-relay ที่ระบบให้มา เราสามารถสร้างเองได้เช่นกัน ถ้ากำหนดให้ router ตัวไหน
ทำงานเป็น switch เราก็กำหนดให้มันติดตั้ง NM-16ESW ลงไป ส่วนเรื่อง frame-relay นั้น ก็ใช้ serial ได้เลย

เนื้อหาในการติดตั้ง loopback adapter นั้น จะได้เขียนอธิบายกันไว้อีกทีในคราวถัดไป หรือถ้าใครติดตั้งเป็นแล้ว
อยากจะลอง map ดูก็ทำได้  ถ้าต้องการทราบค่า NIO ของ loopback interface ที่จะนำมา map กับ port
ของ switch เราสามารถดูได้ ด้วยการคลิกที่ icon ของ network device list ที่อยู่ที่ desktop ได้ครับ

-----------------------------------------------------------------------------------------------

[localhost]

  [[3640]]

  image = \Program Files\Dynamips\images\c3640-js-mz.124-13.bin
  slot0 = NM-4T
  slot1 = NM-16ESW
  ram = 128
  mmap = true
  ghostios = true   

    [[router R1]]
    model = 3640
    f1/0 = SW1 1
   
    [[router R2]]
    model = 3640
    f1/0 = SW1 2
   
    [[router R3]]
    model = 3640
    f1/0 = SW1 3
   
    [[ethsw SW1]]
    1 = access 1
    2 = access 20
    3 = dot1q 1

 
ข้อมูลจาก : Dynamips / Dynagen Tutorial (Revision 1.11.7) - Frame Relay Lab / Ethernet Switch Lab
« Last Edit: 06 ธันวาคม , 2010, 03:36:48 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
เรื่องของค่า global และ local ใน network file
« Reply #7 on: 11 กุมภาพันธ์ , 2009, 02:40:53 pm »
[รอการแก้ไขปรับปรุง]

เรื่องของค่าต่างๆที่อยู่ใน network file ของ dynagen นั้น ผมเคยอธิบายคร่าวๆเอาไว้แล้วครั้งนึงเมื่อวันก่อน
ในเรื่องขององค์ประกอบหลักๆของ network file  ซึ่งในตอนนั้น ผมได้แบ่งออกเป็นหัวเรื่องตามนี้ . .

  - ข้อมูล ip address ของเครื่องที่รัน dynamips
  - ข้อมูลของ router ที่จะนำมาใช้เป็นต้นแบบ (มีได้มากกว่า1ตัว)
  - ข้อมูลของอุปกรณ์ที่สร้างขึ้นมาใช้งาน (มีได้มากกว่า1ตัว)

แต่จริงๆแล้ว ถ้าจะให้เข้าใจละเอียดลงไปอีกหน่อย ก็จะต้องบอกว่า ใน network file นั้น จะมีการแบ่งส่วน
ของค่าต่างๆที่จะใช้งานออกเป็น 2 ส่วนหลักๆ ส่วนแรกก็คือ เป็นการกำหนดค่าเฉพาะ ให้กับหัวเรื่องต่างๆ
เป็นเรื่องไป ค่าแบบนี้เรียกว่า local parameter กับอีกส่วนที่เป็นการตั้งค่าที่สามารถนำไปใช้ได้กับอุปกรณ์
ต้นแบบ หรือ อุปกรณ์ที่สร้างขึ้นใน network file ในลักษณะเหมือนกับเป็นค่า default ที่เรากำหนดให้กับ
ระบบ ซึ่งเราจะเรียกค่าที่เป็นแบบนี้ว่า ค่าแบบ global parameter

(ค่า global นั้น เราจะตั้งเอาไว้หรือไม่ก็ได้ ส่วนค่าใน local นั้นถ้าเราไม่ได้ตั้งค่าเอาไว้ บางอย่างก็ไม่เป็นปัญหา
เพราะระบบจะนำค่า default มาใช้งาน แต่ก็มีค่าหลายๆอย่างที่ค่า local ที่ไม่ตั้งเอาไว้แล้วจะทำให้ใช้งานไม่ได้)

การตั้งค่าในส่วนที่เป็น local ซึ่งจะเป็นการตั้งค่าเป็นเรื่องๆไป โดยที่ค่าต่างๆที่เป็นค่าแบบ local ก็จะถูกเขียน
เอาไว้ต่อจากส่วนที่อยู่ในวงเล็บ [ . . . ] อย่างที่เราเคยอธิบายกันไปแล้ว ซึ่งค่าไหน ที่อยู่บรรทัดถัดลงไปจาก
เครื่องหมายนี้ ก็จะเป็นค่า local ที่กำหนดเอาไว้ใช้งานเฉพาะในส่วนนั้น เช่นถ้าอยู่ในส่วนที่เป็นของ router
ตัวไหน ก็จะเป็นค่าที่กำหนดเอาไว้ให้กับเฉพาะ router ตัวนั้น เป็นต้น

ส่วนของตัวแปรที่เป็น global นั้น จะอยู่ในบริเวณส่วนหัวของ network file ตั้งแต่บรรทัดแรก ไปจนถึง
บรรทัดก่อนที่จะถึงเครื่องหมาย [ .. ] อันแรก ใน network file ของเรานั่นเอง

ค่าแบบ global นั้น จริงๆตัวคำสั่ง หรือ พารามิเตอร์ต่างๆของมัน ก็ไม่ได้แตกต่างอะไรกับการตั้งค่าอื่นๆเลย
นอกจากว่า ถ้าเรากำหนดค่าเอาไว้ตรงส่วนนี้ ก็จะเป็นการกำหนดค่าเอาไว้ เพื่อให้สามารถนำไปใช้งานได้
กับทุกส่วนใน network file ซึ่งจะเป็นเหมือนๆการตั้งค่าตัวแปรแบบ default ที่เราต้องการให้กับระบบ

ตัวอย่างที่เราจะเห็นได้ในเรื่องของค่า global นั้น ก็เช่น เมื่อตอนเราสร้าง router ขึ้นมาในระบบ จากต้นแบบ
ถ้าเราไม่ได้กำหนดค่า model ให้กับมัน มันก็จะให้ router เหล่านั้น มีค่า model เป็น router รุ่น 7200
แล้วก็จะสั่งให้ router นั้นใช้ ios image จากต้นแบบที่เป็น [[7200]]

ถ้าเราไม่ต้องการให้มันเป็นอย่างนั้น คราวก่อนผมก็ได้แนะนำให้กำหนดค่า model ให้กับ router ทุกตัวที่สร้าง
ซึ่งค่า model แต่ละอันที่เราตั้งให้กับ router จะเป็นค่าแบบ local ซึ่งจะใช้ในส่วนของ router ตัวนั้นเท่านั้น
ถ้าเรามี router น้อยๆ ก็คงไม่เป็นไร แต่ถ้าเราจะสร้าง router เยอะๆ แล้วกำหนดให้ทุกตัวเป็น model เดียวกัน
หรือ ต้องการจะให้ค่า default ของ model เปลี่ยนจากรุ่น 7200 มาเป็นรุ่นที่เราต้องการ เราก็ต้องทำการตั้งค่าที่
ส่วนหัวของ network file ซึ่งอยู่ก่อน [localhost] โดยกำหนดค่า model = รุ่นที่เราต้องการ เอาไว้ได้เลย เช่น

model = 3640

ถ้าเราตั้งค่าแบบนี้เอาไว้ในส่วนของ global เราก็ไม่ต้องมาทำการกำหนดค่า model ให้กับ router ที่เราสร้างอีก
ยกเว้น เฉพาะรุ่นที่เราต้องการให้มันมี model แตกต่างไปจากตัวอื่นๆจริงๆ ก็ค่อยกำหนดค่าให้ router เป็นตัวๆไป



ค่าต่างๆที่เราควรจะทราบเพิ่มเติม

  workingdir เป็นค่าที่กำหนด path การทำงานของ dynamips ที่จะใช้เก็บ nvram , log และไฟล์อื่นๆ
  ที่เกี่ยวข้องกัน เป็นค่าที่จะต้องกำหนดในเวลาเราใช้งานแบบ remote ในการรันแบบ localhost เราไม่จำเป็น
  จะต้องกำหนดค่านี้ก็ได้ก็ได้ เพราะโปรแกรมจะใช้ค่า default เป็น folder เดียวๆกันกับที่ใช้รัน network file

  autostart เป็นค่าที่กำหนดว่า เมื่อเรียกใช้งาน network file แล้ว จะให้เริ่มการทำงานของอุปกรณ์เลยหรือไม่
  ค่านี้สามารถตั้งเอาไว้ในส่วนที่เป็น global ก็ได้ ซึ่งจะเป็นการสั่งให้เริ่มหรือหยุดการทำงานของอุปกรณ์ทั้งหมด

  cnfg จะเป็นการกำหนดค่าให้ route ไปใช้งานไฟล์คอนฟิกที่อยู่ตาม path และ filename ที่เรากำหนดให้

  idlepc เป็นการกำหนดค่า idle pc แบบเฉพาะเจาะจงให้กับ router ตันแบบที่เราสร้างขึ้น ซึ่งถ้าเราตั้งค่านี้เอาไว้
  ระบบจะไม่ใช้ค่า idle pc ที่มีอยู่ในไฟล์ dynagenidledb.ini  สำหรับ router ตันแบบตัวนั้น

  console เป็นการกำหนดค่า consloe port ที่เราจะใช้ในการ telnet หรือ console ไปยัง router แต่ละตัว
  ถ้าไม่มีการตั้งค่าอะไรเอาไว้ router แต่ละตัว ก็จะได้รับค่า console จากระบบโดยอัตโนมัต ซึ่ง ค่าเริ่มต้นของ
  console จะเริ่มต้นที่ 2000 โดยจะกำหนดให้กับ router ตัวแรก แล้วเพิ่มไปทีละ 1 เมื่อเราเพิ่มอุปกรณ์ลงในระบบ

(http://archive.katiproject.info/dynamips-dynagen/global-local-parameter-in-network-file)


memo

จริงๆแล้วค่าอื่นๆที่เราเคยพูดถึงกันไปแล้ว อย่างเช่น ram , ghostios ,mmap ,sparemem นั้น เราสามารถกำหนดไว้
ในส่วนที่เป็น global ได้แทบทั้งสิ้น และเมื่อเรากำหนดค่านี้ให้เป็น global ไปแล้ว ก็จะมีผลกับ router ต้นแบบทุกอัน
ที่เราสร้างขึ้นมา ซึ่งยังไม่ได้มีการกำหนดค่าเหล่านั้นแบบเฉพาะตัวให้กับมัน (มันก็จะเอาค่า global มาใช้อัตโนมัตเลย)

----------------------------------------------------------------------------------

# global parameter

autostart = false
model = 3640


# local parameter

[localhost]

  [[3640]]

  image = \Program Files\Dynamips\images\c3640-js-mz.124-13.bin
  slot0 = NM-4T
  ram = 128
  mmap = true
  ghostios = true   

  #idlepc = 0×60530890

   [[ROUTER R1]]
   s0/0 = R2 s0/0
   console = 2011
   #cnfg = C:\Program Files\Dynamips\sample_labs\kati\R1-config.txt  

  [[ROUTER R2]]
   console = 2012
   #cnfg = C:\Program Files\Dynamips\sample_labs\kati\R2-config.txt   



ค่า cnfg ที่ผม remark ด้วย # เอาไว้ หากต้องการใช้งาน ให้ทำการแก้ไขค่าให้ตรงกับข้อมูลจริงที่เครื่องของคุณ
ถ้าคุณใช้ folder ที่เก็บ network file ชื่อว่า test ซึ่งอยู่ใน sample_labs คุณก็เปลี่ยนจาก /kati เป็น /test ได้เลย
หากคุณใช้ ios คนละตัวกับผม ก็อย่าลืมแก้ไปค่าของ path ในหัวข้อ images และ หมายเลข model ด้วยนะครับ
« Last Edit: 06 ธันวาคม , 2010, 03:37:03 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
การแก้ไขค่าของโปรแกรม telnet client
« Reply #8 on: 11 กุมภาพันธ์ , 2009, 02:53:35 pm »



[รอการตรวจสอบ/แก้ไข]

ปรกติแล้วเวลาที่เราจะ telnet ไปยัง router ที่สร้างขึ้นใน dynamips นั้น เราจะใช้งานโปรแกรม telnet ธรรมดาๆ
ที่มีมากับ os ที่เราใช้อยู่ อย่างเช่นโปรแกรม telnet บน windows  สำหรับคนที่ต้องการจะ เปลี่ยนโปรแกรม telnet
ไปใช้งานโปรแกรม telnet ตัวอื่นๆ อย่างเช่น putty , terra term pro หรือ secure crt ก็สามารถทำได้โดยการ
เข้าไปแก้ไขที่ไฟล์ชื่อ dynagen.ini ที่อยู่ใน c:\program files\dynamips

ถ้าเราต้องการจะใช้โปรแกรม telnet ตัวไหน เราก็เพียงแค่หาโปรแกรม telnet ตัวนั้นมาลงไว้ที่เครื่อง แล้วจากนั้นก็ค่อย
ทำการแก้ไขข้อมูลในไฟล์ dynagen.ini ให้เป็นค่าของโปรแกรม telnet ที่เราต้องการ การแก้ไขค่านั้น ทำได้ง่ายมากๆ

ขั้นตอนการแก้ไขนั้น อันดับแรก เราต้องไปทำการ remark ที่ข้างหน้าของคำสั่งที่เรียใช้โปรแกรม telnet ที่เราใช้งานอยู่
ด้วยเครื่องหมาย # เพื่อปิดการทำงานของโปรแกรมตัวนั้น แล้วจากนั้น ถ้าเราต้องการจะใช้งานโปรแกรม telnet ตัวไหน
ก็นำเครื่องหมาย # ที่ remark อยู่หน้าโปรแกรม telnet ตัวนั้นออกไป แค่นี้ก็จะใช้งานโปรแกรมตัวนั้นได้แล้ว

ตัวอย่างข้อมูลที่อยู่ใน dynagen.ini

# Uncomment below for Windows
telnet = start telnet %h %p
# Or better yet for Terra Term SSH users:
#telnet = C:\progra~1\TTERMPRO\ttssh.exe %h %p /W=%d /T=1
# For PuTTY users:
#telnet = start C:\progra~1\PuTTY\putty.exe -telnet %h %p
# For SecureCRT
#telnet = start C:\progra~1\SecureCRT\SecureCRT.EXE /script c:\progra~1\dynamips\securecrt.vbs /arg %d /T /telnet %h %p  & sleep 1
# SecureCRT 6 changes the install location
#telnet = start C:\progra~1\vandyk~1\SecureCRT\SecureCRT.EXE /script c:\progra~1\dynamips\securecrt.vbs /arg %d /T /telnet %h %p & sleep 1


ถ้าเราไม่ต้องการจะใช้งานโปรแกรม telnet ที่เป็น telnet ของ windows เราก็ไปใส่เครื่องหมาย # ที่ข้างหน้า
ของคำสั่ง telnet = start telnet %h %p และถ้าหากเราต้องการจะใช้งาน putty เราก็นำโปรแกรม putty
มาติดตั้งไว้ที่เครื่องของเรา แล้วจากนั้นก็ทำการแก้ไขค่าคอนฟิก โดยนำเครื่องหมาย # ออกจากด้านหน้าของคำสั่ง
telnet = start C:\progra~1\PuTTY\putty.exe -telnet %h %p ซึ่งค่าที่ได้รับการแก้ไขจะเป็นดังนี้


# Uncomment below for Windows
#telnet = start telnet %h %p
...
# For PuTTY users:
telnet = start C:\progra~1\PuTTY\putty.exe -telnet %h %p
...


จากนั้นก็ทำการเรียกใช้งานโปรแกรม dynamips และ เรียกไฟล์ lab ที่ต้องการขึ้นมาทดสอบการทำงานว่า
สามารถใช้งานโปรแกรม telnet ที่ตั้งค่าเอาไว้ใหม่ได้หรือไม่ ถ้าเราไม่ต้องการจะใช้งานโปรแกรม telnet
ที่มีเอาไว้ให้ใน list ของ dynagen.ini เราก็อาจจะสามารถตั้งค่าตรงนี้เองก็ได้

หากเราต้องการจะตั้งค่าของโปรแกรม telnet ด้วยตัวเอง อันดับแรกเราจะต้องพิมพ์คำว่า telnet  เพื่อระบุว่า
เป็นการตั้งค่าสำหรับโปรแกรม telnet จากนั้น ก็เครื่องหมาย = แล้วตามด้วยคำว่า start เพื่อเป็นคำสั่งในการ
เรียกใช้โปรแกรม telnet ตัวที่เราต้องการ จากนั้นใส่ path ของโปรแกรมนั้นอยู่ รวมทั้งชื่อไฟล์ และใส่พวก
ค่าพารามิเตอร์ที่ใช้กำหนด host และ port ที่เราจะ telnet เข้าไป

(http://katiproject.info/dynamips-dynagen/dynamips-change-telnet-client)
ตรงพารามิเตอร์สำหรับใส่ค่า host ให้เราใส่ค่าตัวแปร %h ซึ่งจะใช้แทน ip ของ host ที่เราใช้งานอยู่ต่อลงไป
สำหรับค่า port ให้ใส่ค่า %p เพื่อใช้แทนค่าของ หมายเลขของ console port ที่เราจะ telnet ต่อลงไป


memo

การติดตั้ง telnet client บน windows 7 / vista สามารถทำได้โดย ไปที่  Control Panel > Programs >
Programs and Features > Turn Windows features on or off  แล้วติ๊กเครื่องหมายถูกที่ Telnet Client

ในกรณีที่เราใช้งาน windows 7 แบบที่เป็น 64 bit เราจะมี folder ของ program files ขึ้นมาในระบบ 2 อัน
ก็คือ program files และ program files (x86) สำหรับ folder ที่เ็ป็น program files นั้น เราเอาไว้เก็บพวก
application ต่างๆที่เราติดตั้งลงใน windows ที่เป็น 64 bit เท่านั้น

พวก application ที่เป็น 32 bit ทั่วไป จะถูกเก็บอยูที่ folder ชื่อว่า program files (x86) ดังนั้น เวลาเราทำการ
ย่อชื่อ folder ก็จะทำให้เกิด folder ชื่อ progra~1 และ  progra~2 ดังนั้น ถ้าเราติดตั้งโปรแกรม telnet แบบ 32 bit
ลงไปในระบบ เราจะต้องเปลี่ยน terminal command ที่จะใช้งาน จาก progra~1 ให้เป็น progra~2 ด้วย

(ถ้าเราใช้ telnet ที่เป็น 64 bit หรือ เราได้ทำการติดตั้งโปรแกรม telnet ไ้ว้ที่อื่น ก็ไม่ต้องไปแก้ไขอะไรมันครับ)
« Last Edit: 26 มกราคม , 2010, 01:25:20 am by = O_o" = »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
ข้อมูลเกี่ยวกับ telnet client ต่างๆ
« Reply #9 on: 15 กุมภาพันธ์ , 2009, 01:04:53 am »


PuTTY ( telnet/ssh client )

การติดตั้งโปรแกรม Putty นั้น ให้ทำการดาวน์โหลดตัวที่เป็น putty.exe เฉยๆ หรือ จะเอาตัว Installer มาก็ได้
ถ้าเราดาวน์โหลดตัวที่เป็น putty.exe เฉยๆมา มันก็จะมาในรูปแบบของ zip ไฟล์ ให้เราทำการ unzip ออกมา
แล้วเอาตัวโปรแกรมไปไว้ที่ folder ที่เราต้องการ แต่ถ้าเราเอาตัวที่เป็น installer มา ก็ให้ทำการติดตั้งแบบปรกติ
ไปเรื่อยจะเสร็จ แล้วโปรแกรมทั้งหมด จะไปอยู่ที่ folder ของ c:\program files\putty\

link : PuTTY: A Free Telnet/SSH Client / Download Page


Secure CRT ( encrypt secure shell )

การติดตั้งโปรแกรม secure crt นั้น ให้เราเข้าไปดาวน์โหลดที่เว็บไซท์ของมัน หรือ จะลองทำการ search หา
จากเว็บไซท์อื่นๆที่มีให้โหลดก็ได้ เพราะ ขั้นตอนในการดาวน์โหลดจากเว็บไซท์ของมันนั้นบางคนอาจจะไม่ชอบ
เพราะจะต้องการจะไปกรอกข้อมูลต่างๆ ก่อนดาวน์โหลด

การดาวน์โหลดตัวโปรแกรม จากเว็บอื่นๆในเน็ต เราอาจะจได้ secure crt ตัวที่เก่าๆหน่อย แต่ถ้าโหลดจากเว็บ
ที่เป็น official site เราก็จะเจอกับตัวล่าสุด สำหรับการดาวน์โหลดจากเว็บของ secure crt นั้น ให้เราเข้าไปที่
หน้าดาวน์โหลด จากนั้นให้ทำการดาวน์โหลดโปรแกรมที่เป็น windows installer มาใช้งาน

link : Secure CRT (info)Download Page


Tera Term ( Enhanced Telnet/SSH2 Client )

สำหรับโปรแกรม Tera Term นั้น เป็นโปรแกรม telnet client ที่มีการใช้งานกันมาตั้งแต่เมื่อสมัยก่อนๆแล้ว
ในตอนนี้ ถ้าเราค้นหาข้อมูลในเน็ต ก็อาจจะพบว่ามี Tera Term ให้เลือกใช้อยู่หลายแบบ ทั้งที่เป็น tera term
tera term pro และ tera term pro web  แต่ทั้งสองแบบนั้นก็มีการพัฒนามาจากโปรแกรมเดียวกันนั่นเอง ...

terra term pro (original) หยุดพัฒนาไปในช่วงปี 1999 เวอร์ชั่นสุดท้ายคือ 2.3 ต่อมาในปี 2002ได้ถูก ayera
นำไปพัฒนาต่อ จนกลายเป็น terra term web pro (3.13) และในช่วงปี 2004 ตัว terra term original ได้ถูก
ผู้พัฒนาซอฟท์แวร์ชาวญี่ปุ่น นำไปปรับปรุงและทำให้รองรับ ssh2 จนออกมาเป็น tera term เวอร์ชั่นใหม่ๆ

สำหรับการติดตั้งใช้งานโปรแกรม Tera Term เวอร์ชั่นล่าสุด ก็ไม่มีอะไรยุ่งยากเลย แค่เราไปโหลดตัว installer
มาจากเว็บไซท์ แล้วก็คลิกเพื่อเรียกตัว installer ขึ้นมาใช้งาน แล้วก็คลิก next ไปเรื่อยๆจนจบก็ใช้งานได้แล้ว

link : Tera Term Project / Tera Term Help /Terra Term Support


memo (http://katiproject.info/telnet-client/telnet-client-info)

ถ้าหากว่าเราใช้โปรแกรม Tera Term Pro Web 3.13 การติดตั้งนั้น ให้เราไปดาวโหลดโปรแกรม มาจากเว็บไซท์
ของ ayera ซึ่งขั้นตอนนี้ จะต้องกรอกข้อมูล และ e-mail ของเราลงไปด้วย จากนั้นเราถึงจะสามารถดาวน์โหลดได้
หลังจากดาวน์โหลดมาได้เรียบร้อยแล้ว ก็ให้ทำการ unzip ไฟล์ออกมาได้เลย ไม่ต้องมีการ install อะไรให้ยุ่งยาก
จากนั้นก็สามารถนำ tera term ไปใช้งานได้เลย ( เวอร์ชั่น 3.13 ไฟล์จะอยู่ใน folder ชื่อ ttpro313 )

link : TeraTerm Pro Web - Enhanced Telnet/SSH2 Client /

ถ้าใครไม่อยากจะต้องกรอกรายละเอียดในการดาวน์โหลด ก็สามารถ นำคำว่า tera term 3.13 ไปค้นหาจาก google
หรือ ค้นหาจากเว็บผู้ให้บริการดาวน์โหลดไฟล์เจ้าอื่นๆ อย่างเช่น tucows เพื่อหาโปรแกรมมาใช้ก็สามารถทำได้ครับ

สำหรับโปรแกรม putty และ tera term นั้น เป็นโปรแกรมที่เราสามารถโหลดมาใช้งานได้ฟรี ไม่ต้องเสียค่าใช้จ่ายเลย
แต่สำหรับ secure crt นั้น จะมีให้เราโหลดในเป็นแบบให้เราลองใช้งานได้ 30 วัน ถ้าหากจะใช้ต่อก็ต้องเสียค่า register
« Last Edit: 10 พฤศจิกายน , 2009, 11:45:55 pm by = Aegis = »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
--------
« Reply #10 on: 15 กุมภาพันธ์ , 2009, 01:11:58 am »
[รอการตรวจสอบ / รอการแก้ไข]

« Last Edit: 12 มกราคม , 2010, 05:17:41 pm by =Aegis= »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
การเชื่อมต่อ dynamips กับ loopback adapter (ตัวอย่าง)
« Reply #11 on: 07 พฤษภาคม , 2009, 02:46:43 am »


[รอการตรวจสอบ / รอการแก้ไข]

     

เรื่องของการทำให้อุปกรณ์ที่อยู่ใน lab สามารถติดต่อกับอุปกรณ์ต่างๆภายนอกได้นั้น มีความจำเป็นต่อการนำไปใช้งาน
อยู่หลายเรื่อง เช่น ถ้าเราต้องการ telnet เข้ามาที่ line vty ของ router หรือ เราต้องการนำข้อมูลบางอย่างจาก lab
ออกไปทำงานร่วมกับอุปกรณ์อื่นๆ เช่น นำข้อมูลจาก trunk port ไปใช้กับอุปกรณ์ข้างนอก หรือ ลองต่อกับ client จริง
ซึ่งขั้นตอนในการทำให้อุปกรณ์ต่างๆที่อยู่ใน lab ของเรา ติดต่อกับอุปกรณ์อื่นๆได้นั้น มีอยู่ 4 ส่วนหลักๆ ด้วยกัน ก็คือ
 
  ขั้นตอนการคอนฟิกมีดังนี้ (สำหรับ windows)

      – ทำการติดตั้ง loopback adapter ลงในระบบของ windows
      – ทำการตรวจสอบ nio_gen_eth ของ network adapter ที่ต้องการ
      – ทำการนำข้อมูล nio_gen_eth ไปใส่ให้กับ interface ของอุปกรณ์
      – ทำการตั้งค่า ip ให้กับ loopback adapter และ interface ของอุปกรณ์

ตัวอย่างต่อไปนี้ จะเป็นตัวอย่างการเชื่อมต่อ lab ที่สร้างขึ้นจาก dynamips/dynagen เข้ากับ loopback interface
เพื่อใช้ทดสอบการ telnet เข้าไปยัง router เพื่อเป็นแนวทางในการเชื่อมต่อ lab ของเรา เข้ากับ network adapter
ตัวอื่นๆ อย่างเช่น ของ lan card หรือ ของ vmware  หรือพวก virtual pc อย่าง vpcs ก็ได้ (ดู note ด้านล่าง)


การติดตั้ง loopback adapter

loopback adapter  นั้น เป็น adapter ที่มีมาให้กับ windows เรียบร้อยแล้ว เราไม่ต้องไปหาจากไหนเลย
เราสามารถติดตั้ง adapter ตัวนี้ ได้เหมือนกับการติดตั้งอุปกรณ์ทั่วไปใน windows ขั้นตอนของการติดตั้งมีดังนี้

   1.ไปที่ start  -> setting  -> control panel ->add hardware จากนั้นกด next
   2.จากนั้นเลือกหัวข้อ  yes , I jave already connected tha hardware แล้วกด next
   3.เลือกหัวข้อ add new hardware device (ตัวล่างสุด) แล้วกด next
   4.เลือกหัวข้อ install the hardware that i manually select form a list แล้วกด next
   5.เลือกติดตั้ง network adapter แล้วกด next
   6.เลือกหัวข้อหลัก microsoft แล้วเลือกชนิดของ  microsoft loopback adapter แล้วกด next

จากนั้นระบบก็จะติดตั้ง microsoft loopback adapter  ถ้าทำเสร็จแล้วจะขึ้นว่า finish ก็ถือว่าติดตั้งเรียบร้อย


*** สำหรับผู้ที่เริ่มตั้งค่าเมนูแบบ category view ตอนไปที่ control panel ให้เลือกหัวข้อ Printers and
Other Hardware แล้วกดที่ see also แล้วค่อยเข้า add new hardware ( ผมใช้แบบ classic view )

ถ้าเราใช้ windows รุ่นอื่นที่ไม่ได้ xp สามารถดูวิธีการติดตั้ง loopback adapter ได้ที่บทความเรื่อง
How to install loopback adapter in vista ที่มาจากเว็บ 7200.hacki.at ครับ (ดูตรงล่างๆนะ) ^_^



การตรวจสอบค่า NIO_gen_eth

การตรวจสอบค่านี้ เราทำได้โดยไปคลิกที่ icon ของ Network Device List ที่มีมาให้ตอนลงโปรแกรม
dynagen จากนั้นจะมีกรอบขึ้นมาแสดงข้อมูลที่เราต้องการ อย่างของเครื่องของผม จะได้ค่าออกมาแบบนี้ครับ

Network adapters on this machine:

 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}
 Name      : Local Area Connection 2
 Desciption: MS LoopBack Driver

NIO_gen_eth:\Device\NPF_{32D667F8-B703-4044-B7A5-9D780A8A94F5}
  Name      : Local Area Connection 4
 Desciption: NVIDIA nForce MCP Networking Adapter DriverA

 

จากนั้นผมก็ทำการ copy ค่ามาจากหัวข้อ loopback adapter แล้วนำไป map กับ interface ที่ต้องการอีกทีนึง


การนำข้อมูล NIO ไปใส่ให้กับ interface ของอุปกรณ์ที่ต้องการ
 
ต้องขอบอกก่อนว่า interface ที่เราจะนำค่าไปใส่ได้นั้น จะต้องเป็น interface ที่เป็น lan interface อย่างเช่น
ethernet , fast ethernet  หรือ เป็น port ของ switch เท่านั้น เราไม่เอามันมา map กับ wan interface
การนำค่าที่ได้มาไปติดตั้งกับ interface นั้น ก็ทำได้โดย กำหนดชื่อ interface หรือ port ที่ต้องการ แล้วจากนั้น
ก็เอาค่าไปใส่หลังเครื่องหมาย = ได้เลย (เหมือนกับเวลาเราเชื่อมต่อปรกติ แต่ไม่ต้องอ้างชื่ออุปกรณ์)

ดังนั้นถ้าเราจะทำการ map เจ้า loopback adapter กับ fast ethernet interface ของ router ของเรา
เราก็กำหนดลงไปในข้อมูลของ router โดย ใส่ชื่อ interface แล้วใส่เครื่องหมาย =  ตามด้วย NIO_gen_eth:
แล้วก็ต่อด้วยชื่อ device name หรือใส่ค่า device id ที่เราได้มาในขั้นตอนแรกลงไป

f1/0 = NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}


แต่ถ้าเราจะกำหนดค่าให้กับ switch เราก็ตั้งค่า ที่ port ที่ต้องการ จากนั้น ก็ทำการกำหนดให้ lan interface
ของ router ไปเชื่อมกับ port  ของ switch  อีกทีก็ได้ ตัวอย่างเช่น เรากำหนดค่าให้ port 1 ของ switch
ชื่อ SW1 เป็น port ที่ต่อกับ loopback adaptor เราก็ต้องกำหนดชื่อ port แล้วตามด้วยชนิดของ port
ตามด้วยชื่อ vlan แล้วจึงตามด้วย NIO_gen_eth: และ device id ตามลงไปอีกที เช่น


[router R1]]
f1/0 = SW1 1

[[ethsw SW1]]
1 = access 1 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}



ในกรณีที่เรากำหนดให้ port นั้น เป็น trunk port  แล้วเราจะทำการตั้งค่าให้เอาข้อมูลจาก trunk
ไปใช้งานกับอุปกรณ์จริง เราก็สามารถกำหนดค่า NIO_gen_eth ต่อจากการกำหนดค่า trunk ได้เลย

1 = dot1q 1 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}


(การกำหนดค่า trunk port ทำได้โดยกำหนดประเภทของ port ให้เป็น dot1q แล้วตามด้วยหมายเลข vlan)

การที่เราจะรู้ว่าจะใช้การ map กับ interface โดยตรงเลย หรือ จะใช้การ map เข้ากับ port ของ switch
เรื่องนี้ จากที่ลองเอง และ ที่ได้ค้นดูจากข้อมูลใน internet ก็ได้ข้อสังเกตว่า มันขึ้นกับ modlue ที่เราใช้นั่นเอง

ถ้าเราใช้งาน NM-4E  และ NM-1FE-TX  เราจะสามารถเลือกการ map ใช้งานได้ทั้งการ map กับ switch
และการ map กับ interface เพราะว่า module ทั้งสองตัวนี้ เราจะสามารถตั้ง ip ให้กับ interface ของมันได้
ดังนั้นพอเราตั้ง ip ให้มัน ก็จะเกิด routing  ขึนมา interface ของมันจึงสามารถถูก ping จากภายนอกได้

แต่ถ้าเราใช้ NM-16ESW  ซึ่งเป็น switch module นั้น การทำงานของมัน จะเป็นการทำงานใน layer 2 ทำให้
เราไม่สามารถตั้ง ip ให้กับ interface ได้ ทำให้ interface ไม่มีตัวตัน ไม่มี ip และไม่เกิด routing ของกลุ่ม ip
ที่ใช้งาน ที่จะทำให้อุปกรณ์ภายนอกติดต่อเข้ามาได้ สำหรับการใช้งานระดับเริ่มต้นถ้าใครใช้งาน 3640 เหมือนผม
ถ้าจะเชื่อมต่อกับภายนอกแนะนำให้ใช้ module เป็น NM-4E  และ NM-1FE-TX


การตั้งค่า ip ให้กับ loopback adapter และ interface ของอุปกรณ์

การตั้งค่า ip ให้กับ loopback adapter นั้น ก็สามารถตั้งใด้เหมือนกับการตั้ง ip ทั่วๆไป ซึ่งมีขั้นตอนดังนี้
เราจะตั้งค่า ip ให้กับ loopback เป็นกลุ่มไหนก็ได้  แต่ก็ขอให้ตั้ง ip ให้กับ interface ที่จะเชื่อมต่อกันให้อยู่ใน
กลุ่มเดียวกันด้วย เช่นผมตั้งให้ lan interface เป็น 10.0.0.1 แล้วก็ตั้งให้ loopback adapter เป็น 10.0.0.2

      1.การตั้งค่า ip address นั้น ให้กับ loopback adapter

      - คลิกที่ my network place  แล้วกดเม้าส์ปุ่มขวา แล้วเลือก property
      - ทำการเลือก connection ที่เราสร้างจาก loopback adapter  แล้วกดเม้าส์ขวาเลือก property
      - ดับเบิ้ลคลิกที่หัวข้อ internet protocol (tcp/ip) เพื่อเข้าสู่หน้าจอการตั้งค่า ip address
      - ตั้งค่า ip address ให้เป็น 10.0.0.2 และ subnet mask เป็น 255.255.255.0 เมื่อตั้งเสร็จให้กด ok
     -  ตั้งค่า default gateway ของ loopback ให้เป็น ip ของ lan interface ของ router ที่เราเชื่อมต่ออยู่

     2.การตั้งค่าให้กับ lan interface

   จากตัวอย่าง ถ้าเราใช้งาน router รุ่น 3640 แล้วเลือติดตั้ง module  เป็น NM-1FE-TX ที่ slot 1
   แล้วเชื่อมต่อกับ cloud ทาง interface f1/0 เราก็จะต้องตั้งค่าให้กับ interface f1/0 ดังนี้

      Router>en
      Router#conf t
      Router(config)#int f1/0
      Router(config-if)#ip address 10.0.0.1 255.255.255.0
      Router(config-if)#no shut
      Router(config-if)#exit
      Router(config)#^Z


มีข้อควรระวังถ้าเรามีการใช้งาน lan card ที่มีการตั้ง ip อยู่แล้ว ก็อย่าไปตั้งซ้ำกับกลุ่มนั้น เช่น ถ้าเราเล่นเน็ตโดย
มีการเชื่อมต่อกับ lan card หรือ wireless adapter เราก็อย่าไปตั้งให้อยู่ใน network เดียวกัน ไม่เช่นนั้น
การติดต่อระหว่าง loopback กับ อุปกรณ์ต่างใน lab ของเรา อาจจะเกิดปัญหาได้

นอกจากนี้ปัญหาอีกอย่างที่จะเกิด คือเรื่องของ network adapter หรือ wireless adapter ที่เราใช้ต่อเน็ต
กับ loopback adapter แย่งกันตั้ง default gateway ของเครื่อง ให้ไปใช้ค่าที่เป็นของมัน ซึ่งจะเป็นเหตุให้
loopback ไม่สามารถ ping ไปยังอุปกรณ์อื่นๆที่ใช้งาน ip ที่ต่าง network ได้เพราะปัญหา gateway ที่ใช้งาน
ถ้าเกิดปัญหาให้ลอง disable การทำงานของ lan cad หรือ wireless adapter ที่ใช้งานอยู่ไปเลยครับ



การทดสอบและใช้งานจริง

หลังจากที่เราทำขั้นตอนต่างๆเสร็จเรียบร้อย ก็ให้ลองทำการทดสอบ ip address ของอุปกรณ์ทั้งสองฝั่ง
รวมทั้งตรวจสอบว่า ที่ตัว router นั้น ได้มี routing ของ ip ในกลุ่มที่เรากำหนดเอาไว้เรียบร้อยแล้วหรือยัง
การจรวจสอบค่า ip ของ loopback interface ให้ไปที่ cmd ของ windows แล้วใช้คำสั่ง ipconfig

การตรวจสอบค่า ip และ ดูสถานะ ของ lan interface ของ router ให้ใช้คำสั่ง show interface เพื่อดูผล

     Router#show int f1/0

     FastEthernet1/0 is up, line protocol is up
     Hardware is AmdFE, address is cc05.0b68.0000 (bia cc05.0b68.0000)
     Internet address is 10.0.0.1/24
     MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
     . . . .

การตรวจสอบ routing table ของ router ทำได้ด้วยการใช้คำสั่ง show ip route

      Router#sh ip route

      Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

      Gateway of last resort is not set

              10.0.0.0/24 is subnetted, 1 subnets
      C       10.0.0.0 is directly connected, FastEthernet1/0


หลังจากที่เราทำขั้นตอนต่างๆเสร็จเรียบร้อยแล้ว ก็ให้ลองทำการ ping จาก command prompt ของ windows
ไปยัง lan interface ของ router และ ทำการ ping จาก router มายัง ip ของ loopback  adapter
ถ้าสามารถ ping ไปและกลับได้จากทั้งสองทาง ก็แปลว่าการตั้งค่าของเราสำเร็จเรียบร้อยแล้ว

แต่ถ้า ping กันไม่ได้ ให้ลองทำการตรวจสอบ routing ด้วยคำสั่ง show ip route เพื่อดูว่า มีการสร้าง routing
สำหรับกลุ่ม ip ของ loopback adapter และ interface ของ router แล้วหรือยัง ถ้ายังไม่มี routing ขึ้นมา
ให้ตรวจสอบการตั้ง ip ของ interface และ สถานะของ interface ด้วยว่ามันเป็นอย่างไร (ใช้คำสั่ง show int)

interface ที่เราสร้างขึ้นมาแล้ว จะสามารถใช้งานได้ ก็ต่อเมื่อค่าของ มีการกำหนด ip ให้กับ interface อันนั้นแล้ว
และ จะต้องมีสถานะของ interface / line protocol เป็น up ทํ้งคู่ แล้วถึงจะมี routing ของ ip กลุ่มนั้นขึ้นมา

ถ้าการ ping สำเร็จไปได้ด้วยดีแล้ว ขั้นตอนต่อไป ให้ลองทำการ telnet จาก windows เข้าไปยัง ip ของ interface
ที่เชื่อมต่อกับ loopback แล้วดูว่ามันเข้าไปได้ไหม จากนั้น ให้ลองตั้ง passward เอาไว้ที่ line vty ของ router ดู
แล้วทำการ telnet เข้าไปอีกรอบ ถ้า telnet แล้วติด pass แปลว่า เราสามารถติดต่อไปยัง router ได้เรียบร้อยแล้ว


memo (http://archive.katiproject.info/gns3/connect-gns3-with-loopback-adapter)

ปรกติการใช้คำสั่ง telnet ที่เราทำใน dynagen นั้น ไม่ใช่การติดต่อไปยัง line vty ของ router ซึ่งใช้รับ
การ telnet ด้วย ip โดยตรง แต่เป็นการติดต่อเข้าไปยัง line consloe  ของ router แทน ทำให้การทดสอบ
อะไรบางอย่างที่ต้องทำทาง line vty นั้นไม่สามารถทำได้ ดังนั้นการ map ip ของ interface เข้ากับ loopback
adapter แบบที่เราคุยกันในวันนี้นั้น จะช่วยแก้ปัญหาในเรื่องนี้ได้

การ telnet แล้วตามด้วยชื่อของ router แบบที่ใช้ใน dynagen นั้น จริงๆก็คือการ telnet ไปยัง local ip
ของเครื่องนั้น แล้วตามด้วยหมายเลข port ซึ่งเป็นค่าเดียวกับ console port ของ router การ telnet  แบบนี้
เป็นการติดต่อเข้าทาง line console ของ router ไม่ใช่ทาง  line vty

ดังนั้นในทางกลับกัน ถ้าเราทำการ telnet จาก windows โดยพิมพ์ว่า telnet 127.0.0.1 2000 มันก็จะเป็นการ
ติดต่อไปยัง console ของ router ที่มีค่า console port เป็น 2000 นั่นเอง ค่า 2000 เป็นค่าเริ่มต้นของ port
ที่ใช้ใน dynamips/dynagen ซึ่งค่าตรงนี้จะเป็นของ router ตัวแรกที่สร้าง ถ้าสร้างอีกตัว ค่าก็จะเพิ่มให้ตัวต่อไป
อีก1โดยอัตโนมัต การตั้งค่า console port นั้น จริงๆแล้วเราจะตั้งให้เป็น หมายเลขอื่นๆก็ได้

ผมเคยอ่านเจอปัญหาที่พบในการนำข้อมูลจาก trunk port ออกไปใช้งานกับ server ข้างนอก แล้วมันเกิดปัญหาจาก
lan card ของ server ไม่รองรับ frame ที่เป็นแบบ dot1q จึงต้องไปปรับค่าของ lan card  ให้รองรับก่อน
ซึ่งตรงนี้ ไม่ใช่ว่า lan card ทุกๆแบบ จะรองรับ frame ขนาดใหญ่กว่าปรกติของ dot1q ได้เหมือนกัน ดังนั้น
การใช้งานจึงจำเป็นจะต้องตรวจสอบเสป็คของ lan card ที่จะนำมาใช้งานด้วย

---------------------------------------------------------------------------------------

[localhost]

  [[3640]]

  image = Program FilesDynamipsimagesc3640-js-mz.124-13.bin
  slot0 = NM-4T
  slot1 = NM-1FE-TX
  ram = 128
  mmap = true
  ghostios = true   


  [[ROUTER R1]]
  model = 3640
  f1/0 = SW1 1


  [[ROUTER R2]]
  model = 3640
  f1/0 = SW1 2

[[ethsw SW1]]
1 = access 1 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}
2 = access 1
#3 = access 1 NIO_gen_eth:\Device\NPF_{32D667F8-B703-4044-B7A5-9D780A8A94F5}


ค่า NIO_gen_eth ของ network adapter แต่ละอันจะไม่เหมือนกัน เพราะจะนั้นก่อนนำ config ไปลองใช้
ให้ทำการตรวจสอบค่าของ network adapter ที่คุณต้องการให้เรียบร้อยก่อน แล้วนำค่านั้นมาใส่แทนค่าในตัวอย่างนะครับ

« Last Edit: 09 ธันวาคม , 2010, 01:00:05 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
[รอการตรวจสอบ/แก้ไขเพิ่มเติมข้อมูล]

   

หากเราต้องการเชื่อมต่ออุปกรณ์ใน lab เข้ากับอุปกรณ์จริง อย่างเช่น switch / router หรืออุปกรณ์อื่นๆ
รายละเอียดและขั้นตอนทั่วๆไป หรือ concept ในการใช้งาน ก็คงจะคล้ายๆกับตัวอย่างที่ผมเขียนเอาไว้
ในเรื่องการเชื่อมต่อ dynamips เข้ากับ loopback adapter (อาจจะต่างกันบ้างเล็กน้อย)

   ขั้นตอนในการคอนฟิกมีดังนี้

      - ทำการเชื่อมต่ออุปกรณ์ที่ต้องการเข้ากับ network adapter ของเครื่องที่รัน dynamips
      - ทำการตรวจสอบ NIO_gen_eth ของ network adapter ที่ต้องการ
      - ทำการนำข้อมูล NIO_gen_eth ไปใส่ให้กับ interface ของอุปกรณ์ที่ต้องการจะเชื่อมต่อ
      - ทำการตั้งค่า ip ให้กับอุปกรณ์จริง , network adapter , interface ของ router


ถ้าหากเราต้องการเชื่อมต่ออุปกรณ์ใน lab เข้ากับอุปกรณ์จริง อย่างเช่น switch / router หรืออุปกรณ์อื่นๆ
เราจะต้องทำการเชื่อมต่อ lan interface ของอุปกรณ์ที่สร้างขึ้นใน dynamips เข้ากับ network adapter
ของเครื่องซะก่อน จากนั้นถึงจะนำอุปกรณ์ภายนอกที่ต้องการมาเชื่อมต่อเข้ากับ network adapter อีกทีนึง
เพื่อใช้ physical adapter ของเครื่องตัวนั้น เป็นตัวกลางในการเชื่อมต่อกับอุปกรณ์จริงนั่นเอง

สำหรับการเชื่อมต่อ ก็ให้นำอุปกรณ์จริงที่ต้องการมาเชื่อมต่อกับ network adapter ที่เราได้ map ค่าเอาไว้
หลังจากนั้นก็ให้ทำการตั้งค่า ip address ของ router , network adapter และอุปกรณ์ที่นำมาเชื่อมต่อ
ให้อยู่ใน network เดียวกัน ก็จะสามารถทำให้อุปกรณ์ต่างๆเหล่านั่นเชื่อมต่อได้แล้วครับ

ส่วนเรื่องของการเลือกใช้ NIO สำหรับการติดต่อนั้น ถ้าหากเราใช้งาน dynamips บน windows เราก็จะใช้
NIO ที่เป็นแบบ NIO_gen_eth เพื่อเชื่อมต่อกับ network adapter หรือ wireless adapter ของเครื่อง
แต่ถ้าเราใช้งาน dynamips บนระบบ linux แล้วต้องการติดต่อกับอุปกรณ์จริง ก็จะใช้ NIO_linux_eth:

ในบางครั้งการเชื่อต่อระหว่างอุปกรณ์ใน dynamips กับ network adapter หรือ physical adapter ต่างๆนั้น
ก็อาจจะเกิดปัญหาในการติดต่อกันได้ ให้ลองทำการ bridge ตัว network adapter หรือ physical adapter
ที่เราจะใช้งานเข้ากับ loopback adapter ซะก่อน แล้วค่อยให้อุปกรณ์ไปติดต่อกับ loopback adapter แทน


การตรวจสอบค่า NIO_gen_eth

การตรวจสอบค่านี้ เราทำได้โดยไปคลิกที่ icon ของ Network Device List ที่มีมาให้ตอนลงโปรแกรม
dynagen จากนั้นจะมีกรอบขึ้นมาแสดงข้อมูลที่เราต้องการ อย่างของเครื่องของผม จะได้ค่าออกมาแบบนี้ครับ

Network adapters on this machine:

 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}
 Name      : Local Area Connection 2
 Desciption: MS LoopBack Driver

NIO_gen_eth:\Device\NPF_{32D667F8-B703-4044-B7A5-9D780A8A94F5}
  Name      : Local Area Connection 4
 Desciption: NVIDIA nForce MCP Networking Adapter DriverA

 

จากนั้นผมก็ทำการ copy ค่ามาจากหัวข้อ local area connection แล้วนำไป map กับ interface ที่ต้องการอีกทีนึง


การนำข้อมูล NIO ไปใส่ให้กับ interface ของอุปกรณ์ที่ต้องการ
 
ต้องขอบอกก่อนว่า interface ที่เราจะนำค่าไปใส่ได้นั้น จะต้องเป็น interface ที่เป็น lan interface อย่างเช่น
ethernet , fast ethernet  หรือ เป็น port ของ switch เท่านั้น เราไม่เอามันมา map กับ wan interface
การนำค่าที่ได้มาไปติดตั้งกับ interface นั้น ก็ทำได้โดย กำหนดชื่อ interface หรือ port ที่ต้องการ แล้วจากนั้น
ก็เอาค่าไปใส่หลังเครื่องหมาย = ได้เลย (เหมือนกับเวลาเราเชื่อมต่อปรกติ แต่ไม่ต้องอ้างชื่ออุปกรณ์)

ดังนั้นถ้าเราจะทำการ map เจ้า loopback adapter กับ fast ethernet interface ของ router ของเรา
เราก็กำหนดลงไปในข้อมูลของ router โดย ใส่ชื่อ interface แล้วใส่เครื่องหมาย =  ตามด้วย NIO_gen_eth:
แล้วก็ต่อด้วยชื่อ device name หรือใส่ค่า device id ที่เราได้มาในขั้นตอนแรกลงไป

f1/0 = NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}


แต่ถ้าเราจะกำหนดค่าให้กับ switch เราก็ตั้งค่า ที่ port ที่ต้องการ จากนั้น ก็ทำการกำหนดให้ lan interface
ของ router ไปเชื่อมกับ port  ของ switch  อีกทีก็ได้ ตัวอย่างเช่น เรากำหนดค่าให้ port 1 ของ switch
ชื่อ SW1 เป็น port ที่ต่อกับ loopback adaptor เราก็ต้องกำหนดชื่อ port แล้วตามด้วยชนิดของ port
ตามด้วยชื่อ vlan แล้วจึงตามด้วย NIO_gen_eth: และ device id ตามลงไปอีกที เช่น


[router R1]]
f1/0 = SW1 1

[[ethsw SW1]]
1 = access 1 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}



ในกรณีที่เรากำหนดให้ port นั้น เป็น trunk port  แล้วเราจะทำการตั้งค่าให้เอาข้อมูลจาก trunk
ไปใช้งานกับอุปกรณ์จริง เราก็สามารถกำหนดค่า NIO_gen_eth ต่อจากการกำหนดค่า trunk ได้เลย

1 = dot1q 1 NIO_gen_eth:\Device\NPF_{3AC216C7-D5D5-49EE-91C7-E770EE0D652F}


(การกำหนดค่า trunk port ทำได้โดยกำหนดประเภทของ port ให้เป็น dot1q แล้วตามด้วยหมายเลข vlan)

การที่เราจะรู้ว่าจะใช้การ map กับ interface โดยตรงเลย หรือ จะใช้การ map เข้ากับ port ของ switch
เรื่องนี้ จากที่ลองเอง และ ที่ได้ค้นดูจากข้อมูลใน internet ก็ได้ข้อสังเกตว่า มันขึ้นกับ modlue ที่เราใช้นั่นเอง

ถ้าเราใช้งาน NM-4E  และ NM-1FE-TX  เราจะสามารถเลือกการ map ใช้งานได้ทั้งการ map กับ switch
และการ map กับ interface เพราะว่า module ทั้งสองตัวนี้ เราจะสามารถตั้ง ip ให้กับ interface ของมันได้
ดังนั้นพอเราตั้ง ip ให้มัน ก็จะเกิด routing  ขึนมา interface ของมันจึงสามารถถูก ping จากภายนอกได้

แต่ถ้าเราใช้ NM-16ESW  ซึ่งเป็น switch module นั้น การทำงานของมัน จะเป็นการทำงานใน layer 2 ทำให้
เราไม่สามารถตั้ง ip ให้กับ interface ได้ ทำให้ interface ไม่มีตัวตัน ไม่มี ip และไม่เกิด routing ของกลุ่ม ip
ที่ใช้งาน ที่จะทำให้อุปกรณ์ภายนอกติดต่อเข้ามาได้ สำหรับการใช้งานระดับเริ่มต้นถ้าใครใช้งาน 3640 เหมือนผม
ถ้าจะเชื่อมต่อกับภายนอกแนะนำให้ใช้ module เป็น NM-4E  และ NM-1FE-TX

(สำหรับ ethernet module ที่จะเลือกใช้งานนั้น ถ้ามีการใช้ trunk แบบ dot1q ก็ควจจะใช้เป็น NM-1FE-TX)


การตั้งค่า ip address ให้กับอุปกรณ์ต่างๆ

สำหรับการตั้งค่า ip address นั้น จะมีจุดที่เกี่ยวข้องอยู่ 3 จุด ซึ่งจุดแรกก็คือ ip ที่ interface ของ router
จุดที่สองก็คือ ip ของ network adapter (lan card) และจุดสุดท้ายคือ ip ของอุปกรณ์จริงที่นำมาเชื่อมต่อ
การตั้งค่า ip ของ 3จุดนี้ เราจะต้องตั้งให้ ip ของทั้งหมด อยู่ใน network เดียวกัน เพื่อให้สามารถติดต่อกันได้

ส่วนเรื่องของการตั้งค่า gateway นั้น สำหรับ network adapter (lan card) นั้น เราก็อาจจะไม่ใส่ค่านี้ก็ได้
เพราะว่าเราใช้งานมันเป็นตัวกลางในการส่งข้อมูลเฉยๆ  ส่วนค่า gateway ของอุปกรณ์จริงที่เรานำมาเชื่อมต่อนั้น
ก็ต้องดูว่า อุปกรณ์นั้นทำหน้าที่เป็นอะไร ถ้ามันเป็นแค่ client เฉยๆ เราก็ทำการตั้งค่า gateway ชี้กลับมาที่ ip
ทางฝั่ง interface ของ router ที่อุปกรณ์จริงเชื่อมต่ออยู่ก็เป็นอันว่าใช้ได้แล้ว

แต่ถ้าหากเราต้องการที่จะเชื่อมต่อ router กับอุปกรณ์จริง แล้วให้ข้อมูลวิ่งผ่านจากฝั่งของ router ไปออกทาง
อุปกรณ์จริง ซึ่งเป็นกรณีที่ไม่ได้ใช้อุปกรณ์จริงเป็นแค่ client นอกจากการตั้งค่า ip ต่างๆ ตามที่บอกไว้แล้ว ผมก็
จะต้องสร้าง routing ขึ้นมาอีกอันนึงที่ router ใน lab เพื่อใช้กำหนดให้ข้อมูลวิ่งออกไปยังอุปกรณ์จริงที่ต้องการ …


ตัวอย่างการใช้งานจริง

ถ้าผมสร้าง router ขึ้นมาใน lab  แล้วต้องการจะเชื่อมต่อกับ linksys wrt54gl ซึ่งผมใช้ในการต่อเน็ตอยู่
เพื่อทำการ ping จาก router ใน lab ออกไปยังเว็บไซท์ต่างๆ อย่างเช่น yahoo.com ผมจะต้องทำดังนี้ ….

      - นำ linksys wrt54gl มาเชื่อมต่อสาย lan กับ lan card ของเครื่องที่รัน dynamips
      - ทำการตรวจสอบค่า nio_gen_eth ของ lan card โดยคลิดที่ icon ของ Network device list
      - ทำการแก้ไข ไฟล์ .net แล้วนำค่า nio_gen_eth ของ lan card ไปใส่ไว้ที่ interface ที่ต้องการ

      - ตั้งค่า ip ให้กับ linksys wrt54gl เป็น 192.168.1.10  (ถ้าตั้งไว้แล้วก็ข้ามไป)
      - ตั้งค่า ip ให้กับ lan card ของเครื่อง เป็น 192.168.1.20 (ไม่ต้องใส่ค่า gateway)
      - ตั้งค่า ip ให้กับ lan interface ของ router ใน lab เป็น 192.168.1.30
      - สร้าง routing ที่ router ใน lab เพื่อกำหนดให้ข้อมูลทั้งหมดวิ่งออกที่ 192.168.1.10

หลังจากตั้งค่า ip ให้ทุกอย่างอยู่ใน network เดียวกัน และได้มีการสร้าง routing ตามที่ต้องการเรียบร้อยแล้ว
เท่านี้ผมสามารถที่จะ ping จาก lab ออกไปยังเว็บไซท์จริงๆที่อยู่ภายนอก อย่างเช่น yahoo.com ได้แล้วครับ

(http://archive.katiproject.info/gns3/connect-gns3-with-real-device)
ปล.ถ้าเราลอง ping ไปยังเว็บไซท์ภายนอกแล้ว แต่ ping ไม่ได้ ให้ลองปิด firewall แล้วทำการ ping อีกรอบ
« Last Edit: 06 ธันวาคม , 2010, 03:37:59 am by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @

.....

  • Web Advisor
  • Layer 4
  • *****
  • Posts: 268
  • จิตพิสัย +18/-0
  • - Kati - Project -
[รอการตรวจสอบ/แก้ไข]

     

การเชื่อมต่อ lab ที่สร้างขึ้นด้วย dynamips เข้ากับ vpcs นั้น รายละเอียดและขั้นตอนของการทำอาจจะแตกต่าง
ไปจากการเชื่อมต่อ dynamips เข้ากับ loopback adapter หรือ เชื่อมต่อกับอุปกรณ์จริงอย่างมากเลยเหมือนกัน
เพราะว่าในเรื่องนี้ จะไม่มีเรื่องของการเชื่อมต่อกับพวก adapter ต่างๆเลย จะไม่มีการเชื่อมต่อโดยใช้งาน nio ต่างๆ
ที่เป็น nio ทาง physical เลย แต่จะเป็นการเชื่อมต่อกันทาง port ที่เป็น udp port เท่านั้น

   ขั้นตอนในการคอนฟิกมีดังนี้

      - ทำการเรียกใช้งานโปรแกรม vpcs ขึ้นมาก่อน (ก่อนที่จะเรียกใช้งาน dynamips)
      - ตรวจสอบค่า port ของ client (pc ที่ต้องการ) ด้วยคำสั่ง show
      - ทำการแก้ไขไฟล์ .net ที่จะใช้งาน โดยนำ Nio_udp ของ client ไปใส่ให้กับ interface ของอุปกรณ์
      - ทำการเรียกใช้งาน dynamips และไฟล์ .net ที่ต้องการขึ้นมา
      - ทำการตั้งค่า ip ให้กับ client ใน vpcs และ interface ของ router


การเพิ่มค่า Nio_udp ลงใน network file

สำหรับผู้ที่ต้องการจะเชื่อมต่อ router ที่สร้างขึ้นใน dyanmips เข้ากับ vpcs เพื่อนำมาใช้งานเป็น client นั้น
จะต้องมีการเปลี่ยนประเภทของ NIO ที่ใช้งาน โดยจะเปลี่ยนจากการใช้ NIO_gen_eth หรือ NIO_linux_eth
มาใช้เป็น nio_udp: แทน เพราะว่า vpcs เป็น virtual host ที่ต้องติดต่อผ่านทาง udp port

หลังจากเปลี่ยน nio มาเป็น nio_udp: เรียบร้อยแล้ว ก็จะต้องมีการเปลี่ยนพารามิเตอร์ที่ใส่ลงไปด้วย ซึ่งรูปแบบ
ของ NIO ที่จะนำมาใช้งานก็จะเป็น NIO_udp : RPORT : HOST IP : LPORT  เช่นถ้าจะเชื่อมต่อ lab เข้ากับ pc1
ของ vpcs ก็จะต้องใช้ค่า Nio_udp เป็น NIO_udp:30000:127.0.0.1:20000

ส่วนการนำค่า nio_udp ไปใส่ลงใน network file นั้น ก็ใส่ได้ 2 จุดด้วยกัน ก็คือการนำไปใส่ให้กับ interface
ของ router โดยตรง กับอีกแบบนึงก็คือ ให้เอาค่า nio_udp ไปใส่ให้กับ switch ก่อน แล้วค่อยนำ interface
อันนั้นมาเชื่อมต่อ กับ port ของ switch อีกทีก็ได้ (ดูตัวอย่างที่ด้านล่างประกอบ)


ค่าพารามิเตอร์ต่างๆของ Nio_udp

ค่าต่างๆที่ตามท้าย nio_udp: จะเป็นการนำค่า RPORT, LPORT ที่ได้จาก vpcs และ ip ของเครื่องที่เปิดใช้งาน
vpcs มาใส่เป็นพารามิเตอร์ เราสามารถตรวจสอบค่า RPORT, LPORT ของ pc ใน vpcs ได้ด้วยการใช้คำสั่ง show

  -  LPORT หมายถึง local port หรือ port ที่ vpcs เปิดขึ้นมาเพื่อใช้รอรับการติดต่อจาก dynamips
     ค่าเริ่มต้นของ LHOST คือ 20000 และจะเพิ่มไปทีละ 1 ตามจำนวน pc ใน vpcs ที่เพิ่มขึ้น

  -  RPORT หมายถึง remote port หรือ port ที่จะให้ dynamips เปิดรอเอาไว้รับการติดต่อ vpcs
     ค่าเริ่มต้นของ RHOST คือ 30000 และจะเพิ่มไปทีละ 1 ตามจำนวน pc ใน vpcs ที่เพิ่มขึ้น

  -  Host IP อยู่ตรงกลาง เป็นส่วนของ remote host (pc ) ที่ต้องการจะใช้งาน ดังนั้นถ้าใช้งาน
    ในเครื่องเดียวกันก็ให้ตั้งค่าในส่วน ip นี้ เป็น 127.0.0.1 อยู่ลงไป หรือให้เป็น localhost ก็ได้

ค่า LPORT , RPORT ของ client (pc) แต่ละตัวนั้น จะเป็นของใครของมัน ดังนั้น หากเราต้องการจะเชื่อมต่อ
interface ของ router หรือ switch เข้ากับ pc ตัวไหน ก็ให้นำค่า LPORT , RPORT ของ pc ตัวนั้นไปใช้
ตั้งค่าให้กับ NIO_udp ที่เราสร้างขึ้น ซึ่งค่า LPORT และ RPORT ของ pc ตัวต่อๆไปในจะเพิ่มทีขึ้นละ1ทั้งคู่

   PC         Local Port     Remote Host   Remote Port 
-------------------------------------------------------------------------
   pc1        30000            127.0.0.1          20000   
   pc2        30001            127.0.0.1          20001   
   pc3        30002            127.0.0.1          20002   
   pc4        30003            127.0.0.1          20003   
   pc5        30004            127.0.0.1          20004   
   pc6        30005            127.0.0.1          20005   
   pc7        30006            127.0.0.1          20006   
   pc8        30007            127.0.0.1          20007   
   pc9        30008            127.0.0.1          20008   


  *** Local Port = RPORT (VPCS)   /  Remote Port = LPORT (VPCS)


การตั้งค่า ip address ให้กับ client

การแก้ไขค่า ip ให้กับ client ของ vpsc นั้น เราจะทำโดยไปตั้งในไฟล์ startup.vpc ก็ได้ หรือจะตั้งด้วยคำสั่ง
หลังจากเราทำการรัน vpcs ขึ้นมาใช้งานก็ได้ สำหรับการตั้ง ip ให้กับ pc ต่างๆใน vpcs นั้น ทำได้โดยเข้าไปแก้ไข
ที่ไฟล์คอนฟิกของ vpcs ที่ชื่อว่า startup.vpc ซึ่งปรกติแล้วจะเป็น text file 

การจะตั้ง ip  subnet mask และ gateway ให้กับ pc ที่ต้องการนั้น ให้เราดูในหัวข้อที่มีการ remark เอาไว้
เช่น #pc1  แล้วดูลงมาอีกบรรทัดจะเห็นตัวเลข 1 ซึ่งจะหมายถึง pc1 นั้นเอง ส่วนข้อมูลของ ip ของ pc1 ก็จะ
อยู่ในบรรทัดต่อๆไป โดยจะเขียนเอาไว้ว่า ip แล้วตามด้วยตัวเลขต่างๆ 3 ชุด ซึ่งจะมีรูปแบบดังนี้ 
 
      ip <ip address>  <gateway>  </netmask>

ถ้าหากเราต้องการตั้ง ip address ให้กับ client ใน vpcs โดยการ ใช้คำสั่ง เราก็สามารถทำได้โดย เปิด vpcs ขึ้นมา
จากนั้นให้เราพิมพ์หมายเลขของ client ที่เราต้องการจะตั้ง ip ลงไปใน prompt เพื่อให้เราไปอยู่ที่ client (pc)ตัวนั้น
แล้วพิมพ์คำว่า ip ตามด้วย ip address แล้วก็ gateway กับ mask แล้วก็กด enter ก็เป็นอันว่าเสร็จเรียบร้อยแล้ว

ตัวอย่างเช่น ถ้าผมจะตั้ง ip ให้กับ pc 3 ผมก็พิมพ์ลงไปว่า 3 แล้วกด enter จากนั้น prompt ก็จะเปลี่ยนเป็น vpcs 3>
ซึ่งหมายความว่าตอนนี้ผมมาอยู่ที่ pc3 แล้ว จากนั้นผมก็พิมพ์คำสั่ง ip พร้อมด้วย ip , gw และ mask ที่ต้องการลงไป
ก็จะมีข้อความแจ้งบอกว่า ตอนนี้ pc3 นั้นได้มี ip , subnet mask และ gateway ตามที่ผมตั้งเอาไว้แล้ว


   VPCS 1 > 3
   VPCS 3 > ip 10.0.0.2  10.0.0.1 24
   PC 3 : 10.0.0.2  255.255.255.0  gateway 10.0.0.1


memo (http://katiproject.info/gns3/connect-gns3-with-vpcs)

เพื่อป้องกันไม่ให้เกิดปัญหาในเรื่องของการเปิด port หรือ การแย่ง port กัน ระหว่าง vpcs กับ dynamips
เราจึงจะต้องทำการเรียกใช้งาน vpcs ก่อน การใช้งาน dynamips เสมอ ไม่เช่นนั้นจะเกิดปัญหาเรื่อง port


สำหรับผู้ที่ใช้งาน vpcs กับ dynamips แล้วเกิดปัญหา ให้ทำการ copy ไฟล์ cygwin1.dll ของ vpcs มาไว้ใน
folder ของ /dynagen ให้เป็นเวอร์ชั่นเดียวกัน จากนั้นก็ทำการรันโปรแกรมใหม่อีกครั้ง แค่นี้ปัญหาก็จะหายไป

-------------------------------------------------------------------------------------------- 

[localhost]

  [[3640]]

  image = \Program Files\Dynamips\imagesc\3640-js-mz.124-13.bin
  slot0 = NM-4T
  slot1 = NM-1FE-TX
  ram = 128
  mmap = true
  ghostios = true   


  [[ROUTER R1]]

  model = 3640
  f1/0 = SW1 1

  [[ROUTER R2]]

  model = 3640
  f1/0 = SW1 2

[[ethsw SW1]]

1 = access 1 NIO_udp:30000:127.0.0.1:20000
2 = access 1 NIO_udp:30001:127.0.0.1:20001
#3 = access 1 NIO_udp:30002:127.0.0.1:20002

« Last Edit: 27 กรกฎาคม , 2010, 11:22:22 pm by ..... »
... ขอให้ความรู้ทั้งหลายจงเป็นสมบัติของโลก ..
@ This Document is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported  @