เตรียมเครื่อง · ทำก่อนแลปแรก

ติดตั้งทุกอย่างบน MacBook Air M2

ใบแลปเขียนสำหรับ Windows ทั้งเล่ม — หน้านี้แปลงทุกขั้นตอนเป็นเส้นทางของ Apple Silicon ตั้งแต่ GNS3 2.2.53, IOS image, Wireshark Arm, Parallels + Mininet, ไปจนถึงการต่อ console โดยไม่มี PuTTY

อ่าน ~16 นาที ทำจริง ~90 นาที ต้องทำก่อน Lab 1
สรุปหน้านี้ใน 30 วินาที

หน้านี้ทำให้เครื่องพร้อมทำแลปได้ทุกใบ มี 5 ก้อนที่ต้องลง — GNS3 2.2.53 (จำลอง router/switch), IOS image c7200 (ตัว OS ที่ router จะรัน), Wireshark รุ่น Arm + ChmodBPF (ดักจับ packet), Parallels/UTM + Ubuntu ARM + Mininet (แลป 3) และ เครื่องมือต่อ console ซึ่งบน Mac คือ screen ไม่ใช่ PuTTY

ได้อะไร: ทำเสร็จแล้วเปิด Lab 1 ต่อได้เลยโดยไม่ต้องหยุดกลางคัน — และห้องสอบไม่มีเวลาให้ติดตั้งอะไรทั้งนั้น ทุกอย่างต้องพร้อมมาจากบ้าน

0.1เป้าหมายและสิ่งที่ต้องส่ง

หน้านี้ไม่มีอะไรต้องส่งอาจารย์ แต่ใบแลป 2 เขียนไว้ชัดว่า "สิ่งที่ควรเตรียมก่อนเข้าห้อง (หากไม่ได้เตรียมก่อนเข้าแล็ปจะโดนหักคะแนน)" ฉะนั้นถือว่าทุกข้อข้างล่างนี้คือของที่ต้อง "ส่ง" ให้ตัวเอง

✓ต้องมีบนเครื่องเช็คยังไงว่าลงแล้วจริง
①GNS3 2.2.53 (ไฟล์ .dmg จาก GitHub release)เปิดแอปแล้วดูที่ GNS3 → About ต้องขึ้น 2.2.53
②IOS image c7200 ตั้งค่า RAM 512 MiB, slot1 = PA-4T+, slot2 = PA-4Eเห็น template ชื่อ c7200 อยู่ในแถบซ้ายของ GNS3
③Wireshark รุ่น Arm + ChmodBPF.pkgเปิด Wireshark แล้วเห็นรายชื่อ interface ในหน้าแรก
④Parallels Desktop (หรือ UTM) + Ubuntu ARM + Mininetssh ubuntu ติด แล้ว sudo mn --test pingall ผ่าน
⑤เครื่องมือต่อ console — screen (มีมากับ macOS อยู่แล้ว) + สาย USB-C→consolels /dev/tty.* เห็นชื่อ tty.usbmodem… ตอนเสียบสาย
⑥VPN KKU (เฉพาะเวลาใช้ GNS3 server ของคณะ)ต่อ VPN แล้ว ping IP ของ server ได้
⑦USB-C → Ethernet adapter (แลปเครื่องจริง)เสียบแล้วเห็นการ์ดใน System Settings → Network

0.2ภาพรวม — อะไรรันที่ไหน

ก่อนลงมือ ต้องเข้าใจก่อนว่าของ 5 ก้อนนั้นไม่ได้อยู่ที่เดียวกัน และ GNS3 ที่เห็นบนหน้าจอไม่ใช่ตัวที่รัน IOS — มันเป็นแค่หน้าจอ (GUI) ที่คุยกับ "server" อีกทีหนึ่ง เข้าใจภาพนี้แล้วเวลาพังจะรู้ทันทีว่าต้องไปแก้ตรงไหน

อ่านภาพข้างบนให้ได้ใจความนี้

GNS3 มีสองส่วนเสมอ — GUI (สิ่งที่คุณลากวาง) กับ server (สิ่งที่รัน IOS จริง ๆ ผ่าน dynamips) ถ้าใช้ local server ทั้งสองอยู่บน Mac เครื่องเดียวกัน ถ้าใช้ remote server ของ KKU ตัว server อยู่ที่คณะ และ ต้องต่อ VPN KKU ก่อน ไม่งั้น GUI หา server ไม่เจอ ส่วน Mininet ในแลป 3 ไม่เกี่ยวกับ GNS3 เลย — มันรันอยู่ใน Ubuntu ARM ในเครื่องเสมือนคนละใบ

0.3ต่อ VPN KKU ก่อน (ถ้าใช้ server ของคณะ)

ใบแลป 1 เขียนหมายเหตุไว้บรรทัดแรกสุดเลยว่า "ในกรณีที่ใช้ Server KKU จำเป็นต้องเชื่อมต่อ VPN KKU ก่อน" — นี่คือขั้นที่คนลืมบ่อยที่สุด เพราะอาการเวลาลืมไม่ได้บอกว่า "ไม่ได้ต่อ VPN" แต่บอกว่า "Could not connect to server" ซึ่งชวนให้ไปนั่งแก้ที่ GNS3 แทน

  1. ต่อ VPN KKU ก่อนเปิด GNS3 เสมอ — ไม่ใช่หลังจากนั้น ถ้าเปิด GNS3 ค้างไว้แล้วเพิ่งมาต่อ VPN ให้ปิด GNS3 แล้วเปิดใหม่
  2. ทดสอบว่า VPN ติดจริง ด้วยการ ping IP ของ server จาก Terminal ก่อน — ถ้า ping ไม่ผ่าน อย่าเพิ่งไปแตะ GNS3
    [macOS Terminal]
    $ ping -c 3 <IP ของ GNS3 server ที่อาจารย์ให้>
  3. ถ้าไม่ได้ใช้ server ของคณะ ให้ใช้ local server บนเครื่องตัวเอง — ข้ามขั้นตอน Remote server ทั้งหมดได้ (ใบแลปเขียนไว้ว่า "กรณีไม่ใช้ Remote servers ให้ข้ามการตั้งค่าขั้นตอนที่ 1–4 ได้เลย")
ส่วนขยาย — ไม่ได้อยู่ในใบแลป

บน Apple Silicon การรัน IOS ผ่าน local server ทำงานได้ปกติเพราะ dynamips จำลอง CPU ของ router ให้อยู่แล้ว ไม่ต้องใช้ Rosetta และไม่ต้องมี VM — ต่างจาก Mininet ที่ต้องมี Linux จริง ๆ ฉะนั้นถ้า VPN ห้องแลปมีปัญหา ยังทำ Lab 1 ต่อได้ด้วย local server

0.4ติดตั้ง GNS3 2.2.53 (.dmg)

ใบแลปย้ำว่า "ต้องใช้เวอร์ชั่น 2.2.53 จากหน้า release บน GitHub เท่านั้น" — อย่าโหลดจากหน้าเว็บ gns3.com เพราะจะได้เวอร์ชันใหม่กว่าที่โปรเจกต์ของเพื่อนเปิดไม่ขึ้น

หน้า GitHub release ของ GNS3 หัวข้อ Version 2.2.53 มีรายการเปลี่ยนแปลงแยกเป็นหัวข้อ GUI และ Server ด้านล่างเป็นส่วน Assets จำนวน 20 ไฟล์ แสดงรายการไฟล์เรียงกัน ได้แก่ GNS3-2.2.53-all-in-one.exe ขนาด 105 MB, GNS3-2.2.53-all-in-one.exe.sha256, GNS3-2.2.53.dmg ขนาด 109 MB, GNS3-2.2.53.dmg.sha256 และ GNS3-2.2.53.source.zip ทุกไฟล์ลงวันที่ Jan 21
รูปที่ 1 จากใบแลป Lab 1 — Assets ของ GNS3 Version 2.2.53 · เพื่อนที่ใช้ Windows โหลดบรรทัด GNS3-2.2.53-all-in-one.exe ส่วน เราโหลดบรรทัด GNS3-2.2.53.dmg (109 MB) ในหน้าเดียวกันนี้
  1. เข้าหน้า release ของ GNS3 GUI เวอร์ชัน 2.2.53
    https://github.com/GNS3/gns3-gui/releases/tag/v2.2.53
  2. ในส่วน Assets — เพื่อนที่ใช้ Windows โหลด GNS3-2.2.53-all-in-one.exe ส่วน Mac โหลด GNS3-2.2.53.dmg
  3. เปิดไฟล์ .dmg แล้วลากไอคอน GNS3 ลงโฟลเดอร์ Applications (ใบแลปเขียนว่า "สามารถเลือกกด Next ตลอดหน้าการติดตั้งได้")
  4. ครั้งแรกที่เปิด macOS จะเตือนว่ามาจากผู้พัฒนาที่ไม่ระบุตัวตน → ไปที่ System Settings → Privacy & Security แล้วกด Open Anyway
  5. เปิด GNS3 ครั้งแรกจะเด้งหน้าต่าง Preferences ขึ้นมาเอง ถ้าไม่เด้ง — GNS3 (มุมซ้ายบน) → Preferences
    จุดที่ Mac ต่าง

    ใบแลปบอกให้ไปที่ Edit → Preferences ซึ่งเป็นของ Windows — บน macOS เมนู Preferences อยู่ใต้ชื่อแอปที่มุมซ้ายบนเสมอ (ใบแลปเองก็มีหมายเหตุบรรทัดนี้ไว้: "ในกรณี Mac คลิกไปที่ GNS3 ซ้ายบนจะเจอคำว่า Preferences") ปุ่มลัดคือ ⌘+,

  6. สร้างโปรเจกต์ใหม่เป็นของตัวเอง — ตั้งชื่อให้จำง่าย เช่น lab1_topology1
หน้าต่างชื่อ Project มีสองแท็บคือ New project และ Projects library กำลังอยู่ที่แท็บ New project มีหัวข้อ New project พร้อมช่อง Name ที่กรอกคำว่า untitled ไว้ ด้านล่างเป็นหัวข้อ Open project ที่มีปุ่มดรอปดาวน์ Recent projects และพื้นที่ว่างเปล่า ด้านล่างสุดมีปุ่ม Settings ทางซ้าย กับปุ่ม OK และ Cancel ทางขวา
รูปที่ 12 จากใบแลป Lab 1 — หน้าต่างโปรเจค · ช่อง Name คือชื่อโปรเจกต์ (ค่าเริ่มต้นคือ untitled ให้เปลี่ยนเป็นชื่อที่จำง่าย) · หน้าต่างนี้เด้งเองทุกครั้งที่เปิด GNS3 และหน้าตาเหมือนกันทั้ง Mac และ Windows
จุดที่คนพลาดบ่อย

Windows all-in-one จะลง WinPcap และ Wireshark ให้พร้อมกันในตัวติดตั้งเดียว (ใบแลปเขียนไว้ตรงนี้) แต่ ตัว .dmg ของ Mac ไม่ได้ลง Wireshark ให้ ต้องไปโหลดเองแยกต่างหาก — และต้องเป็นรุ่น Arm ด้วย ดูหัวข้อ 0.7

หน้าจอติดตั้งฝั่ง Windows ในใบแลป (รูปที่ 2–6) — บน Mac ไม่มีหน้าพวกนี้เลย
อ่านก่อนดู — นี่คือหน้าจอฝั่ง Windows

รูปที่ 2–6 ในใบแลปคือตัวติดตั้ง GNS3-2.2.53-all-in-one.exe ของ Windows · บน MacBook Air M2 ขั้นตอนต่างออกไปทั้งหมด — ตัว .dmg เปิดขึ้นมาเป็นหน้าต่างที่มีไอคอน GNS3 กับโฟลเดอร์ Applications แล้วลากไอคอนลงโฟลเดอร์ จบ ไม่มีหน้า License, ไม่มี Start Menu, ไม่มี Choose Components และไม่มีหน้า Solarwinds ให้ตอบ No · ห้ามกดตามรูปเหล่านี้ ให้ทำตามขั้นตอน Mac ด้านบน (§0.4)

หน้าต่างติดตั้งของ Windows ชื่อ GNS3 2.2.53 Setup ด้านซ้ายเป็นแถบสีน้ำเงินมีโลโก้กิ้งก่า GNS3 กับลูกศรชี้ลงเข้าโน้ตบุ๊ก ด้านขวาเป็นข้อความ Welcome to GNS3 2.2.53 Setup อธิบายว่าตัวติดตั้งจะพาไปทีละขั้นและแนะนำให้ปิดโปรแกรมอื่นก่อน ปิดท้ายด้วยประโยค Click Next to continue มีปุ่ม Next และ Cancel อยู่มุมล่างขวา
รูปที่ 2 จากใบแลป Lab 1 — หน้าติดตั้งของ GNS3 Version 2.2.53 (หน้าต้อนรับของตัวติดตั้ง Windows) — หน้าจอฝั่ง Windows บน Mac ไม่มีหน้านี้
หน้าต่าง GNS3 2.2.53 Setup หัวข้อ License Agreement ข้อความบอกให้อ่านเงื่อนไขก่อนติดตั้ง ในกรอบเลื่อนแสดงข้อความ GNU GENERAL PUBLIC LICENSE Version 3 ลงวันที่ 29 June 2007 พร้อมข้อความลิขสิทธิ์ของ Free Software Foundation และหัวข้อ Preamble ด้านล่างมีข้อความว่าถ้ายอมรับให้กด I Agree มีปุ่ม Back, I Agree และ Cancel
รูปที่ 3 จากใบแลป Lab 1 — หน้าติดตั้งของ GNS3 Version 2.2.53 (หน้า License Agreement ของ GPL v3 พร้อมปุ่ม I Agree) — หน้าจอฝั่ง Windows บน Mac ตัว .dmg ไม่ถามเรื่องสัญญาอนุญาต ลากไอคอนลง Applications ได้เลย
หน้าต่าง GNS3 2.2.53 Setup หัวข้อ Choose Start Menu Folder ให้เลือกโฟลเดอร์ใน Start Menu สำหรับสร้าง shortcut ช่องข้อความด้านบนกรอกคำว่า GNS3 ด้านล่างเป็นรายการโฟลเดอร์ที่มีอยู่ เช่น Accessibility, Accessories, Acer, Administrative Tools, Android Studio, Balena Ltd, Battle.net, BlueStacks Store, CapCut, Garena, Git และ GNS3 มีปุ่ม Back, Next และ Cancel
รูปที่ 4 จากใบแลป Lab 1 — หน้าติดตั้งของ GNS3 Version 2.2.53 (เลือกโฟลเดอร์ใน Start Menu) — หน้าจอฝั่ง Windows macOS ไม่มี Start Menu ทุกแอปอยู่ในโฟลเดอร์ Applications เท่านั้น
หน้าต่าง GNS3 2.2.53 Setup หัวข้อ Choose Components ให้เลือกส่วนประกอบที่จะติดตั้ง ดรอปดาวน์ Select the type of install ตั้งไว้ที่ Custom ในรายการมีช่องติ๊ก MSVC Runtime 2017 ติ๊กแบบล็อกไว้, GNS3 Desktop ติ๊กอยู่, GNS3 WebClient ไม่ติ๊ก, GNS3 VM ไม่ติ๊ก และ Tools ติ๊กอยู่ ด้านล่างเขียนว่า Space required 323.3 MB มีปุ่ม Back, Next และ Cancel
รูปที่ 5 จากใบแลป Lab 1 — หน้าติดตั้งของ GNS3 Version 2.2.53 (เลือกส่วนประกอบ · ต้องติ๊ก GNS3 Desktop และ Tools) — หน้าจอฝั่ง Windows บน Mac ไม่มีให้เลือกส่วนประกอบ
หน้าต่าง GNS3 2.2.53 Setup หัวข้อ Solarwinds Standard Toolset ระบุว่า Exclusive for GNS3 users ด้านซ้ายเป็นโลโก้สีส้มของ Solarwinds ด้านขวาถามว่าต้องการเครื่องมือจัดการและแก้ปัญหาเน็ตเวิร์กกว่า 20 ตัวฟรีหรือไม่ พร้อมข้อความว่าเป็น license ฟรีมูลค่า 200 ดอลลาร์ มีปุ่มตัวเลือก Yes และ No โดย No ถูกเลือกอยู่ มีปุ่ม Back, Next และ Cancel
รูปที่ 6 จากใบแลป Lab 1 — หน้าติดตั้งของ GNS3 Version 2.2.53 (โฆษณา Solarwinds · ใบแลปเลือก No) — หน้าจอฝั่ง Windows บน Mac ไม่มีหน้านี้

0.5ตั้งค่า Remote server ของ KKU

ทำเฉพาะกรณีใช้ server ของคณะ (มี image ให้เลือกใช้อยู่แล้ว ไม่ต้องหาเอง) — ต่อ VPN KKU ให้ติดก่อน แล้วค่อยทำตามนี้

  1. GNS3 → Preferences → Server
  2. ตั้งค่า Main server ของตนเองก่อน (ส่วนนี้คือ local server บนเครื่อง)
    หน้าต่าง Preferences ของ GNS3 แถบซ้ายเป็นรายการหมวดตั้งค่า General, Server, GNS3 VM, Packet capture, Built-in ที่มี Ethernet hubs, Ethernet switches, Cloud nodes, VPCS, Dynamips ที่มี IOS routers, IOS on UNIX ที่มี IOU Devices, QEMU, VirtualBox, VMware และ Docker โดยเลือก Server อยู่ ด้านขวาหัวข้อ Server preferences มีสองแท็บคือ Main server และ Remote servers กำลังอยู่แท็บ Main server มีช่องติ๊ก Enable local server ติ๊กอยู่ พร้อมช่อง Server path และ Ubridge path ที่ชี้ไปยังพาธแบบ C ไดรฟ์ Program Files GNS3 ช่อง Host binding เป็น localhost ช่อง Port และช่วง Console port range 5900 ถึง 6000 กับ UDP tunneling port range
    รูปที่ 9 จากใบแลป Lab 1 — หน้าต่าง Preferences เพื่อตั้งค่า Server preferences (แท็บ Main server) · ช่อง Server path / Ubridge path ในรูปเป็นพาธของ Windows (C:\Program Files\GNS3\…) บน Mac จะเป็นพาธข้างในแอปแทน และ GNS3 เติมให้เองอยู่แล้ว ไม่ต้องแก้ — สิ่งเดียวที่ต้องดูคือ Enable local server ถูกติ๊กไว้
  3. เลือกแท็บ Remote servers แล้วกด Add
    หน้าต่าง Preferences ของ GNS3 หัวข้อ Server preferences อยู่ที่แท็บ Remote servers ตารางว่างเปล่ามีหัวคอลัมน์ Name, Protocol, Host, Port และ User ด้านล่างตารางมีปุ่ม Add ที่กดได้ กับปุ่ม Edit และ Delete ที่จางอยู่ ใต้ปุ่มมีข้อความหมายเหตุว่าการเปลี่ยนแปลงจะยังไม่มีผลกับส่วนอื่นจนกว่าจะกด apply
    รูปที่ 10 จากใบแลป Lab 1 — หน้าต่าง Preferences เพื่อตั้งค่า Server preferences (แท็บ Remote servers) · ตารางว่างแปลว่ายังไม่ได้เพิ่ม server → กด Add
  4. กรอกค่าตามที่อาจารย์ให้ — ความหมายของแต่ละช่องตามใบแลป:
    กล่องโต้ตอบเล็กชื่อ Edit server settings หัวข้อ Server settings มีสี่ช่อง ได้แก่ Name ที่ยังว่าง, Protocol เป็นดรอปดาวน์ตั้งค่าไว้ที่ HTTP, Host เป็นช่องว่างที่มีเคอร์เซอร์กะพริบอยู่ และ Port ตั้งค่าไว้ที่ 3080 TCP ด้านล่างมีช่องติ๊ก Enable authentication ที่ยังไม่ได้ติ๊ก ทำให้ช่องใต้มันจางอยู่
    รูปที่ 11 จากใบแลป Lab 1 — หน้าต่าง Server settings · Protocol = HTTP และ Port ค่าเริ่มต้นคือ 3080 TCP · ถ้าอาจารย์ให้ username/password มาด้วย ต้องติ๊ก Enable authentication ก่อนช่องด้านล่างถึงจะกรอกได้
    ช่องใส่อะไร
    Nameตั้งชื่อ server (ตั้งอะไรก็ได้ ไว้ให้ตัวเองจำ เช่น KKU)
    Protocolโปรโตคอลระหว่าง GNS3 Client กับ GNS3 Server — ใช้ HTTP
    Hostที่อยู่หรือ IP address ของ GNS3 Server
    Portหมายเลข Port ของ GNS3 Server
    UsernameUsername ที่ใช้ยืนยันเพื่อเข้าใช้ GNS3 Server
    PasswordPassword ที่ใช้ยืนยันเพื่อเข้าใช้ GNS3 Server
  5. กด OK แล้วสร้างโปรเจกต์ใหม่ — ตอนสร้างโปรเจกต์จะให้เลือกว่าจะรันที่ server ไหน

0.6เพิ่ม IOS image (c7200)

Router ใน GNS3 ไม่มี OS มาให้ ต้องป้อน image ของ IOS เข้าไปเอง ขั้นตอนนี้ทำครั้งเดียวจบ แล้ว template จะค้างอยู่ในเครื่องตลอด

  1. GNS3 → Preferences → IOS routers → กด New
    หน้าต่างโปรแกรม GNS3 ชื่อไฟล์ untitled2 มีแถบเมนู File, Edit, View, Control, Node, Annotate, Tools, Help โดยเมนู Edit ถูกกดเปิดค้างไว้ แสดงรายการ Select all คู่กับ Ctrl+A, Select none คู่กับ Ctrl+Shift+A, Manage snapshots และ Preferences คู่กับ Ctrl+Shift+P ซึ่งถูกไฮไลต์เป็นแถบสีน้ำเงิน มีกรอบสีแดงล้อมรอบเมนู Edit ที่เปิดอยู่ทั้งกล่อง
    รูปที่ 13 จากใบแลป Lab 1 — หน้าต่างโปรแกรม GNS 3 (เข้า Preferences จากเมนู Edit) · บน Mac ไม่มีเมนู Edit → Preferences — ให้กด GNS3 ที่มุมซ้ายบนของจอ แล้วเลือก Preferences หรือกด ⌘+, (ปุ่มลัด Ctrl+Shift+P ในรูปเป็นของ Windows) — ใบแลปเองก็เขียนหมายเหตุนี้ไว้
    หน้าต่าง Preferences ของ GNS3 หัวข้อ IOS router templates แถบซ้ายมีกรอบสีแดงล้อมรอบหัวข้อ Dynamips และรายการย่อย IOS routers ที่ถูกเลือกอยู่ ตรงกลางมีไอคอน template ชื่อ c7200 m5 ด้านขวาแสดงรายละเอียดสามกลุ่ม กลุ่ม General ระบุ Template name c7200 m5, Server Network, Platform c7200, Image c7200-adventerprisek9-mz.152-4.M5.image, Console type telnet, Idle-PC 0x606310e4 กลุ่ม Memories and disks ระบุ RAM 512 MiB และ NVRAM 512 KiB กลุ่ม Adapters ระบุ Slot 0 เป็น C7200-IO-FE, Slot 1 เป็น PA-4T+ และ Slot 2 เป็น PA-4E ด้านล่างมีปุ่มแถวเดียวกันคือ New ที่มีกรอบแดงล้อม, Decompress, Copy, Edit และ Delete
    รูปที่ 14 จากใบแลป Lab 1 — หน้าต่างโปรแกรม Preferences · เข้าที่ Dynamips → IOS routers แล้วกด New (กรอบแดง) · รูปนี้ยังใช้เป็น "เฉลย" ได้ด้วย — เมื่อสร้าง template เสร็จ ฝั่งขวาต้องขึ้นเหมือนกันนี้: RAM 512 MiB · Slot 0 C7200-IO-FE · Slot 1 PA-4T+ · Slot 2 PA-4E และมีค่า Idle-PC ไม่ว่าง
  2. เลือกว่าจะรันที่ไหน:
    • Run this IOS router on a remote computer — กรณีใช้ Remote server ของ KKU (มี image ให้เลือกใช้อยู่แล้ว)
    • Run this IOS router on my local computer — กรณีไม่ใช้ Remote server ต้องดาวน์โหลด image มาลงเอง
    กล่องโต้ตอบ New IOS router template ขั้นตอน Server มีข้อความว่า Please choose a server type to run the IOS router ในกลุ่ม Server type มีปุ่มตัวเลือกสามอัน คือ Run this IOS router on a remote computer ซึ่งถูกเลือกอยู่และมีกรอบสีแดงล้อม, Run this IOS router on the GNS3 VM ที่จางใช้ไม่ได้ และ Run this IOS router on my local computer ด้านล่างเป็นกลุ่ม Remote server มีดรอปดาวน์ Run on ตั้งค่าไว้ที่ Network
    รูปที่ 15 จากใบแลป Lab 1 — หน้าต่างโปรแกรม New IOS router template (เลือกว่าจะรัน IOS ที่ server ไหน) · รูปในใบแลปเลือกแบบ remote computer เพราะใช้ server ของคณะ · ถ้าลงเองบน MacBook ให้เลือก Run this IOS router on my local computer แล้วชี้ไฟล์ image เอง
  3. เลือกไฟล์ image c7200-adventerprisek9-mz.152-4.M5.image
    กล่องโต้ตอบ New IOS router template ขั้นตอน IOS image ซ้อนอยู่บนหน้าต่าง Preferences หัวข้อ IOS router templates มีข้อความว่า Please choose an IOS image มีปุ่มตัวเลือก Existing image ที่ถูกเลือกอยู่ กับ New Image ด้านล่างเป็นรายการไฟล์สองบรรทัด บรรทัดแรกคือ c7200-adventerprisek9-mz.124-24.T5.image บรรทัดที่สองคือ c7200-adventerprisek9-mz.152-4.M5.image ซึ่งถูกไฮไลต์เป็นแถบสีน้ำเงินและมีกรอบสีแดงล้อมรอบ ด้านล่างมีปุ่ม Back, Next และ Cancel
    รูปที่ 16 จากใบแลป Lab 1 — หน้าต่างโปรแกรม New IOS router template (เลือก IOS image) · ในรายการมีสองไฟล์ที่หน้าตาคล้ายกันมาก — ต้องเลือกบรรทัดล่างคือ c7200-adventerprisek9-mz.152-4.M5.image ไม่ใช่ 124-24.T5
  4. ตั้ง Name ตามที่ต้องการ แล้วตั้ง Default RAM = 512 MiB
    กล่องโต้ตอบชื่อ New IOS router ต่อท้ายด้วยชื่อไฟล์ c7200-adventerprisek9-mz.152-4.M5.image ขั้นตอน Name and platform มีข้อความให้ตั้งชื่อที่สื่อความหมายและตรวจสอบ platform กับ chassis ด้านล่างมีสามช่อง ช่อง Name กรอกคำว่า c7200 และมีกรอบเน้นอยู่ ช่อง Platform เป็นดรอปดาวน์ค่า c7200 และช่อง Chassis เป็นดรอปดาวน์ว่างเปล่า มีปุ่ม Back, Next และ Cancel ด้านล่าง
    รูปที่ 17 จากใบแลป Lab 1 — หน้าต่างโปรแกรม New IOS router template (ตั้งชื่อและตรวจ platform) · ช่อง Name คือชื่อที่จะไปโผล่ในแถบซ้าย ตั้งอะไรก็ได้ · Platform ต้องเป็น c7200 · ช่อง Chassis ว่างได้ เพราะ c7200 ไม่มีตัวเลือก chassis
    กล่องโต้ตอบ New IOS router ขั้นตอน Memory มีข้อความอธิบายว่าให้ตรวจปริมาณแรมที่จัดสรรให้ IOS เพราะมากหรือน้อยเกินไปจะทำให้ IOS ไม่เริ่มทำงาน ด้านล่างมีช่อง Default RAM กรอกค่า 512 MiB พร้อมปุ่มลูกศรขึ้นลง และมีลิงก์สีน้ำเงินขีดเส้นใต้ว่า Check for minimum and maximum RAM requirement มีปุ่ม Back, Next และ Cancel ด้านล่าง
    รูปที่ 18 จากใบแลป Lab 1 — หน้าต่างโปรแกรม New IOS router template (หน้า Memory) · ตั้ง Default RAM = 512 MiB ตามที่ใบแลปกำหนด (หมายเหตุ: แถบหัวหน้าต่างของรูปนี้ในใบแลปขึ้นชื่อไฟล์ c7200-advipservicesk9-mz.152-4.S5.image ซึ่งเป็น image คนละตัวกับที่เราใช้ — ตัวเลข 512 MiB เหมือนกัน ไม่ต้องตกใจ)
  5. ที่หน้าเลือก adapter — slot 1 = PA-4T+ และ slot 2 = PA-4E
    กล่องโต้ตอบ New IOS router ต่อท้ายด้วยชื่อไฟล์ c7200-adventerprisek9-mz.152-4.M5.image ขั้นตอน Network adapters มีข้อความว่าให้เลือกการ์ดเครือข่ายที่จะใส่ให้ router ทุกตัวที่สร้างจาก template นี้ ด้านล่างมีดรอปดาวน์เจ็ดแถวชื่อ slot 0 ถึง slot 6 โดย slot 0 ตั้งค่าเป็น C7200-IO-FE, slot 1 ตั้งค่าเป็น PA-4T+, slot 2 ตั้งค่าเป็น PA-4E ส่วน slot 3 ถึง slot 6 ว่างเปล่าทั้งหมด
    รูปที่ 19 จากใบแลป Lab 1 — หน้าต่างโปรแกรม New IOS router template (หน้า Network adapters) · slot 0 = C7200-IO-FE ติดมาเองกับตัวเครื่อง (ได้พอร์ต FastEthernet0/0) · slot 1 = PA-4T+ และ slot 2 = PA-4E ตามที่ใบแลปสั่ง · slot 3–slot 6 ปล่อยว่าง
    สองอันนี้คืออะไร และทำไมต้องใส่

    PA-4T+ = การ์ด Serial 4 พอร์ต → จะได้อินเทอร์เฟซชื่อ Serial1/0 ถึง Serial1/3
    PA-4E = การ์ด Ethernet 4 พอร์ต → จะได้ Ethernet2/0 ถึง Ethernet2/3
    ถ้าไม่ใส่การ์ด Serial ตั้งแต่ตอนนี้ พอถึง Topology ที่ 4 จะไม่มีพอร์ต Serial ให้ลากสาย และข้อสอบข้อ 1 ปีที่แล้วบังคับใช้ Serial — ฉะนั้นห้ามข้ามขั้นนี้

  6. เมื่อมาถึงหน้า Idle-PC ให้กด Idle-PC finder แล้วรอจนกว่าจะทำเสร็จ (ใช้เวลาสักครู่ อย่ากดข้าม)
  7. เสร็จแล้วจะเห็น Router c7200 ที่ตั้งค่าไว้ปรากฏอยู่ทางแถบซ้ายมือ พร้อมลากลงมาใช้งาน
    มุมซ้ายบนของหน้าต่าง GNS3 ชื่อไฟล์ untitled2 มีแถบเมนู File, Edit, View, Control, Node, Annotate, Tools, Help และแถบไอคอนคำสั่งลัดที่มีปุ่มสามเหลี่ยมสีเขียว ปุ่มหยุดชั่วคราวสีเหลือง และปุ่มสี่เหลี่ยมสีแดง ด้านซ้ายเป็นแถบ Node Type แนวตั้ง ถัดมาเป็นแผงชื่อ Routers มีช่อง Filter และมีรายการเดียวคือไอคอน router ชื่อ c7200 m5 ส่วนพื้นที่ Topology Graphic View ทางขวายังว่างเปล่า
    รูปที่ 20 จากใบแลป Lab 1 — Router c7200 ที่เราตั้งค่าไว้ทางด้านซ้ายมือ · ถ้าเห็นชื่อ template ในแผง Routers แบบนี้ = สร้าง template สำเร็จ ลากลงพื้นที่ตรงกลางได้เลย
จุดที่คนพลาดบ่อย — เลข slot กับชื่อพอร์ตในใบแลปไม่ตรงกันเอง

ใบแลปสั่งให้ตั้ง slot 1 = PA-4T+ (การ์ด Serial) และ slot 2 = PA-4E (การ์ด Ethernet) ตามรูปที่ 19 ข้างบน — ถ้าตั้งตามนี้ ชื่อพอร์ตที่ได้จะเป็น Serial1/0–Serial1/3 และ Ethernet2/0–Ethernet2/3

แต่คำสั่งตัวอย่างในใบแลปเองกลับใช้ Ethernet1/0 กับ Serial2/0 ซึ่งจะเกิดขึ้นก็ต่อเมื่อสลับกัน (slot 1 = PA-4E, slot 2 = PA-4T+) — และรูปที่ 22 ในใบแลป (ดูที่ Lab 1 §1.3) ก็แสดงรายการพอร์ตเป็น Ethernet1/0…1/3 กับ Serial2/0…2/1 จริง ๆ · สรุปคือใบแลปเขียนไม่ตรงกันเอง อย่าท่องเลข slot — ตอนลากสายให้ดูรายชื่อพอร์ตที่ GNS3 เด้งขึ้นมา แล้วใช้ชื่อนั้นในคำสั่ง interface หรือเช็กด้วย show ip interface brief ก่อนเสมอ

จุดที่คนพลาดบ่อย — Idle-PC

ถ้าข้าม Idle-PC finder ไป router จะยังทำงานได้ แต่จะกิน CPU 100% ต่อ router หนึ่งตัว — พอสร้าง topology 4 ตัวตามข้อสอบข้อ 1 พัดลม MacBook จะหมุนสุดและเครื่องหน่วงจนพิมพ์ใน console ไม่ทัน ค่า Idle-PC คือค่าที่บอก dynamips ว่า "ลูปไหนของ IOS คือลูปว่าง" เพื่อจะได้ปล่อย CPU ให้เครื่อง

ส่วนขยาย — image อื่นที่มีในโฟลเดอร์เดียวกัน

นอกจาก c7200 ในโฟลเดอร์ 1_network_2026/GNS3 image ยังมี c3725, c3745 และ L2-ADVENTERPRISE (IOU) ให้ด้วย — ตัว IOU คือ switch เลเยอร์ 2 ที่ใช้คำสั่ง show mac-address-table และ VLAN ได้จริง ต่างจาก "Ethernet switch" ที่ติดมากับ GNS3 ซึ่งเป็นสวิตช์จำลองแบบไม่มี CLI ถ้าข้อสอบสั่งให้ส่ง show mac-address-table ต้องใช้ IOU หรือสวิตช์เครื่องจริง

0.7Wireshark รุ่น Arm + ChmodBPF

นี่คือจุดที่ Mac ต่างจากใบแลปมากที่สุด และเป็นจุดที่ทำให้คนงงว่า "ลง Wireshark แล้ว แต่เปิดมาไม่เห็น interface อะไรเลย"

  1. เข้า https://www.wireshark.org/download.html
  2. ในกรณีที่เป็นชิป M1 ขึ้นไป ให้เลือกดาวน์โหลดรูปแบบ Arm (MacBook Air M2 = Apple Silicon → เลือก Arm) — ถ้าโหลดรุ่น Intel มาจะช้าเพราะต้องผ่าน Rosetta
    หน้าเว็บ Download Wireshark พื้นหลังสีเข้ม แถบบนมีโลโก้ WIRESHARK และเมนู Download, Shop, Learn, About, Blog, Get Help, Develop, Members กับปุ่ม Donate สีน้ำเงิน เนื้อหากลางหน้าระบุว่า The current stable release of Wireshark is 4.4.6 ด้านล่างเป็นกล่องหัวข้อ Stable Release 4.4.6 ที่กางออก แสดงลิงก์ดาวน์โหลดหกบรรทัดเรียงกัน คือ Windows x64 Installer, Windows Arm64 Installer, Windows x64 PortableApps, macOS Arm Disk Image, macOS Intel Disk Image และ Source Code ใต้กล่องมีหัวข้อพับ Old Stable Release 4.2.11 และ Documentation
    รูปที่ 1 จากใบแลป Lab 2 — หน้าเว็บไซต์ทางการของ Wireshark · MacBook Air M2 ต้องเลือกบรรทัด macOS Arm Disk Image ไม่ใช่ macOS Intel Disk Image และไม่ใช่บรรทัด Windows สามบรรทัดบนสุด
  3. ติดตั้งโปรแกรมตามปกติ และให้ติดตั้ง ChmodBPF.pkg ด้วย — ตัวติดตั้งจะเปิดหน้าต่างที่มีไฟล์นี้ให้ดับเบิลคลิกเอง
    หน้าต่าง Finder ของ macOS ที่เปิดจากดิสก์อิมเมจชื่อ Wireshark 4.4.6 มีปุ่มวงกลมแดง เหลือง เขียวมุมซ้ายบน ข้างในเรียงไอคอนเป็นตาราง แถวบนคือไอคอนครีบฉลามสีน้ำเงินชื่อ Wireshark ซึ่งมีกรอบสีแดงล้อมรอบ ตามด้วยลูกศรสองอันชี้ไปยังไอคอนโฟลเดอร์ Applications แถวถัดมาเป็นไฟล์เอกสาร Read me first.html และ Donate to the Wireshark Foundation.html แถวถัดมาเป็นไอคอนกล่องพัสดุสีน้ำตาลชื่อ Install ChmodBPF.pkg ซึ่งมีกรอบสีแดงล้อมรอบ คู่กับ Uninstall ChmodBPF.pkg แถวล่างสุดเป็น Add Wireshark to the system path.pkg และ Remove Wireshark from the system path.pkg
    รูปที่ 8 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (หน้าจอ .dmg ของ macOS) · ต้องทำสองอย่างในหน้าต่างเดียวนี้ — ① ลากไอคอน Wireshark ลงโฟลเดอร์ Applications ตามลูกศร ② ดับเบิลคลิก Install ChmodBPF.pkg (กรอบแดงล่าง) · ข้อ ② คือขั้นที่คนลืมแล้วเปิด Wireshark มาไม่เห็น interface
  4. ปิด Wireshark แล้วเปิดใหม่ ต้องเห็นรายชื่อ interface (en0, lo0, …) ในหน้าแรก
หน้าจอติดตั้ง Wireshark ฝั่ง Windows ในใบแลป (รูปที่ 2–7) — บน Mac ไม่มีหน้าพวกนี้
อ่านก่อนดู — นี่คือหน้าจอฝั่ง Windows

รูปที่ 2–7 ในใบแลปคือตัวติดตั้ง Wireshark-4.4.6-x64.exe ของ Windows ซึ่งจะพ่วงติดตั้ง Npcap และ USBPcap ให้ · บน MacBook Air M2 ขั้นตอนต่างออกไป — เปิด .dmg แล้วลาก Wireshark ลง Applications แล้วดับเบิลคลิก Install ChmodBPF.pkg จบ · macOS ไม่มี Npcap และไม่มี WinPcap ตัวที่ทำหน้าที่แทนคือ ChmodBPF · ห้ามไล่กดตามรูปเหล่านี้ ให้ทำตามขั้นตอน Mac ด้านบน

หน้าต่างติดตั้งของ Windows ชื่อ Wireshark 4.4.6 x64 Setup ด้านซ้ายเป็นแถบสีน้ำเงินเข้มมีโลโก้ครีบฉลามสีขาวและลูกศรใหญ่ ด้านขวาเป็นข้อความ Welcome to Wireshark 4.4.6 x64 Setup พร้อมคำอธิบายว่าตัวช่วยติดตั้งจะพาไปทีละขั้น และเตือนให้แน่ใจว่า Wireshark ไม่ได้เปิดค้างอยู่ ปิดท้ายด้วย Click Next to continue มีปุ่ม Next และ Cancel
รูปที่ 2 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (หน้าต้อนรับของตัวติดตั้ง Windows) — หน้าจอฝั่ง Windows
หน้าต่าง Wireshark 4.4.6 x64 Setup หัวข้อ Choose Components ให้เลือกส่วนประกอบที่จะติดตั้ง ในกรอบรายการมีต้นไม้ช่องติ๊ก ได้แก่ Wireshark ติ๊กอยู่, TShark ติ๊กอยู่ และ External capture tools แบบ extcap ที่กางออกแสดง Androiddump ไม่ติ๊ก, Etwdump ติ๊กอยู่, Randpktdump ไม่ติ๊ก ด้านล่างเขียนว่า Space required 265.1 MB มีกล่อง Description ว่างและปุ่ม Back, Next, Cancel
รูปที่ 3 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (เลือกส่วนประกอบ) — หน้าจอฝั่ง Windows
หน้าต่าง Wireshark 4.4.6 x64 Setup หัวข้อ Additional Tasks ให้สร้าง shortcut และผูกนามสกุลไฟล์ กลุ่ม Create Shortcuts มีช่องติ๊ก Wireshark Start Menu Item และ Wireshark Desktop Icon ติ๊กทั้งคู่ กลุ่ม Associate File Extensions มีช่องติ๊ก Associate trace file extensions with Wireshark ติ๊กอยู่ ตามด้วยรายการนามสกุลไฟล์ยาว ๆ เช่น 5vw, acp, apc, atc, cap, pcap, pcapng, snoop, trace มีปุ่ม Back, Next, Cancel
รูปที่ 4 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (สร้าง shortcut และผูกนามสกุลไฟล์) — หน้าจอฝั่ง Windows
หน้าต่าง Wireshark 4.4.6 x64 Setup หัวข้อ Packet Capture ระบุว่า Wireshark ต้องใช้ Npcap เพื่อดักจับข้อมูลสด กล่องบนบอกว่า Currently installed Npcap version คือ Npcap 1.78 กล่อง Install มีช่องติ๊ก Install Npcap 1.79 ติ๊กอยู่ พร้อมข้อความว่าเวอร์ชัน 1.78 เดิมจะถูกถอนก่อน กล่อง Important notice เตือนเรื่องการรันคำสั่ง net stop npcap ในฐานะผู้ดูแลระบบ ด้านล่างมีลิงก์ Learn more about Npcap และปุ่ม Back, Next, Cancel
รูปที่ 5 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (ติดตั้ง Npcap) — หน้าจอฝั่ง Windows · macOS ไม่มี Npcap ตัวที่ให้สิทธิ์ดักจับแทนคือ ChmodBPF
หน้าต่าง Wireshark 4.4.6 x64 Setup หัวข้อ USB Capture ถามว่าจะติดตั้ง USBPcap หรือไม่ โดยระบุว่าเป็นฟีเจอร์ทดลอง กล่องบนบอกว่า Currently installed USBPcap version คือ 1.5.4.0 กล่อง Install มีช่องติ๊ก Install USBPcap 1.5.4.0 ที่ไม่ได้ติ๊กและจางอยู่ พร้อมข้อความว่าถ้าต้องการติดตั้งให้ถอนตัวเดิมออกด้วยตนเองก่อน กล่อง Important notice มีลิงก์ไปยัง GitHub ของ usbpcap ด้านล่างมีปุ่ม Back, Install และ Cancel
รูปที่ 6 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (ตัวเลือก USBPcap) — หน้าจอฝั่ง Windows
หน้าต่างติดตั้งแยกชื่อ Npcap 1.79 Setup ด้านบนมีโลโก้ดวงตาและข้อความ NMAP.ORG หัวข้อ Installation Options ให้ตรวจตัวเลือกก่อนติดตั้ง Npcap 1.79 มีช่องติ๊กสามข้อ ติ๊กทั้งหมด ได้แก่ Restrict Npcap driver's access to Administrators only, Support raw 802.11 traffic and monitor mode for wireless adapters และ Install Npcap in WinPcap API-compatible Mode ด้านล่างเขียนว่า Nullsoft Install System v3.07 พร้อมปุ่ม Back, Install และ Cancel
รูปที่ 7 จากใบแลป Lab 2 — การติดตั้งโปรแกรม Wireshark (ตัวเลือกของ Npcap ที่เด้งขึ้นมาแยกหน้าต่าง) — หน้าจอฝั่ง Windows
จุดที่คนพลาดบ่อย — ChmodBPF

ถ้าไม่ลง ChmodBPF จะไม่เห็น interface เลย เพราะ macOS ให้สิทธิ์อ่านอุปกรณ์ /dev/bpf* เฉพาะ root — ChmodBPF คือตัวที่เปลี่ยนสิทธิ์ให้ผู้ใช้ทั่วไปอ่านได้ตอนบูต

เช็กว่าติดตั้งสำเร็จหรือยังจาก Terminal:

[macOS Terminal]
$ ls -l /dev/bpf0
# ต้องขึ้นกลุ่ม access_bpf และมีสิทธิ์อ่าน เช่น  crw-rw----  1 root  access_bpf
$ id -Gn | grep access_bpf
# ต้องเห็นคำว่า access_bpf — ถ้าไม่เห็น ให้ลง ChmodBPF.pkg ซ้ำแล้ว logout/login
ส่วนขยาย — สองบทบาทของ Wireshark ในวิชานี้

① ใน GNS3 — ไม่ได้ดักจากการ์ดของ Mac แต่คลิกขวาที่ สาย แล้ว Start Capture ตัว GNS3 server จะบันทึกไฟล์ให้แล้วเปิด Wireshark ขึ้นมาอ่าน (ดู Lab 1) ② แลปเครื่องจริง — ดักจากการ์ด USB-C Ethernet ของ Mac ตรง ๆ ต้องมี ChmodBPF และต้องตั้ง monitor session ที่สวิตช์ให้ส่งสำเนามาที่พอร์ตของเรา (ดู Lab 2)

0.8Parallels/UTM + Ubuntu ARM + Mininet

Mininet รันบน Linux เท่านั้น ไม่มีเวอร์ชัน macOS ฉะนั้นต้องมี Linux จริง ๆ อยู่ในเครื่อง — และเพราะ M2 เป็น ARM64 ต้องใช้ Ubuntu รุ่น ARM (arm64/aarch64) เท่านั้น ไฟล์ ISO ของ x86 บูตไม่ขึ้น

  1. ลง Parallels Desktop (ลื่นกว่า จ่ายเงิน) หรือ UTM (ฟรี) — ทั้งคู่ใช้ Apple Virtualization บน M2 ได้
  2. สร้าง VM จาก Ubuntu Server/Desktop สำหรับ ARM64 — Parallels มีตัวเลือกดาวน์โหลด Ubuntu ARM ให้ในหน้าสร้าง VM เลย
  3. เข้า VM แล้วลง Mininet
    [Ubuntu VM]
    $ sudo apt update
    $ sudo apt install -y mininet openvswitch-switch iperf3 net-tools
    $ sudo mn --test pingall # ต้องได้ *** Results: 0% dropped
  4. เปิด SSH ใน VM แล้วสั่งงานจาก Terminal ของ macOS — สะดวกกว่าพิมพ์ในหน้าต่าง VM มาก เพราะคัดลอก-วางได้ และเลื่อนดูผลย้อนหลังได้
    [macOS Terminal]
    $ ssh ubuntu # ตั้งชื่อย่อไว้ใน ~/.ssh/config แล้ว พิมพ์แค่นี้พอ
  5. ตั้งชื่อย่อ ubuntu ให้ตัวเองครั้งเดียว (ถ้ายังไม่ได้ตั้ง)
    [macOS Terminal] — แก้ไฟล์ ~/.ssh/config
    Host ubuntu
        HostName <IP ของ VM ที่ได้จาก ip a ใน VM>
        User <ชื่อผู้ใช้ใน Ubuntu>
ส่วนขยาย — ก่อนวัดค่าด้วย netem ต้องปิด offload ก่อน

ในแลป 3 เวลาจะใส่ delay/loss ด้วย tc netem ต้องปิด TCP offload ของการ์ดก่อน ไม่งั้นค่าที่วัดได้จะเพี้ยน เพราะการ์ดรวมแพ็กเก็ตหลายตัวเป็นก้อนเดียวก่อนส่งขึ้นเคอร์เนล

[Ubuntu VM]
$ sudo ethtool -K $IF tso off gso off gro off

0.9ต่อ console ด้วย screen (แทน PuTTY)

ใบแลปให้ลง PuTTY เพื่อต่อ console แต่ PuTTY ไม่มีบน macOS — โชคดีที่ macOS มี screen ติดมาให้อยู่แล้ว ไม่ต้องลงอะไรเพิ่มเลย ใบแลปเองก็มีหัวข้อ "การเปิดใช้หน้า Config Router หรือ Switch ของ Mac" เขียนวิธีนี้ไว้

  1. เสียบสาย console (USB-C → console) เข้ากับอุปกรณ์และ MacBook
  2. เปิด Terminal แล้วหาชื่อพอร์ต
    [macOS Terminal]
    $ ls /dev/tty.*
    # ตัวอย่างผลลัพธ์:
    # /dev/tty.Bluetooth-Incoming-Port   /dev/tty.usbmodem1301
  3. เปิด console ด้วย screen แล้วกด Enter หนึ่งครั้ง จะเห็น prompt Router> หรือ Switch>
    [macOS Terminal]
    $ screen /dev/tty.usbmodem1301 9600
    # ใบแลปเขียนแค่ screen <port_name> — ใส่ 9600 ต่อท้ายด้วยจะชัวร์กว่า
    # เพราะ console ของ Cisco ใช้ 9600 8N1 เป็นค่ามาตรฐาน
  4. ถอยออกจาก screen โดยไม่ตัดการเชื่อมต่อ — กด Ctrl+A แล้วตามด้วย Ctrl+\
  5. ถ้าเผลอปิด Terminal ไปแล้วอยากกลับเข้า config อีกรอบ
    [macOS Terminal]
    $ screen -ls # ดูรายการ session ที่ค้างอยู่
    $ screen -r <screen_number> # กลับเข้า session เดิม
  6. ปิด session ที่ค้าง (ทำเมื่อเสียบสายแล้วขึ้นว่า resource busy)
    [macOS Terminal]
    $ screen -X -S <screen_number> quit
จุดที่คนพลาดบ่อย — screen ค้าง

ถ้าปิดหน้าต่าง Terminal เฉย ๆ โดยไม่ quit ตัว session จะยังจับพอร์ตอยู่ พอเปิด screen ใหม่จะขึ้น Resource busy หรือหน้าจอดำนิ่ง — วิธีแก้คือ screen -ls แล้ว screen -X -S <id> quit ทุกอันที่ค้าง แล้วค่อยเปิดใหม่ จำสองคำสั่งนี้ไปสอบด้วย เพราะห้องสอบไม่มีเวลาให้งม

0.10USB-C Ethernet + passthrough เข้า VM

MacBook Air M2 ไม่มีพอร์ต Ethernet ต้องใช้ USB-C adapter — และถ้าจะให้ Ubuntu ใน VM มองเห็นการ์ดใบนี้ (แลปที่ต้องต่อกับสวิตช์จริง) ต้องทำ USB passthrough ไม่ใช่แค่เสียบเฉย ๆ

  1. เสียบ USB-C Ethernet adapter — เช็กว่า macOS เห็นการ์ดที่ System Settings → Network
  2. ใน Parallels: Devices → USB & Bluetooth → เลือกการ์ด เพื่อยกการ์ดใบนั้นให้ VM ทั้งใบ (macOS จะไม่เห็นการ์ดชั่วคราว ถือว่าถูกต้อง)
  3. ใน Ubuntu ให้ดูชื่อ interface ที่ได้ — จะไม่ใช่ eth0 และไม่ใช่ enp0s5 แต่เป็นชื่อยาว ๆ ที่สร้างจาก MAC address ของการ์ด เช่น enxaca7f1a9ff44
    [Ubuntu VM]
    $ ip -br a
    # lo               UNKNOWN  127.0.0.1/8
    # enp0s5           UP       10.211.55.7/24     <- การ์ดเสมือนของ Parallels
    # enxaca7f1a9ff44  UP       192.3.128.5/24     <- USB-C Ethernet ตัวจริง
  4. เวลาสั่งงานให้ใช้ชื่อนี้เสมอ — เก็บไว้ในตัวแปรจะได้ไม่ต้องพิมพ์ยาว
    [Ubuntu VM]
    $ IF=enxaca7f1a9ff44
    $ sudo ip addr add 192.3.128.5/24 dev $IF
    $ sudo ip link set $IF up
จุดที่คนพลาดบ่อย

คำสั่งของเพื่อนที่ใช้ Windows หรือของในอินเทอร์เน็ตจะเขียน eth0 ตลอด ถ้าคัดลอกมาใช้ทั้งบรรทัดจะได้ Cannot find device "eth0" — ให้เปลี่ยนเป็นชื่อ enx… ของตัวเองทุกครั้ง ดูชื่อจริงด้วย ip -br a ก่อนเสมอ

0.11ก่อนทำแลปเครื่องจริง — ปิด Wi-Fi และ Firewall

ใบแลป 2 เขียนหมายเหตุไว้ว่า "ทำการปิด Wi-Fi และปิด Firewall ก่อนเริ่มทำการทดลอง … เมื่อทำการทดลองเสร็จแล้วให้กลับไปเปิดได้ตามปกติ"

  1. ปิด Wi-Fi — คลิกไอคอน Wi-Fi บนแถบเมนู แล้วสลับเป็นปิด

    ทำไมต้องปิด: ถ้าเปิดไว้ Mac จะมีสอง route ที่ไปหา default gateway ได้ ทำให้ ping ออกไปทาง Wi-Fi แทนที่จะออกทางสาย และ Wireshark จะเจอทราฟฟิกขยะของ Wi-Fi ปนมาเต็มไปหมด

  2. ปิด Firewall — System Settings → Network → Firewall แล้วปิดสวิตช์

    ทำไมต้องปิด: Firewall ของ macOS บล็อกการเชื่อมต่อขาเข้า ทำให้เพื่อน ping เครื่องเราไม่ได้ ทั้งที่เรา ping เขาได้ ซึ่งเป็นอาการที่ไล่หาสาเหตุยากมาก

  3. ตั้ง IP แบบ manual ที่การ์ด USB-C Ethernet — System Settings → Network → คลิกการ์ด → Details… → TCP/IP → Configure IPv4 = Manually แล้วกรอก IP / Subnet Mask / Router ตามที่ใบแลปกำหนด

    ใบแลป 2 มีรูปหน้าจอ macOS ของสามขั้นนี้ไว้ครบ (รูปที่ 19–21) → ดูภาพจริงทีละหน้าจอที่ Lab 2 §2.12

  4. ทำเสร็จแล้วอย่าลืมเปิดกลับ — เปิด Wi-Fi และ Firewall คืน แล้วเปลี่ยน IPv4 กลับเป็น Using DHCP

0.12จุดที่ Mac ต่างจากที่ใบแลปเขียนไว้

ตารางนี้คือหัวใจของหน้านี้ — ทุกจุดที่เปิดใบแลปแล้วทำตามไม่ได้ เพราะใบแลปเขียนสำหรับ Windows

เรื่องใบแลปเขียนไว้ (Windows)ของ Mac ต้องทำแบบนี้
ตัวติดตั้ง GNS3โหลด GNS3-2.2.53-all-in-one.exeโหลด GNS3-2.2.53.dmg จาก release เดียวกัน แล้วลากลง Applications
Wireshark มากับ GNS3ตัว all-in-one ลง WinPcap + Wireshark ให้เสร็จในตัวเดียว.dmg ไม่ลง Wireshark ให้ ต้องโหลดแยก และต้องเป็นรุ่น Arm
สิทธิ์ดักจับ packetWinPcap/Npcap จัดการให้อัตโนมัติต้องลง ChmodBPF.pkg เพิ่ม ไม่งั้นไม่เห็น interface เลย
เมนู PreferencesEdit → PreferencesGNS3 (ซ้ายบน) → Preferences · ปุ่มลัด ⌘+,
ต่อ consoleลง PuTTY แล้วเลือก connection type = Serialไม่มี PuTTY → ls /dev/tty.* แล้ว screen /dev/tty.usbmodemXXXX 9600
ออกจาก consoleกดปิดหน้าต่าง PuTTYCtrl+A แล้ว Ctrl+\ · กลับเข้า screen -r · ปิด screen -X -S <id> quit
ตั้ง IP ของเครื่องControl Panel → Network and Sharing Center → Change adapter settings → คลิกขวา Ethernet → Properties → IPv4 → Use the following IP addressSystem Settings → Network → คลิกการ์ด → Details… → TCP/IP → Configure IPv4 = Manually
ปิด FirewallControl Panel → Windows Defender Firewall → Turn Windows Defender Firewall on or off → Turn offSystem Settings → Network → Firewall → ปิดสวิตช์
ปิด Wi-Fiปิดจาก Network Connectionsคลิกไอคอน Wi-Fi บนแถบเมนู → สลับปิด
ชื่อการ์ด EthernetEthernet / Ethernet 2บน macOS = en0, en5 · ใน VM = enxaca7f1a9ff44 (ไม่ใช่ eth0)
Mininetรันใน VirtualBox VM ของ x86ต้องเป็น Ubuntu ARM ใน Parallels/UTM · สั่งงานผ่าน ssh ubuntu
ดู ARP cachearp -a (Command Prompt)arp -a เหมือนกัน (มากับ macOS) — ส่วนใน VPCS ใช้ show arp ของ VPCS เอง

0.13เช็คว่าทำถูกไหม

รันชุดนี้รวดเดียวก่อนนอน ถ้าผ่านทั้งหมด = เครื่องพร้อมเข้าห้องสอบ

[macOS Terminal] — ชุดตรวจสภาพเครื่อง
$ ls -l /dev/bpf0 # ① Wireshark: ต้องเห็นกลุ่ม access_bpf
$ id -Gn | tr ' ' '\n' | grep access_bpf # ② ต้องพิมพ์คำว่า access_bpf ออกมา
$ ls /dev/tty.* # ③ เสียบสาย console แล้วต้องเห็น tty.usbmodem…
$ ssh ubuntu 'sudo mn --test pingall' # ④ Mininet: ต้องได้ 0% dropped
เช็คอะไรต้องเห็นอะไร
เวอร์ชัน GNS3GNS3 → About → 2.2.53 เป๊ะ ๆ
Template c7200เห็นไอคอน router ชื่อ c7200 ในแถบซ้าย ลากลงมาแล้วกด Start ขึ้นไฟเขียว
มีพอร์ต Serial จริงคลิกขวาที่ router → Configure → Slots → เห็น PA-4T+ ที่ slot 1 และ PA-4E ที่ slot 2
หรือเปิด console แล้วพิมพ์ show ip interface brief ต้องเห็นชื่อ Serial1/0 และ Ethernet2/0
Idle-PC ตั้งแล้วStart router 2 ตัวทิ้งไว้ แล้วเปิด Activity Monitor — CPU ของ GNS3 ควรต่ำกว่า 30% ไม่ใช่พุ่ง 100% ต่อตัว
Wireshark เห็น interfaceเปิดแอปมาแล้วมีรายการ en0, lo0 พร้อมกราฟเส้นวิ่ง
VPN KKUping <IP ของ server> จาก Terminal แล้วมี reply กลับ

0.14ถ้าไม่ผ่าน ให้ไล่ตามนี้

อาการสาเหตุที่พบบ่อยที่สุดทำอะไร
GNS3 ขึ้น Could not connect to serverยังไม่ได้ต่อ VPN KKU หรือต่อ VPN หลังเปิด GNS3ต่อ VPN → ping IP ของ server ให้ผ่านก่อน → ปิด GNS3 แล้วเปิดใหม่
เปิด Wireshark แล้วไม่มี interface สักอันยังไม่ได้ลง ChmodBPF.pkgเปิด .dmg ของ Wireshark ใหม่ → ดับเบิลคลิก ChmodBPF.pkg → logout/login → id -Gn | grep access_bpf
Wireshark ช้า / เตือนเรื่อง Rosettaโหลดรุ่น Intel มาแทนรุ่น Armถอนออก แล้วโหลดใหม่โดยเลือก Arm ที่หน้าดาวน์โหลด
Router ใน GNS3 ไม่มีพอร์ต Serial ให้ลากสายตอนสร้าง template ไม่ได้ใส่ PA-4T+ ที่ slot 1Preferences → IOS routers → เลือก template → Edit → Slots → ใส่ PA-4T+ / PA-4E แล้วลบ router ตัวเก่าออกจาก topology แล้วลากใหม่
พัดลมหมุนสุด เครื่องหน่วง พิมพ์ใน console ไม่ทันไม่ได้กด Idle-PC finderPreferences → IOS routers → Edit → Idle-PC → กด Idle-PC finder → รอจนเสร็จ
screen เปิดแล้วจอดำ ไม่มี promptยังไม่ได้กด Enter หรือมี session เก่าค้างกด Enter 2–3 ครั้ง · ถ้ายังดำ → screen -ls แล้ว screen -X -S <id> quit ทุกอัน แล้วเปิดใหม่
ใน Ubuntu ไม่มี eth0ชื่อ interface บน Linux ยุคใหม่ตั้งตาม MAC เป็น enx…ip -br a ดูชื่อจริง แล้ว IF=enx… เก็บไว้ในตัวแปร
เพื่อน ping เครื่องเราไม่ได้ แต่เรา ping เพื่อนได้Firewall ของ macOS ยังเปิดอยู่System Settings → Network → Firewall → ปิด
ping ออกไปแล้ววิ่งผิดทาง / ผลไม่นิ่งยังไม่ได้ปิด Wi-Fi จึงมีสองเส้นทางออกปิด Wi-Fi ให้เหลือแต่การ์ด USB-C Ethernet

0.15ถ้าออกสอบ ต้องทำอะไรได้บ้าง

หน้านี้ไม่ออกสอบตรง ๆ แต่พังตรงนี้ = ทำข้ออื่นไม่ได้เลย

ข้อสอบแลปไม่มีข้อไหนถามว่า "จงติดตั้ง GNS3" แต่ทั้ง 4 ข้อของปีที่แล้วต้องใช้ของที่ลงในหน้านี้ทั้งหมด — ถ้าเข้าห้องสอบแล้วเพิ่งมารู้ว่า router ไม่มีพอร์ต Serial หรือ Wireshark ไม่เห็น interface คือเสียคะแนน 25 จาก 50 ทันที

เช็กลิสต์ก่อนเดินเข้าห้องสอบ:

  1. เปิด GNS3 → สร้างโปรเจกต์เปล่า → ลาก router 1 ตัว → กด Start ให้ขึ้นไฟเขียว แล้ว console เข้าไปได้จริง
  2. ยืนยันว่ามีพอร์ต Serial ด้วย show ip interface brief — ต้องเห็นชื่อ Serial… (ข้อสอบข้อ 1 บังคับใช้ Serial)
  3. เปิด Wireshark หนึ่งครั้ง ให้แน่ใจว่ายังเห็น interface
  4. เปิด VM ให้ Ubuntu บูตค้างไว้ แล้ว ssh ubuntu ทดสอบ (ข้อสอบข้อ 4 เป็น Mininet)
  5. จำ x = 3 และ y = 128 ของตัวเองให้ขึ้นใจ — ทุกข้อสอบให้ใช้ IP จากรหัสนักศึกษา
  6. เซฟหน้าเว็บนี้เก็บไว้ในเครื่อง (⌘+S หรือ Print → Save as PDF) เผื่อ Wi-Fi ห้องสอบมีปัญหา

0.16เช็คความเข้าใจ

ลง Wireshark รุ่น Arm บน MacBook Air M2 เรียบร้อยแล้ว เปิดโปรแกรมขึ้นมาแต่หน้าแรกว่างเปล่า ไม่มี interface ให้เลือกเลย สาเหตุที่เป็นไปได้มากที่สุดคืออะไร
โหลดรุ่นผิดสถาปัตยกรรม ต้องใช้รุ่น Intel
ยังไม่ได้ต่อ VPN KKU
ยังไม่ได้ติดตั้ง ChmodBPF.pkg
ยังไม่ได้เปิด GNS3 ค้างไว้
macOS ให้สิทธิ์อ่านอุปกรณ์ /dev/bpf* เฉพาะ root — ChmodBPF คือ launch daemon ที่ปรับสิทธิ์ให้ผู้ใช้ในกลุ่ม access_bpf อ่านได้ตอนบูต ถ้าไม่ลง Wireshark จะเปิดได้แต่มองไม่เห็นการ์ดใด ๆ ตรวจด้วย id -Gn | grep access_bpf
ตอนสร้าง template ของ c7200 ถ้าไม่ได้ใส่ PA-4T+ ที่ slot 1 จะเกิดอะไรขึ้นตอนทำข้อสอบข้อ 1
router จะบูตไม่ขึ้น ค้างที่ ROMMON
จะไม่มีพอร์ต Serial ให้ลากสายเชื่อม router สองตัวตามที่โจทย์บังคับ
RIP จะทำงานไม่ได้เพราะไม่มี network ให้ประกาศ
Wireshark จะดักจับ packet บนลิงก์นั้นไม่ได้
PA-4T+ คือการ์ด Serial 4 พอร์ต (ได้ Serial1/0–Serial1/3) ส่วน PA-4E คือการ์ด Ethernet 4 พอร์ต (ได้ Ethernet2/0–Ethernet2/3) router ยังบูตขึ้นปกติ แต่พอจะลากสายจะไม่มีพอร์ต Serial ให้เลือก — และข้อสอบข้อ 1 ปีที่แล้วบังคับว่า router ต้องเชื่อมกันผ่าน Serial
ใน Ubuntu ARM ที่รันบน Parallels และทำ USB passthrough การ์ด USB-C Ethernet มาแล้ว ชื่อ interface ของการ์ดใบนั้นน่าจะเป็นอะไร
eth0 เสมอ เพราะเป็นการ์ดใบแรกที่เป็น Ethernet
en0 เหมือนที่ macOS เรียก
enp0s5 เพราะเป็นการ์ดที่ต่อผ่าน PCI slot 5
enxaca7f1a9ff44 — ชื่อที่สร้างจาก MAC address ของการ์ด
Linux ยุคใหม่ตั้งชื่อ interface แบบ predictable names — การ์ด USB จะได้ชื่อขึ้นต้นด้วย enx ตามด้วย MAC address ส่วน enp0s5 คือการ์ดเสมือนของ Parallels เอง คนละใบกัน ฉะนั้นคำสั่งที่คัดลอกมาซึ่งเขียน eth0 จะใช้ไม่ได้ ต้อง ip -br a ดูชื่อจริงก่อนทุกครั้ง
เก็บก่อนออกจากหน้านี้

① GNS3 ต้อง 2.2.53 จาก GitHub และบน Mac คือไฟล์ .dmg ② IOS c7200 ต้องตั้ง RAM 512 MiB · slot1 PA-4T+ · slot2 PA-4E แล้วกด Idle-PC finder ③ Wireshark ต้องรุ่น Arm + ChmodBPF.pkg ④ ใช้ server KKU ต้อง ต่อ VPN ก่อนเปิด GNS3 ⑤ Mac ไม่มี PuTTY — ใช้ ls /dev/tty.* แล้ว screen … 9600 ออกด้วย Ctrl+A Ctrl+\ ⑥ ใน VM การ์ด USB คือ enx… ไม่ใช่ eth0 ⑦ แลปเครื่องจริง ปิด Wi-Fi และ Firewall ก่อนเสมอ