คำสั่งทั้งหมดในหน้าเดียว
ทุกคำสั่งจาก setup, Lab 1–5 รวมไว้ที่นี่ แทนค่า x = 3, y = 128 ให้เรียบร้อยแล้ว — คัดลอกไปวางได้ทันที ไม่ต้องคิดเลข พิมพ์ในช่องค้นหาแล้วมันจะกรองให้เหลือเฉพาะที่ตรง
กติกาห้องสอบ: เอา notebook / iPad เข้าได้ ต่อเน็ตได้ แต่ห้ามเปิด AI — หน้านี้เป็นหน้าเว็บธรรมดา เปิดคาไว้ได้ · พิมพ์ในช่องค้นหาข้างล่าง เช่น clock rate, vlan, netem, screen แล้วหน้าจะเหลือเฉพาะบรรทัดที่ตรง
กดปุ่ม "คัดลอก" มุมขวาบนของทุกบล็อก — ปุ่มจะตัด prompt (Router(config)#) และคอมเมนต์ออกให้อัตโนมัติ เหลือแต่คำสั่งล้วน ๆ วางลง console ได้เลย · เซฟหน้านี้เก็บไว้ในเครื่องก่อนวันสอบ (⌘+S) เผื่อเน็ตห้องสอบมีปัญหา
C.1ลำดับที่ควรทำในห้องสอบ
- ก่อนแตะเครื่อง — วาด topology + ตาราง IP ลงกระดาษ ให้ครบว่าอินเทอร์เฟซไหนได้ IP อะไร วงไหนเป็น LAN วงไหนเป็น Serial (ค่าอยู่ที่ C.2)
- เปิดของทั้งหมดค้างไว้ก่อน — ต่อ VPN KKU (ถ้าใช้ server คณะ) → เปิด GNS3 → เปิด Wireshark หนึ่งครั้งเช็กว่าเห็น interface → เปิด VM Ubuntu ให้บูตค้างไว้ (ข้อ Mininet)
- สร้าง topology → กด Start ทุกตัว → รอไฟเขียวและรอจนขึ้น
Router>(c7200 บูตราวครึ่งนาที) - Config ตามลำดับนี้เสมอ — Ethernet ก่อน → Serial (
clock rateฝั่ง DCE) → ยืนยันup / up→ RIP → ตั้ง IP+gateway ให้ PC - ping ไล่ทีละ hop — gateway ตัวเอง → ขาไกลของ router → PC ปลายทาง แล้วแคปหน้าจอเก็บทันทีที่ผ่าน
- Start Capture ที่สาย → ping ใหม่ → ใส่ filter 3 อัน
ip.src == 192.3.128.2·icmp·arpแคปทั้งสาม - เก็บผลส่ง —
show running-configทุกตัว ·show mac-address-tableที่ switch ·show arpที่ router ·show vlanทุก switch (ดู C.16) copy run startก่อนลุกจากเครื่อง ไม่งั้น config หายถ้าอุปกรณ์ถูก reload
| ข้อสอบ | สั่งให้ทำอะไร | ต้องส่งอะไร |
|---|---|---|
| ข้อ 1 15 | router ≥ 2 ตัวเชื่อมกันผ่าน Serial · ทุก router มี switch · ทุก switch มี PC ≥ 1 ตัว · ping กันได้หมด · IP ใช้เลขจากรหัสนักศึกษา | show running-config · show mac-address-table · show arp |
| ข้อ 2 10 | Wireshark ดักจับ packet ระหว่าง PC ตอน ping | filter จาก source address ของการ ping + filter icmp + filter arp (แคปหน้าจอ 3 รูป) |
| ข้อ 3 10 | ตั้ง VLAN ตามรูปให้ ping กันได้ | show vlan ของทุก switch |
| ข้อ 4 15 | Mininet สร้าง topology ตามรูป → ping ได้ทุกโหนด → (ก) delay 100 ms + jitter 10 ms บน h1-eth0 เทียบก่อน/หลัง (ข) loss 20% แล้ว ping | ผล ping ก่อน/หลัง ทั้งสองกรณี |
C.2ค่าประจำตัว — แทนค่าไว้หมดแล้ว
| ในใบแลปเขียนว่า | ของคุณคือ | ใช้ตรงไหน |
|---|---|---|
x = เลขหลังขีดของรหัส | 3 | รหัส 673040128-3 |
y = สามตัวก่อนขีด mod 254 | 128 | 128 mod 254 = 128 |
192.x.y.0/24 | 192.3.128.0/24 | LAN ฝั่งซ้าย (PC1, PC2) |
193.x.y.0/24 | 193.3.128.0/24 | ลิงก์ Serial ระหว่าง router |
194.x.y.0/24 | 194.3.128.0/24 | LAN ฝั่งขวา (PC3, PC4) |
| Subnet mask ทุกวง | 255.255.255.0 | เท่ากับ /24 ทุกวง (คลาส C) |
| หมายเลข VLAN (Lab 4) | 10 · 20 · 30 · 40 | ใบแลปให้ใช้เลข 2 หลักก่อนขีด = 28 ของ Pisit แล้วเขียนต่อว่า "ใช้เลขอะไรก็ได้ที่มีมากกว่า 2 วง VLAN" — หน้านี้กับ Lab 4 จึงใช้ 10/20/30/40 · ถ้า TA บังคับตามรหัส เปลี่ยน 10 → 28 |
| หมายเลข VLAN (Lab 5) | 9 | ใบแลป STP กำหนดให้ทุกสวิตช์อยู่บน VLAN 9 |
| อุปกรณ์ | LAN (E0) | Serial | Gateway | รหัสผ่าน |
|---|---|---|---|---|
| LAB-A | 192.3.128.1 | 193.3.128.1 | — | enable class · secret datacom · console Lab · vty Lab |
| LAB-B | 194.3.128.1 | 193.3.128.2 DCE | — | |
| PC1 | 192.3.128.2 | — | 192.3.128.1 | — |
| PC2 | 192.3.128.3 | — | 192.3.128.1 | — |
| PC3 | 194.3.128.2 | — | 194.3.128.1 | — |
| PC4 | 194.3.128.3 | — | 194.3.128.1 | — |
| อุปกรณ์ / ที่มา | ชื่ออินเทอร์เฟซที่ต้องพิมพ์ |
|---|---|
| c7200 ใน GNS3 slot1 = PA-4E · slot2 = PA-4T+ | Ethernet1/0 – Ethernet1/3 · Serial2/0 – Serial2/3 |
| Cisco 1841 (LAB-A ของจริง) | FastEthernet0/0, FastEthernet0/1 · Serial0/1/0 (เลข 2 ท่อนสำหรับ Ethernet) |
| Cisco 4321 (LAB-B ของจริง) | GigabitEthernet0/0/0, GigabitEthernet0/0/1 · Serial0/1/1 (เลข 3 ท่อน) |
| Switch 3650 | GigabitEthernet1/0/1 … 1/0/24 + Vlan1 |
| Switch 2950 | FastEthernet0/1 … 0/24 + Vlan1 |
| IOU L2 ใน GNS3 | Ethernet0/0 … Ethernet3/3 |
ใบแลปเขียนเตือนไว้เองว่า "พยายามดูชื่อและหมายเลข Port เองด้วยเพื่อป้องกันความผิดพลาดจากรายงานนี้" — เสียบสายเข้าช่องไหน ต้อง config ช่องนั้น · ดูชื่อจริงก่อนเสมอด้วย show ip interface brief
C.3macOS · Terminal
$ ls -l /dev/bpf0
# ต้องขึ้นกลุ่ม access_bpf เช่น crw-rw---- 1 root access_bpf
$ id -Gn | tr ' ' '\n' | grep access_bpf
# ต้องพิมพ์คำว่า access_bpf ออกมา — ถ้าไม่ออก แปลว่ายังไม่ได้ลง ChmodBPF.pkg
$ ls /dev/tty.*
# เสียบสาย console แล้วต้องเห็น /dev/tty.usbmodemXXXX
$ ssh ubuntu 'sudo mn --test pingall'
# Mininet ต้องได้ *** Results: 0% dropped$ ping -c 3 192.3.128.1 # ping แค่ 3 ครั้งแล้วหยุดเอง
$ arp -a # ดูตาราง ARP ของเครื่องเรา (ใบแลป Lab 2 ข้อ 14 สั่งใช้)
# ? (192.3.128.1) at 0:aa:11:11:0:1 on en5 ifscope [ethernet]
$ ifconfig en5 # ดู IP/MAC ของการ์ด USB-C Ethernet
$ netstat -rn | head # ดูตาราง routing ของ Mac (เช็กว่า default ออกทางไหน)
$ ssh ubuntu # เข้า Ubuntu VM ที่รัน Mininet| งาน | ทำที่ไหนบน macOS |
|---|---|
| ตั้ง IP แบบ manual | System Settings → Network → คลิกการ์ด → Details… → TCP/IP → Configure IPv4 = Manually → กรอก IP / Subnet Mask / Router |
| ปิด Firewall (ต้องปิดก่อนทำแลปจริง) | System Settings → Network → Firewall → ปิดสวิตช์ |
| ปิด Wi-Fi (ต้องปิดก่อนทำแลปจริง) | คลิกไอคอน Wi-Fi บนแถบเมนู → สลับปิด |
| ทำเสร็จแล้ว | เปิด Wi-Fi + Firewall คืน แล้วเปลี่ยน IPv4 กลับเป็น Using DHCP |
ใบแลป 5 สั่งให้โอนไฟล์ อย่างน้อย 30 Mbytes แต่ไม่ได้บอกว่าจะเอาไฟล์มาจากไหน — สร้างเองได้ในบรรทัดเดียว
$ mkfile 30m ~/test30.bin # วิธีของ macOS
$ dd if=/dev/zero of=~/test30.bin bs=1m count=30 # วิธีที่ใช้ได้ทั้ง Mac และ LinuxC.4GNS3 — เมนูที่ต้องกด
| อยากทำอะไร | กดตรงไหน (macOS) |
|---|---|
| เปิด Preferences | GNS3 (มุมซ้ายบน) → Preferences · ปุ่มลัด ⌘+, (ใบแลปเขียน Edit → Preferences ซึ่งเป็นของ Windows) |
| เพิ่ม IOS image | Preferences → IOS routers → New → เลือก c7200-adventerprisek9-mz.152-4.M5.image |
| ตั้ง RAM ของ router | หน้าเดียวกัน → Default RAM = 512 MiB |
| ใส่ การ์ดพอร์ต | หน้า adapter → slot 1 = PA-4E (Ethernet 4 พอร์ต) · slot 2 = PA-4T+ (Serial 4 พอร์ต) ไม่ใส่ = ไม่มีพอร์ต Serial ให้ลากสาย |
| ไม่ให้ CPU 100% | หน้า Idle-PC → กด Idle-PC finder แล้วรอจนเสร็จ อย่ากดข้าม |
| ต่อ Remote server ของ KKU | ต่อ VPN KKU ก่อนเปิด GNS3 → Preferences → Server → แท็บ Remote servers → Add → กรอก Name / Protocol (HTTP) / Host / Port / Username / Password |
| ลากอุปกรณ์ + ต่อสาย | แถบซ้าย Node Type → ลาก VPCS / Router / Switch ลงมา → กด Add a link → คลิกอุปกรณ์ → เลือกพอร์ต → ลากไปอีกตัว |
| เปิด / ปิดอุปกรณ์ | แถบ Shortcut Icon Bar — ▶ Start ทั้งหมด · ⏸ Suspend · ⏹ Stop (จุดหน้าชื่อ: แดง = หยุด · เขียว = ทำงาน) |
| เข้า console | คลิกขวาที่อุปกรณ์ → Console (บน Mac จะเปิด Terminal.app ให้ — ไม่ต้องใช้ screen) |
| เปิด Wireshark | คลิกขวาที่เส้นสาย (ไม่ใช่ที่อุปกรณ์) → Start Capture แล้ว ping ใหม่ |
| ใครเป็น DCE | ใน GNS3 ฝั่งที่คลิกเป็นตัวแรกตอนลากสาย Serial จะเป็น DCE · ยืนยันด้วย show controllers |
C.5ต่อ console ด้วย screen (แทน PuTTY)
$ ls /dev/tty.*
# /dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodem1301 ← อันนี้คืออุปกรณ์ที่เพิ่งเสียบ
$ screen /dev/tty.usbmodem1301 9600
# แล้วกด Enter อีก 1–2 ครั้ง จะเห็น prompt Router> หรือ Switch>
# console ของ Cisco ใช้ 9600 8N1 — ถ้าไม่ใส่ 9600 อาจได้ตัวอักษรขยะ
$ screen -ls # ดูรายการ session ที่ค้างอยู่
$ screen -r <screen_number> # กลับเข้า session เดิม
$ screen -X -S <screen_number> quit # ปิด session ที่ค้าง (แก้ Resource busy)| อยากทำอะไร | กดอะไร |
|---|---|
| ถอยออกโดยไม่ตัดการเชื่อมต่อ | Ctrl+A แล้วตามด้วย Ctrl+\ (แล้วตอบ y) |
| จอดำ ไม่มี prompt | กด Enter 2–3 ครั้ง · ถ้ายังดำ → screen -ls แล้ว screen -X -S <id> quit ทุกอัน แล้วเปิดใหม่ |
| เจอตัวอักษรขยะ | ออกแล้วเปิดใหม่โดยใส่ 9600 ต่อท้าย |
| ต่อสาย console รุ่นเก่า | สาย RJ-45 + ตัวแปลงเป็น USB · รุ่นใหม่เป็น Mini USB ตรง ๆ · MacBook Air M2 มีแต่ USB-C → ต้องพกตัวแปลง USB-A → USB-C ไปด้วย |
C.6VPCS (PC จำลองใน GNS3)
VPCS[1]> ip <ip_address> <subnet_mask> <gateway>
# gateway = interface ของ router ที่ PC ตัวนั้นต่ออยู่ — ใส่เมื่อต้องคุยข้าม subnetVPCS[1]> ip 192.3.128.2 255.255.255.0 192.3.128.1
VPCS[2]> ip 192.3.128.3 255.255.255.0 192.3.128.1
VPCS[3]> ip 194.3.128.2 255.255.255.0 194.3.128.1
VPCS[4]> ip 194.3.128.3 255.255.255.0 194.3.128.1VPCS[1]> ip 192.3.128.2 255.255.255.0
VPCS[2]> ip 192.3.128.3 255.255.255.0
VPCS[3]> ip 194.3.128.2 255.255.255.0VPCS[1]> ping 192.3.128.1 # ① ถึง gateway ตัวเองไหม (ไม่ผ่าน = สายหลุด / ลืม no shutdown)
VPCS[1]> ping 194.3.128.1 # ② ถึงขาไกลของ router ไหม (ไม่ผ่าน = ขานั้นยังไม่ได้ตั้ง IP)
VPCS[1]> ping 194.3.128.2 # ③ ถึง PC ปลายทางไหม (ไม่ผ่าน = PC ปลายทางลืมตั้ง gateway)
# 84 bytes from 194.3.128.2 icmp_seq=1 ttl=62 time=31.204 ms
# └── ttl 63 = ผ่าน 1 router · 62 = ผ่าน 2 router
VPCS[1]> show ip # ส่วนขยาย: ยืนยันว่า IP/mask/gateway เข้าจริงใบแลปย้ำตัวหนาว่า "อย่าลืมใส่ gateway ให้ PC โดย gateway คือ Interface ของสิ่งที่เราต้องการส่งไปหา" — ถ้าลืม อาการคือ ping ข้าม subnet ขึ้น host not reachable ทันที โดยไม่มีแพ็กเก็ตออกจากเครื่องเลย เปิด Wireshark ก็เงียบสนิท
C.7Router พื้นฐาน — โหมด · ชื่อ · รหัสผ่าน · บันทึก
Router>enable # user mode → privileged mode
Router#disable # ถอยกลับลงมา
Router#configure terminal # → global config mode
Router(config)#exit # ถอยขึ้นหนึ่งชั้น
Router(config-if)#end # กลับไป privileged mode ทันที (หรือกด Ctrl+Z)| prompt ที่เห็น | แปลว่าอยู่โหมดไหน |
|---|---|
Router> | user mode — ดูได้อย่างเดียว |
Router# | privileged mode — ใช้ show ได้ทุกอย่าง และเข้า config ได้ |
Router(config)# | global config — ตั้งค่าทั้งเครื่อง |
Router(config-if)# | interface config — ตั้งค่าอินเทอร์เฟซใบที่เลือกไว้ |
Router(config-router)# | routing config — อยู่ในบล็อก router rip |
Router(config-subif)# | subinterface — Router-on-a-Stick |
Router(config-line)# | line config — line console 0 / line vty 0 4 |
Router(config-vlan)# | vlan config — อยู่ในบล็อก vlan 10 |
Router>enable
Router#configure terminal
Router(config)#hostname LAB-A
LAB-A(config)#enable password class
LAB-A(config)#enable secret datacom
LAB-A(config)#line console 0
LAB-A(config-line)#password Lab
LAB-A(config-line)#login
LAB-A(config-line)#exit
LAB-A(config)#line vty 0 4
LAB-A(config-line)#password Lab
LAB-A(config-line)#login
LAB-A(config-line)#endpassword แล้วต้องมี login เสมอ
password แค่เก็บค่า ส่วน login คือคำสั่งที่สั่งให้ถาม — ถ้ามีแต่ password เข้ามาทาง console จะไม่ถูกถามเลย · ตรงข้าม ถ้าใส่ login บน vty โดยยังไม่ตั้ง password จะ telnet เข้าไม่ได้เลย (password required, but none set)
Router#show running-config # ค่าที่ใช้อยู่ตอนนี้ (RAM) — หายเมื่อปิดเครื่อง
Router#show startup-config # ค่าที่จะโหลดตอนบูต (NVRAM) — ไม่หาย
Router#copy running-config startup-config
# Destination filename [startup-config]? ← กด Enter ผ่านไป
Router#copy run start # แบบย่อ ทำงานเหมือนกัน
Router#write memory # คำสั่งเก่า ทำงานเหมือนกันไม่ได้อยู่ในใบแลป แต่พิมพ์ครั้งเดียวตอนเริ่มแล้วประหยัดเวลาไปทั้งชั่วโมง
Router(config)#no ip domain-lookup
# พิมพ์คำสั่งผิด IOS จะไม่ค้างรอ DNS 30 วินาที
Router(config)#line console 0
Router(config-line)#logging synchronous
# ข้อความ log จะไม่แทรกกลางบรรทัดที่กำลังพิมพ์อยู่
Router(config-line)#exec-timeout 0 0
# ไม่ให้ console เตะออกเองตอนคิดนาน
Router#terminal length 0
# ให้ show running-config พิมพ์รวดเดียวจบ ไม่มี --More-- ให้กด space (แคปหน้าจอง่ายขึ้น)C.8ตั้ง IP ให้ Interface + Serial
Router(config)#interface <interface type slot/port>
Router(config-if)#ip address <ip_address> <subnet_mask>
Router(config-if)#no shutdownRouter#configure terminal
Router(config)#interface Ethernet1/0
Router(config-if)#ip address 192.3.128.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial2/0
Router(config-if)#ip address 193.3.128.1 255.255.255.0
Router(config-if)#bandwidth 56
Router(config-if)#clock rate 56000
Router(config-if)#no shutdown
Router(config-if)#endRouter#configure terminal
Router(config)#interface Ethernet1/0
Router(config-if)#ip address 194.3.128.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial2/1
Router(config-if)#ip address 193.3.128.2 255.255.255.0
Router(config-if)#bandwidth 56
Router(config-if)#clock rate 56000
Router(config-if)#no shutdown
Router(config-if)#endRouter#configure terminal
Router(config)#interface FastEthernet 0/1
Router(config-if)#ip address 192.3.128.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial0/1/0
Router(config-if)#ip address 193.3.128.1 255.255.255.0
Router(config-if)#bandwidth 56
Router(config-if)#no shutdownRouter#configure terminal
Router(config)#interface GigabitEthernet 0/0/1
Router(config-if)#ip address 194.3.128.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial0/1/1
Router(config-if)#ip address 193.3.128.2 255.255.255.0
Router(config-if)#bandwidth 56
Router(config-if)#clock rate 56000
Router(config-if)#no shutdownLAB-B#show controllers Serial0/1/1
# V.35 DCE cable, clock rate 56000 ← มีคำว่า DCE = ฝั่งนี้ต้องตั้ง clock rate
LAB-A#show controllers Serial0/1/0
# V.35 DTE cable ← มีคำว่า DTE = ฝั่งนี้ไม่ต้องตั้ง| คำสั่ง | ทำอะไร · ตั้งที่ฝั่งไหน |
|---|---|
bandwidth 56 | บอก IOS ว่าลิงก์นี้ "ถือว่า" มี 56 kbps — เป็นแค่ตัวเลขให้ routing protocol คำนวณ metric และให้ show interfaces รายงาน BW 56 Kbit/sec · ไม่ได้ทำให้สายเร็วหรือช้าลงจริง · ตั้งได้ทั้งสองฝั่ง |
clock rate 56000 | จ่ายสัญญาณนาฬิกา 56000 bps ให้อีกฝั่ง = ความเร็วจริงของลิงก์ · ตั้งเฉพาะฝั่ง DCE · ลืม = ลิงก์ไม่ขึ้น (up / down) |
no shutdown | เปิดใช้งานอินเทอร์เฟซ · ทุกใบปิดอยู่โดยค่าเริ่มต้น ลืม = administratively down |
สถานะที่เห็นจาก show ip interface brief | แปลว่าอะไร · แก้ยังไง |
|---|---|
up / up | เรียบร้อย ใช้งานได้ ไปต่อได้เลย |
up / down | สายเสียบอยู่ แต่ไม่มีสัญญาณนาฬิกา → show controllers หาฝั่ง DCE แล้วใส่ clock rate 56000 |
down / down | ชั้นกายภาพไม่ขึ้นเลย — สายหลุด / สายเสีย / อีกฝั่ง shutdown อยู่ |
administratively down / down | ลืม no shutdown ที่ฝั่งตัวเอง |
C.9RIP และ static route
Router#configure terminal
Router(config)#router rip
Router(config-router)#network <network_address>
Router(config-router)#network <network_address>
Router(config-router)#end
# ยกเลิก: พิมพ์ no นำหน้า เช่น no router rip หรือ no network 193.3.128.0Router(config)#router rip
Router(config-router)#network 192.3.128.0
Router(config-router)#network 193.3.128.0
Router(config-router)#endRouter(config)#router rip
Router(config-router)#network 194.3.128.0
Router(config-router)#network 193.3.128.0
Router(config-router)#endnetwork 193.3.128.0 คือวงของสาย Serial ถ้าไม่ประกาศ RIP จะไม่ทำงานบนอินเทอร์เฟซ Serial เลย → ไม่มี update วิ่งข้ามสาย → router สองตัวไม่รู้จักกัน → ping ไม่ผ่านทั้งที่คำสั่งดูเหมือนถูกหมด · ประกาศทุกวงที่ต่ออยู่กับ router ตัวนั้น รวมวงของ Serial เสมอ
LAB-A#show ip route
# Codes: C - connected, S - static, R - RIP, ...
C 192.3.128.0/24 is directly connected, Ethernet1/0
C 193.3.128.0/24 is directly connected, Serial2/0
R 194.3.128.0/24 [120/1] via 193.3.128.2, 00:00:12, Serial2/0
# ต้องเห็นแถวขึ้นต้นด้วย R — ถ้ามีแต่ C แปลว่า RIP ยังไม่ได้แลกเปลี่ยนกัน
LAB-A#show ip protocols # ส่วนขยาย: ดูว่าประกาศ network ครบไหม และ update ทุกกี่วินาทีถ้าเหลือเวลาน้อยและ RIP ยังไม่ยอมทำงาน ใส่ static route แทนได้ ผลลัพธ์ที่อาจารย์เห็นคือ ping ผ่านเหมือนกัน (แต่ show ip route จะขึ้น S แทน R)
LAB-A(config)#ip route 194.3.128.0 255.255.255.0 193.3.128.2
# └ วงปลายทาง └ mask └ IP ของ router ตัวถัดไป
LAB-B(config)#ip route 192.3.128.0 255.255.255.0 193.3.128.1
# ต้องใส่ทั้งสองฝั่ง ไม่งั้นขาไปถึงแต่ขากลับไม่ถึง
LAB-A(config)#ip route 0.0.0.0 0.0.0.0 193.3.128.2
# default route: อะไรที่ไม่รู้จัก ส่งไปทางนี้หมดC.10Switch พื้นฐาน + Port Mirroring
Switch>enable
Switch#configure terminal
Switch(config)#hostname SW1
SW1(config)#end
SW1#show mac-address-table # ข้อสอบข้อ 1 สั่งส่งอันนี้
SW1#show vlan
SW1#show running-config
SW1#copy run start Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 00aa.0000.0001 DYNAMIC Gi1/0/1
1 00bb.0000.0002 DYNAMIC Gi1/0/2
# └── switch เรียนเองจาก source MAC ของเฟรมที่วิ่งเข้ามา (DYNAMIC)Switch#configure terminal
Switch(config)#monitor session 1 source Interface GigabitEthernet1/0/1 , GigabitEthernet1/0/3 both
Switch(config)#monitor session 1 destination interface GigabitEthernet1/0/13
Switch(config)#end
Switch#show monitor session 1
# source = พอร์ตที่จะถูกก๊อป (พอร์ตของ PC1/PC2) · both = ก๊อปทั้งขาเข้าและขาออก
# destination = พอร์ตที่เสียบเครื่องที่รัน Wireshark ไว้Switch ส่งเฟรมเฉพาะไปยังพอร์ตปลายทาง (ต่างจาก hub ที่กระจายทุกพอร์ต) — เสียบ MacBook เข้าไปเฉย ๆ จะไม่เห็นทราฟฟิกระหว่าง PC1 กับ PC2 เลย · monitor session คือคำสั่งที่สั่งให้ switch ทำสำเนามาให้ · ใน Lab 5 ให้เอา Wireshark ไป monitor ที่ Root Bridge
SW1(config)#interface Vlan1
SW1(config-if)#ip address 192.3.128.10 255.255.255.0
SW1(config-if)#no shutdown
SW1(config-if)#exit
SW1(config)#ip default-gateway 192.3.128.1
# Vlan1 เป็นอินเทอร์เฟซเสมือน ไม่ใช่พอร์ตจริง — มีไว้ใส่ IP สำหรับจัดการตัวสวิตช์เอง
SW1#show interfaces status # พอร์ตไหนมีสายเสียบ ความเร็วเท่าไร อยู่ VLAN อะไร
SW1#clear mac address-table dynamic # ล้างตาราง MAC เพื่อดูมันเรียนใหม่C.11VLAN + Trunk (Lab 4)
ใบแลปให้ใช้ เลข 2 หลักก่อนขีดของรหัส → ของ Pisit คือ 28 แล้วเขียนต่อว่า "จากนั้นจึงใช้เลขอะไรก็ได้ที่มีมากกว่า 2 วง VLAN" · หน้านี้กับ Lab 4 จึงใช้ VLAN 10 / 20 / 30 / 40 ให้อ่านง่ายและตรงกับรูปในใบแลป — ถ้า TA บังคับให้ใช้เลขตามรหัส ให้เปลี่ยน 10 → 28 และ 20 → เลข 2 หลักของเพื่อนคู่แลป คำสั่งอื่นเหมือนเดิมทุกบรรทัด
Switch>enable
Switch#configure terminal
Switch(config)#hostname SW1
SW1(config)#vlan 10
SW1(config-vlan)#name VLAN10
SW1(config-vlan)#exit
SW1(config)#vlan 20
SW1(config-vlan)#name VLAN20
SW1(config-vlan)#exitSW1(config)#interface fa1/1
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 10
SW1(config-if)#exit
SW1(config)#interface fa1/2
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 20
SW1(config-if)#endSW1(config)#interface range fa1/1 - 2
SW1(config-if-range)#switchport mode access
SW1(config-if-range)#switchport access vlan 10
SW1(config-if-range)#end
# ต้องเว้นวรรครอบขีด: fa1/1 - 2 ไม่ใช่ fa1/1-2
# สวิตช์จริง 2950 ใช้ FastEthernet0/1 - 2 · 3650 ใช้ GigabitEthernet1/0/1 - 2SW1#show vlan
SW1#show vlan brief
# VLAN Name Status Ports
# 1 default active Fa1/3, Fa1/4, ...
# 10 VLAN10 active Fa1/1
# 20 VLAN20 active Fa1/2SW1#configure terminal
SW1(config)#interface fa1/10
SW1(config-if)#switchport trunk encapsulation dot1q
# บางรุ่นต้องสั่งบรรทัดนี้ก่อน · รุ่นที่รองรับ dot1Q อย่างเดียว (2950/3650) จะไม่มีคำสั่งนี้ ข้ามไปได้
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk native vlan 10
SW1(config-if)#switchport trunk allowed vlan 10,20
SW1(config-if)#no shutdown
SW1(config-if)#end
SW1#copy run start
# ต้องทำที่ switch ทั้งสองฝั่งของสาย trunk เสมอ และ native vlan ต้องตรงกันSW1#show interface fa1/10 switchport
# Administrative Mode: trunk
# Operational Mode: trunk
# Trunking Native Mode VLAN: 10
# Trunking VLANs Enabled: 10,20
SW1#show interfaces trunk # ส่วนขยาย: สรุปทุกพอร์ต trunk ในหน้าจอเดียวSW1(config)#no vlan 10
SW1(config)#no vlan 20
SW1(config)#interface range fa1/1 - 2
SW1(config-if-range)#no switchport access vlan
SW1(config-if-range)#end
# พอร์ตจะกลับไปอยู่ VLAN 1 ตามค่าเริ่มต้นSwitch#vlan database
Switch(vlan)#vtp domain KKULAB
Switch(vlan)#vtp server
Switch(vlan)#exit
# ตัวลูกใช้ vtp client แทน vtp server
Switch#show vtp status
Switch#show vtp stat| ประเภทพอร์ต | ทำอะไรได้ |
|---|---|
| Access Port | สื่อสารได้ เพียง 1 VLAN และรับส่งเฉพาะเฟรมที่ไม่มี tag — เฟรมที่มี 802.1Q tag เข้ามาจะถูกทิ้ง (drop) · ใช้ต่อกับ PC |
| Trunk Port | พอร์ตที่ใช้สื่อสารระหว่างสวิตช์ เฟรมที่ส่งต้องได้รับการ tag ก่อน (มาตรฐาน IEEE 802.1Q เติม tag เข้าไปในเฮดเดอร์ของเฟรม Ethernet) · ทำให้ไม่ต้องเดินสายหนึ่งเส้นต่อหนึ่ง VLAN |
| native vlan | VLAN ที่วิ่งบน trunk แบบไม่ติด tag · ต้องตั้งให้ตรงกันทั้งสองฝั่ง |
① ทำ trunk ฝั่งเดียว — อีกฝั่งยังเป็น access อยู่ ⇒ VLAN ข้ามสวิตช์ไม่ได้ · ② ลืม switchport trunk allowed vlan ⇒ VLAN ที่เพิ่งสร้างวิ่งข้ามไม่ได้ · ③ native vlan สองฝั่งไม่ตรงกัน ⇒ ขึ้น log %CDP-4-NATIVE_VLAN_MISMATCH · ④ PC คนละ VLAN ping กันไม่ได้เป็นเรื่องปกติ ต้องมี router (C.12) ถึงจะข้ามได้
C.12Router-on-a-Stick — ให้ VLAN คุยข้ามกันได้
Router(config)#interface <interface type slot/port>.<vlan_id>
Router(config-subif)#encapsulation dot1Q <vlan_id>
Router(config-subif)#ip address <ip_address> <subnet_mask>ใบแลปข้อ 7 เขียนว่า "ให้มองว่าเป็นคนละเครือข่าย" — ข้อ 1–6 PC ทุกเครื่องอยู่วง 192.3.128.0/24 เหมือนกัน แต่ข้อ 7 ต้องแยกวง ไม่งั้น PC จะไม่ยอมส่งแพ็กเก็ตไปที่ gateway เลย · แผนนี้ตรงกับ Lab 4 §4.10 ทุกบรรทัด
| VLAN | เครื่อง | IP ของ PC | Gateway | Subinterface |
|---|---|---|---|---|
| 10 | PC1 (SW1) | 192.3.128.11 | 192.3.128.1 | fa0/0.10 |
| 20 | PC2 (SW1) | 193.3.128.12 | 193.3.128.1 | fa0/0.20 |
| 30 | PC3 (SW2) | 194.3.128.13 | 194.3.128.1 | fa0/1.30 |
| 40 | PC4 (SW2) | 195.3.128.14 | 195.3.128.1 | fa0/1.40 |
Subnet mask ทุกวง = 255.255.255.0 · 4 VLAN แบบนี้ตอบคำถามท้ายการทดลองข้อ 2 ไปในตัว (ที่ถามว่า "หากมีมากกว่า 3 VLAN")
Router>enable
Router#configure terminal
Router(config)#hostname R1
# ① เปิดขาจริงก่อน — ตัวมันเองไม่ต้องมี IP แต่ต้อง no shutdown ไม่งั้น subinterface ไม่ขึ้นสักอัน
R1(config)#interface fa0/0
R1(config-if)#no ip address
R1(config-if)#no shutdown
R1(config-if)#exit
# ② หนึ่ง subinterface ต่อหนึ่ง VLAN — เลขหลังจุดตั้งให้ตรงกับ VLAN ID จะจำง่ายที่สุด
R1(config)#interface fa0/0.10
R1(config-subif)#encapsulation dot1Q 10
R1(config-subif)#ip address 192.3.128.1 255.255.255.0
R1(config-subif)#exit
R1(config)#interface fa0/0.20
R1(config-subif)#encapsulation dot1Q 20
R1(config-subif)#ip address 193.3.128.1 255.255.255.0
R1(config-subif)#exit
# ③ ขาที่สองไป Switch2 — ทำแบบเดียวกันเป๊ะ
R1(config)#interface fa0/1
R1(config-if)#no ip address
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface fa0/1.30
R1(config-subif)#encapsulation dot1Q 30
R1(config-subif)#ip address 194.3.128.1 255.255.255.0
R1(config-subif)#exit
R1(config)#interface fa0/1.40
R1(config-subif)#encapsulation dot1Q 40
R1(config-subif)#ip address 195.3.128.1 255.255.255.0
R1(config-subif)#end
R1#copy run startSW1(config)#interface fa1/10
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan 10,20
SW1(config-if)#no shutdown
SW1(config-if)#end
# ที่ SW2 เปลี่ยนเป็น switchport trunk allowed vlan 30,40PC1> ip 192.3.128.11 255.255.255.0 192.3.128.1
PC2> ip 193.3.128.12 255.255.255.0 193.3.128.1
PC3> ip 194.3.128.13 255.255.255.0 194.3.128.1
PC4> ip 195.3.128.14 255.255.255.0 195.3.128.1
PC1> ping 193.3.128.12 # ข้าม VLAN 10 → 20 ต้องผ่าน (ttl ลด 1)
PC1> ping 195.3.128.14 # ข้าม VLAN 10 → 40 ต้องผ่าน① ลืม no shutdown ที่อินเทอร์เฟซแม่ (fa0/0) — subinterface ทุกอันจะ down ตาม · ② เลขหลังจุดกับเลขใน encapsulation dot1Q ควรตรงกัน (ไม่บังคับ แต่ตั้งต่างกันแล้วจะงงตัวเองแน่นอน) · ③ พอร์ตของสวิตช์ที่ต่อไป router ต้องเป็น trunk ไม่ใช่ access · ④ PC ต้องตั้ง gateway เป็น IP ของ subinterface ของ VLAN ตัวเอง · ⑤ แต่ละ VLAN ต้องคนละ subnet ถ้าใช้วงเดียวกันหมด PC จะไม่ส่งไปที่ gateway เลย
C.13Spanning Tree Protocol (Lab 5)
Switch#configure terminal
Switch(config)#spanning-tree vlan 9
# เปิด / ยืนยันว่ามี STP บน VLAN 9
Switch(config)#spanning-tree vlan 9 priority 4096
# ปรับ priority ของสวิตช์ที่ยังไม่ได้เป็น root ให้ต่ำลง เพื่อแย่งเป็น root bridge
# ค่าต้องเป็นพหุคูณของ 4096 เท่านั้น: 0, 4096, 8192, ... (ค่าเริ่มต้น = 32768)
Switch(config)#no spanning-tree vlan 9
# ยกเลิก STP (ใบแลปข้อ 4.5 — ระวังลูป/เครื่องค้าง ให้ดึงสายออกก่อน)
Switch(config)#endSwitch#show spanning-tree
Switch#show spanning-tree vlan 9
# VLAN0009
# Root ID Priority 4096 Address aaaa.bbbb.cccc This bridge is the root
# Interface Role Sts Cost Prio.Nbr Type
# Fa0/1 Desg FWD 19 128.1 P2p ← Designated / Forwarding
# Fa0/2 Root FWD 19 128.2 P2p ← Root Port
# Fa0/3 Altn BLK 19 128.3 P2p ← พอร์ตที่ถูกบล็อก| ขั้นตอนการเลือกของ STP | ตัดสินจากอะไร |
|---|---|
| 1. Root Bridge | ทั้งเน็ตเวิร์กมี สวิตช์เดียว ที่เป็น root — เลือกตัวที่ Bridge ID น้อยที่สุด (Bridge ID = Priority + MAC Address) · ขาของ Root Bridge เป็น Designated Port ทั้งหมด |
| 2. Root Port | สวิตช์แต่ละตัวมีได้ 1 พอร์ตเท่านั้น — เลือกพอร์ตที่มี Path Cost ไปหา Root Bridge ต่ำสุด · เท่ากันให้ดู Bridge ID |
| 3. Designated Port | ทุก segment (ลิงก์ระหว่างสวิตช์) ต้องมี 1 Designated Port — เลือกจาก Path Cost ต่ำสุด → Bridge ID ต่ำสุด → Port ID ต่ำสุด |
| 4. Block Port | พอร์ตที่เหลือจาก Root Port และ Designated Port คือ พอร์ตที่ถูกบล็อก |
| BPDU | เฟรมที่สวิตช์แลกกันเพื่อบอก Bridge ID, ต้นทุน, Port ID — ใช้เลือก root และคำนวณบทบาทพอร์ต · ดักดูใน Wireshark ด้วย filter stp |
Blocking (max age 20 วิ) → Listening (forward delay 15 วิ) → Learning (forward delay 15 วิ) → Forwarding · เสียบสายใหม่ไฟจะเป็นสีส้มระหว่าง Listening + Learning ราว 30 วินาที ก่อนเป็นสีเขียว · ส่วนกรณี root ล่ม จะเงียบเต็ม 50 วินาที (20 + 15 + 15) · อย่าเพิ่งคิดว่าพัง — รอให้ครบก่อน
FTPClient#ftp <ip address server>
ftp> ls
ftp> get <filename.filetype>
# ไฟล์ที่ get มาจะไปอยู่ที่โฟลเดอร์ที่เปิด terminal อยู่ตอนนั้นftp แล้ว
macOS ตั้งแต่ Big Sur ถอดไคลเอนต์ ftp ออกจากระบบ — พิมพ์แล้วจะได้ command not found · ใช้ curl ที่มีอยู่แล้วแทน หรือลง inetutils ผ่าน Homebrew
$ curl -u <user>:<password> -O "ftp://<ip server>/test30.bin"
$ brew install inetutils # ถ้าอยากได้คำสั่ง ftp แบบในใบแลปจริง ๆC.14Wireshark — filter ที่ต้องจำ
ip.src == 192.3.128.2 # เฉพาะแพ็กเก็ตที่ออกจาก PC1 (source address ของการ ping)
icmp # เฉพาะ ping — Echo (ping) request / Echo (ping) reply
arp # เฉพาะ ARP — Who has 192.3.128.1? Tell 192.3.128.2| Display filter | เห็นอะไร |
|---|---|
icmp | เฉพาะ ping ข้อสอบข้อ 2 |
arp | เฉพาะ ARP request / reply ข้อสอบข้อ 2 |
ip.src == 192.3.128.2 | เฉพาะแพ็กเก็ตที่ออกจาก PC1 ข้อสอบข้อ 2 |
ip.dst == 194.3.128.2 | เฉพาะแพ็กเก็ตที่วิ่งไปหา PC3 |
ip.addr == 192.3.128.2 | ทั้งขาเข้าและขาออกของ PC1 (สะดวกกว่าเวลาต้องการเห็นทั้งคู่) |
udp.port == 520 | เฉพาะ update ของ RIP — พิสูจน์ว่า RIP ทำงานจริงและส่งออกทางสาย Serial |
vlan | เฉพาะเฟรมที่มี 802.1Q tag — ใช้ตอบ Lab 4 ที่สั่งให้ดักจับ VLAN tag |
vlan.id == 10 | เฉพาะเฟรมของ VLAN ที่ระบุ (เปลี่ยนเลขตาม VLAN ที่ตั้งไว้) |
stp | เฉพาะ BPDU ของ Spanning Tree — ใช้ตอบคำถามท้ายการทดลอง Lab 5 |
ftp || ftp-data | คำสั่ง FTP และตัวข้อมูลที่โอน (Lab 5 ข้อ 4.3) |
eth.addr == 00:aa:00:00:00:01 | กรองด้วย MAC address แทน IP |
tcp.analysis.retransmission ส่วนขยาย | เฉพาะแพ็กเก็ตที่ถูกส่งซ้ำ — ใช้ดูผลของ packet loss |
| จะดักที่ไหน | ต้องทำอะไรก่อน |
|---|---|
| ใน GNS3 | คลิกขวาที่เส้นสาย → Start Capture · GNS3 จะบันทึกไฟล์แล้วเปิด Wireshark ให้เอง แล้วค่อยกลับไป ping ใหม่ |
| บนสวิตช์จริง | ตั้ง monitor session ที่สวิตช์ก่อน (C.10) แล้วเสียบ MacBook ที่พอร์ต destination — ไม่งั้นไม่เห็นทราฟฟิกของเครื่องอื่นเลย |
| บน Mac ต้องมี | Wireshark รุ่น Arm + ติดตั้ง ChmodBPF.pkg ไม่งั้นเปิดมาไม่เห็น interface สักอัน |
| ดูกราฟปริมาณทราฟฟิก | เมนู Statistics → I/O Graph (Lab 5 ให้บันทึกกราฟตอนโอนไฟล์ FTP) |
C.15Mininet + tc/netem + iperf3 (Lab 3)
$ ssh ubuntu$ sudo mn --test pingall
# ทดสอบว่า Mininet ใช้ได้ ต้องได้ *** Results: 0% dropped
$ sudo mn -c
# ล้างของค้างจากรอบก่อน — พิมพ์ทุกครั้งที่ขึ้น Error creating interface pair
$ cd ~/mininet
$ sudo examples/miniedit.py
# เปิด GUI ลากสร้าง topology (Host / Switch / Link / Run / Stop)
# ตั้ง IP อัตโนมัติ: Edit → Preferences → IP Base = 192.3.128.0/24
# ตั้ง IP เอง: คลิกขวาที่โหนด → Propertiesmininet> nodes # มีโหนดอะไรบ้าง
mininet> net # สายเชื่อมกันยังไง
mininet> dump # IP ของทุกโหนด
mininet> pingall # ping ทุกคู่ (ข้อสอบข้อ 4 สั่ง "ping ได้ทุกโหนด")
mininet> h1 ifconfig # ดูอินเทอร์เฟซของ h1 (จะเห็นชื่อ h1-eth0)
mininet> h1 ping -c 5 192.3.128.3 # ping จาก h1 ไป h3
mininet> xterm h1 h3 # เปิดหน้าต่าง terminal แยกของ h1 และ h3
mininet> exit$ sudo tc qdisc [add|del|replace|change|show] dev <dev_id> root netem <opts>$ sudo tc qdisc add dev h1-eth0 root netem delay 100ms
# เพิ่ม delay 100 ms
$ sudo tc qdisc change dev h1-eth0 root netem delay 50ms
# แก้ค่าเดิม (ใช้ change ไม่ใช่ add ซ้ำ)
$ sudo tc qdisc add dev h1-eth0 root netem delay 100ms 10ms
# delay 100 ms + jitter ±10 ms ← ข้อสอบข้อ 4(ก) สั่งอันนี้
$ sudo tc qdisc add dev h1-eth0 root netem loss 20%
# packet loss 20% ← ข้อสอบข้อ 4(ข) สั่งอันนี้ (ใบแลปฝึกที่ 5% / 10% / 15%)
$ sudo tc qdisc del dev h1-eth0 root netem
# ลบค่าที่ตั้งไว้ทั้งหมด — ทำก่อนวัดรอบใหม่ทุกครั้ง
$ tc qdisc show dev h1-eth0
# ดูว่าตอนนี้มีกฎอะไรค้างอยู่บ้างmininet> h1 tc qdisc add dev h1-eth0 root netem delay 100ms 10ms
mininet> h1 tc qdisc change dev h1-eth0 root netem loss 20%
mininet> h1 tc qdisc del dev h1-eth0 root netem
# mn รันด้วย sudo อยู่แล้ว ในหน้า mininet> จึงไม่ต้องพิมพ์ sudo ซ้ำการ์ดจะรวมแพ็กเก็ตหลายตัวเป็นก้อนเดียวก่อนส่งขึ้นเคอร์เนล ทำให้ delay/loss ที่วัดได้ไม่ตรงกับที่ตั้งไว้
$ sudo ethtool -K h1-eth0 tso off gso off gro off
mininet> h1 ethtool -K h1-eth0 tso off gso off gro off$ ping 192.3.128.3 -c 150
# ใบแลปให้ ping 150 ครั้งตอนวัด packet loss จะได้เปอร์เซ็นต์ที่น่าเชื่อถือ
# --- 192.3.128.3 ping statistics ---
# 150 packets transmitted, 120 received, 20% packet loss, time 149s
# rtt min/avg/max/mdev = 100.1/100.9/112.3/2.1 ms
# └── mdev คือค่าที่ใช้ตอบเรื่อง jitter# เครื่องที่เป็น server:
$ iperf3 -s
# เครื่องที่เป็น client (server อยู่ที่ 192.3.128.2):
$ iperf3 -c 192.3.128.2
$ iperf3 -c 192.3.128.2 -t 5 # ทดสอบ 5 วินาที
$ iperf3 -c 192.3.128.2 -u # ทดสอบแบบ UDP แทน TCP
# ผลลัพธ์ที่ต้องจดลงตาราง: Interval · Transfer · Bitrate · Retr · Cwndmininet> h2 iperf3 -s &
mininet> h1 iperf3 -c 192.3.128.2 -t 5
mininet> h2 kill %iperf3| การตั้งค่า | คำสั่ง | ที่ต้องบันทึก |
|---|---|---|
| baseline (ไม่ตั้งอะไร) | tc qdisc del dev h1-eth0 root netem | RTT (ms) · Throughput (Mbps) · Retr · Loss จริง (%) |
| Delay 100 ms | … netem delay 100ms | |
| Delay 100 ms + Jitter 10 ms | … netem delay 100ms 10ms | |
| Loss 1% / 5% | … netem loss 1% · … netem loss 5% | |
| Loss 20% ข้อสอบ | … netem loss 20% |
โทโพโลยีของใบแลป: h1, h2 → s1 — s2 ← h3, h4 · เซฟไฟล์นี้ไว้ในเครื่องล่วงหน้าแล้วรันบรรทัดเดียวจบ
from mininet.topo import Topo
class MyTopo(Topo):
def build(self):
h1 = self.addHost('h1', ip='192.3.128.1/24')
h2 = self.addHost('h2', ip='192.3.128.2/24')
h3 = self.addHost('h3', ip='192.3.128.3/24')
h4 = self.addHost('h4', ip='192.3.128.4/24')
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
self.addLink(h1, s1)
self.addLink(h2, s1)
self.addLink(h3, s2)
self.addLink(h4, s2)
self.addLink(s1, s2)
topos = { 'mytopo': (lambda: MyTopo()) }$ sudo mn --custom ~/mytopo.py --topo mytopo
$ sudo mn --custom ~/mytopo.py --topo mytopo --ipbase=192.3.128.0/24C.16คำสั่ง show ที่ต้องส่งอาจารย์
Router#terminal length 0 # ส่วนขยาย: ไม่ให้มี --More-- ขั้นกลาง แคปง่ายขึ้น
Router#show running-config
Router#show arp
Router#show ip interface brief
Router#show ip routeSwitch#terminal length 0
Switch#show running-config
Switch#show mac-address-table
Switch#show vlan
Switch#show spanning-tree| คำสั่ง | รันที่ | ส่งเพื่อข้อไหน · ต้องเห็นอะไร |
|---|---|---|
show running-config | Router + Switch | ข้อ 1 ต้องเห็น hostname, ip address ทุกใบ, บล็อก router rip พร้อม network ครบทุกวง · ห้ามพิมพ์ show running-configuration ตามใบแลป จะได้ % Invalid input |
show mac-address-table | Switch | ข้อ 1 ต้องเห็น MAC ของทุก PC ที่เคยส่งทราฟฟิก พร้อมพอร์ตที่เสียบอยู่ · Ethernet switch ที่ติดมากับ GNS3 ไม่มีคำสั่งนี้ ต้องใช้ image IOU หรือสวิตช์จริง |
show arp | Router | ข้อ 1 คู่ IP ↔ MAC ของเครื่องในวงเดียวกัน · บน PC/Mac ใช้ arp -a |
show vlan / show vlan brief | Switch | ข้อ 3 ต้องเห็นว่าแต่ละพอร์ตอยู่ VLAN ไหน — ส่งของทุก switch |
show spanning-tree | Switch | Lab 5 — ใครเป็น root, พอร์ตไหน Root / Designated / Blocked |
show ip interface brief | Router | ยืนยัน up / up ทุกใบก่อนไปต่อ (คำสั่งนี้ไม่ได้อยู่ในใบแลป แต่เร็วที่สุด) |
show interfaces | Router + Switch | ใบแลป Lab 1 ข้อ 21 และคำถามท้ายการทดลอง Lab 2 สั่งใช้ — Serial ต้องขึ้น BW 56 Kbit/sec |
show ip route | Router | ต้องมีแถวขึ้นต้นด้วย R = RIP ทำงานแล้ว (ถ้ามีแต่ C คือยังไม่ได้แลกเปลี่ยนกัน) |
show controllers Serial0/1/1 | Router | บอกว่าฝั่งนี้เป็น DCE หรือ DTE |
show interface fa1/10 switchport | Switch | ยืนยันว่าพอร์ตเป็น trunk จริง และ native vlan / allowed vlan ถูกต้อง |
show monitor session 1 | Switch | ยืนยันว่า port mirroring ทำงาน ก่อนไปนั่งงงว่าทำไม Wireshark ไม่เห็นอะไร |
show vtp status | Switch | โดเมนและโหมด server/client ของ VTP |
① IP ทุกตัวใช้ 3 กับ 128 ของตัวเอง ไม่ใช่ตัวอย่างในใบแลป ② ทุกอินเทอร์เฟซที่ใช้เป็น up / up ③ show ip route มีแถว R ④ ping ผ่านครบทุกคู่และแคปหน้าจอไว้แล้ว ⑤ Wireshark แคปครบ 3 filter ⑥ copy run start ทุกตัว