บทที่ 32 · Operations

Port Mirroring Lab

มีเครื่องผู้ใช้ที่ GE0/0/1 (PC-A) ต้องสงสัย — อยากดักดูทราฟฟิกทั้งหมดของมันด้วย Wireshark / IDS ที่เสียบไว้ที่ GE0/0/3 โดยไม่กระทบการใช้งานปกติ งานของคุณคือทำ local port mirroring: กำหนด observe-port (พอร์ตปลายทางที่ analyzer อยู่) แล้วสั่งพอร์ตต้นทางให้ port-mirroring to observe-port — เลือกทิศ inbound / outbound / both ให้ถูก (ค่าที่ต้องตั้งดูได้จากป้ายด้านล่าง)

GE0/0/1 → PC-A (เครื่องที่จะดักดู) GE0/0/2 → Server GE0/0/3 → Analyzer (Wireshark / IDS) GE0/0/24 → uplink ไป Core

Topology — สถานะสด

Terminal — SW1

<SW1>

คำสั่งอ้างอิง — คลิกเพื่อแทรกลงเทอร์มินัล

รองรับ system-view, observe-port [<index>] interface <ifname> (system view), undo observe-port <index>, interface, port-mirroring to observe-port <index> { inbound | outbound | both } (interface view), undo port-mirroring, quit/return และ display observe-port / display port-mirroring / display current-configuration — ปุ่มใต้ไดอะแกรมจำลอง PC-A รับส่งข้อมูลกับ Server (ไม่ใช่คำสั่ง CLI) — กด Tab เพื่อเติมคำสั่ง หรือ ? เพื่อดูตัวเลือก

อ้างอิงจาก Huawei S1720, S2700, S5700, S6720 V200 Configuration Guide – Network Management and Monitoring ("Mirroring Configuration", "Example for Configuring Local Port Mirroring")

สรุปท้ายบท — เข้าใจภาพรวม

บทนี้แก้ปัญหาอะไร

อยากเห็นแพ็กเก็ตจริงของพอร์ตหนึ่ง (troubleshoot, ตรวจ IDS, เก็บหลักฐาน) โดยไม่แตะการ forward ปกติ — port mirroring ให้สวิตช์คัดลอกเฟรมของพอร์ตต้นทาง (mirrored port) ไปออกที่พอร์ตปลายทาง (observe-port) ที่ analyzer เสียบอยู่ ต้นฉบับยังวิ่งตามปกติ สำเนาเป็น best-effort

ใช้เมื่อไหร่ · ไม่ควรใช้เมื่อไหร่

  • ใช้: ต่อ packet analyzer / IDS / NDR, จับ intermittent bug, ตรวจสอบตาม compliance
  • ไม่ควร: เปิดค้างถาวรบนพอร์ตหลาย ๆ ตัวพร้อมกัน — สำเนากินทรัพยากร forwarding และ observe-port link จะ oversubscribe (สำเนาถูก drop ก่อน)
  • อยากดูแค่ traffic บางชนิด (บาง IP/port) → ใช้ flow mirroring (MQC traffic-mirror) แม่นกว่า มิเรอร์ทั้งพอร์ต
  • analyzer อยู่บนสวิตช์ตัวอื่น → ต้องทำ remote port mirroring (RSPAN) ผ่าน mirroring VLAN (นอกขอบเขตบทนี้)

จุดที่คนมักพลาด

  • ตั้ง observe-port ที่พอร์ตซึ่งมี traffic จริง (อัพลิงก์ / พอร์ตผู้ใช้) — พอร์ตนั้นจะเลิก forward ปกติและรบกวนบริการ ต้องใช้พอร์ตว่างที่ต่อ analyzer เท่านั้น
  • พอร์ตเดียวเป็นทั้ง observe-port และ mirrored-port ไม่ได้
  • เลือกทิศผิด: inbound = เฟรมที่พอร์ตต้นทางรับเข้า, outbound = ที่ส่งออก — อยากเห็นบทสนทนาครบต้อง both (แต่ปริมาณเป็น 2 เท่า ระวัง observe-port ตัน)
  • index ใน port-mirroring to observe-port <index> ต้องตรงกับ index ที่ตั้งใน observe-port <index> interface ...
  • คืนพอร์ต observe ให้ใช้งานปกติ: ต้อง undo port-mirroring ที่พอร์ตต้นทางทุกตัว แล้ว undo observe-port <index>
  • สำเนา mirror ไม่การันตี — ถ้า observe-port แน่น เฟรม mirror จะหายก่อน (ต้นฉบับไม่กระทบ) จึงไม่เหมาะใช้เป็น tap แบบพึ่งพาได้ 100%

คำสั่งในบทนี้ — ใช้ทำอะไร

observe-port [<index>] interface <ifname>
(system view) กำหนดพอร์ตปลายทางที่รับสำเนา — ควรเป็นพอร์ตว่างที่ต่อ analyzer
port-mirroring to observe-port <index> inbound|outbound|both
(interface view) ให้พอร์ตนี้เป็นต้นทาง คัดลอกเฟรมตามทิศที่เลือกไป observe-port
undo port-mirroring
เลิกมิเรอร์บนพอร์ตต้นทาง
undo observe-port <index>
ลบ observe-port (ทำหลังเคลียร์ mirrored port หมดแล้ว)
display observe-port
ดู observe-port ที่ตั้งไว้ (Index / Interface)
display port-mirroring
ดูรายการ Mirror-port + Direction + Observe-port

เชื่อมกับบทอื่น

  • บท 21 · Device Health Check — mirroring คือขั้นถัดไปเมื่อ counter/log ไม่พอ ต้องดูแพ็กเก็ตจริง
  • บท 16 · QoS — flow classification (MQC) แบบเดียวกับที่ flow mirroring ใช้
  • บท 30 · LLDP — ใช้ยืนยันว่าพอร์ตไหนต่อกับ analyzer ก่อนตั้ง observe-port
  • บท 10 · DHCP Snooping — คู่กับ IDS ที่กินทราฟฟิกจาก mirror เพื่อตรวจจับพฤติกรรมผิดปกติ