Wi-Fi Troubleshooting ตอนที่ 2: Tools
ในโลกของ Wi-Fi มีเครื่องมือที่ใช้ทำ troubleshooting มากมาย ด้วยเหตุผลหลักคือเรามองไม่เห็น RF จึงจำเป็นต้องใช้ตัวช่วยเพื่อให้เรา "มองเห็นปัญหา" ก่อนจะลงมือแก้ไข
Wi-Fi ทำงานที่ Layer 1 และ Layer 2 ของ OSI ดังนั้นงาน troubleshooting ของแต่ละ layer ต้องใช้เครื่องมือที่แตกต่างกัน
ที่ L2 Wi-Fi ใช้ MAC Frame เหมือน Ethernet เครื่องมือที่นิยมใช้ Troubleshoot บน L2 คือกลุ่ม Wi-Fi Scanner (บางคนเรียกว่า Wi-Fi Analyzer) ซึ่งข้อดีคือใช้ง่าย มีให้เลือกมากมายทั้งบน Windows, Mac, Android และ iOS ที่ส่วนตัวผมแนะนำก็มี WinFi, lswifi, และ Wi-Fi Explorer
Wi-Fi Scanner ทำงานโดยการดักเก็บค่า Beacon ของ BSSID ที่ AP ส่งออกมาใน Channel ที่มันอยู่
Beacon เป็น Management Frame ที่ทำหน้าที่ประกาศถึงคุณสมบัติเฉพาะและความสามารถ (capabilities) ของตัวมันเองเช่น PHY Type, Channel, Channel Width, QBSS Utilization, MBR, Support Rates, Client Count, Tx Power, จำนวน Spatial Streams และอื่นๆอีกมากมาย เราสามารถใช้ข้อมูลที่ได้วิเคราะห์ปัญหาเบื้องต้นได้ เช่นเช็คปัญหาสัญญาณอ่อนโดยดูจาก RSSI หรือแก้ไข Channel Overlapping โดยเลือกใช้ channel หรือ width ที่เหมาะสมได้
แต่ข้อจำกัดของ Wi-Fi Scanner คือมันมองไม่เห็น Client (เพราะ Client ไม่แจก Beacon) ฉะนั้นปัญหาเช่น Wi-Fi ช้า หรือ Client เกาะ AP ไม่ได้ จึงใช้ Scanner แก้ปัญหาไม่ได้ ดังนั้น การทำ L2 troubleshooting แบบ deep dive จึงจำเป็นต้องใช้เครื่องมืออีกชนิดนึงคือ Protocol Analyzer หรือ Sniffer เช่น Wireshark ประกอบกันไปด้วย
Protocol Analyzer จะต่างจาก Wi-Fi Scanner ตรงที่มันจะเก็บ MAC frame ของอุปกรณ์ Wi-Fi ทุกตัวที่มันได้ยินเป็น PCAP file ฉะนั้นเราจะมีข้อมูล frame exchange ทั้งหมด เช่น STA ไหนส่งข้อมูลหาใคร มี Retry มากน้อยแค่ไหน ซึ่งข้อมูลเหล่านี้ช่วยให้เราสามารถแก้ปัญหาได้ตรงจุด
ถ้าท่านใช้ Mac ท่านสามารถเก็บ PCAP ง่ายๆผ่านโปรแกรม Sniffer ใน Wireless Diagnostics ที่ built-in มากับ MacOS เลย แต่ถ้าท่านใช้ Windows ต้องใช้ตัวช่วยเช่น WLANpi หรือ Ekahau Capture
แต่ข้อเสียของ Protocol Analyzer ใช้ยากกว่า Wi-Fi Scanner มาก เราต้องมีความรู้ทั้งด้าน Wi-Fi Frame ชนิดต่างๆ และการใช้งาน Wireshark เช่นเราต้องรู้ว่าถ้าเจอปัญหานี้ เราต้องหาค่าอะไร และค่านั้นอยู่เฟรมไหน ส่งจาก AP หรือจาก Client และต้องใช้ Wireshark filter อะไรในการค้นหา
โดยปกติแล้วผมจะใช้ Wi-Fi Scanner เก็บ Snapshot เพื่อให้เห็นภาพใหญ่และเช็คดูเบื้องต้นปัญหามาจาก channel ไหน แล้วใช้ Wireshark ดักเก็บ frame ของ channel นั้น จากนั้นใช้ filter หา frame ที่เป็นต้นตอของปัญหา เช่นถ้า client connect กับ AP ไม่ได้ ผมก็จะไล่ดู authentication & association frame และ EAPOL (4-way handshake) ของอุปกรณ์ทั้งคู่ หรือถ้าเน็ตช้า ผมจะเช็คดูจำนวน retry frame ก่อนที่จะสรุปแนวทางแก้ไข
แต่ Wi-Fi Scanner กับ Protocol Analyzer ยังมีข้อจำกัดตรงที่ทั้งคู่ทำงานอยู่บน L2 ฉะนั้นเราจะไม่เห็น Non-Wi-Fi interference ซึ่งเป็นอีกหนึ่งปัญหาที่ส่งผลกระทบโดยตรงต่อการทำงานของ Wi-Fi เช่นคลื่นรบกวนจากเตาอบไมโครเวฟ Wireless Camera หรือ Baby Monitor ซึ่งบางครั้งเราจำเป็นต้องเจาะลึกลงไปถึงแก่นของ PHY Layer หรือ RF โดยใช้เครื่องมือที่เรียกว่า Spectrum Analyzer เช่นที่ดังๆเลยก็ Ekahau/Sidekick
Spectrum Analyzer ใช้แก้ปัญหาอะไร
หลักๆแล้วเราใช้ spectrum analyzer แก้ปัญหา non-Wi-Fi Interference โดยการตรวจเช็ค channel utilization (การใช้งานของช่องสัญญาณ) และดู RF pattern เช่น ถ้าช่องสัญญาณมี utilization ที่สูงผิดปกติ ส่งผลให้ client ตัวอื่นไม่สามารถส่งสัญญาณหรือส่งได้ช้า เราสามารถใช้ spectrum analyzer เช็คได้ว่า utilization นั้นเกิดขึ้นที่ channel ไหน RF ทรงนี้เป็น Wi-Fi client หรือเป็น non-Wi-Fi device (device แต่ละชนิดจะมี RF Signature ที่แตกต่างกัน) และใช้ข้อมูลนี้ระบุชนิดและตำแหน่งของอุปกรณ์ แล้วปิดหรือย้ายอุปกรณ์ต้นตอของปัญหาได้
จบแล้วครับ สรุปเครื่องมือต่างๆที่ใช้แก้ปัญหา Wi-Fi จริงๆแล้วมันมีเยอะกว่านี้แต่ที่ผมแชร์ไปนั้นเป็น Tools ที่ผมใช้อยู่ประจำหรือเคยใช้และได้ผล แต่ทั้งนี้ทั้งนั้นการที่เรามีแค่เครื่องมือราคาแพงและทันสมัยก็ไม่ได้หมายความว่าเราจะแก้ปัญหา Wi-Fi ได้เสมอไป ที่สำคัญที่สุดคือเราต้องสามารถตีโจทย์ให้แตกว่าปัญหาอยู่ตรงไหน จากนั้นเลือกใช้เครื่องมือที่เหมาะสมในการแก้ไขปัญหา
สรุป Wi-Fi Tools ต่างๆ
L2 - Wi-Fi Scanner
- WinFi (Windows)
- inSSIDer (Windows)
- Wi-Fi Explorer (MAC)
- lswifi (Windows)
- Wi-Fi Analyzer (Android)
- Aruba Utilities (Android)
- Airport Utilitiy (iOS)
- Ekahau Analyzer (iOS, Android)
- Kismet (Linux)
- Aircheck G1/G2 (Dedicated Tool)
L2 - Protocol Analyzer
- Wireshark (Windows, Mac, Linux)
- Omnipeek (Windows)
- Ekahau Capture + Wireshark (Windows, Mac)
- Metageek EYE PA (Windows)
- Metageek Tonic (Windows)
- WLANpi (Dedicated Tool)
L1 - Spectrum Analyzer
- Ekahau Pro + Sidekick (Windows, Mac)
- Channelizer + Win-Spy BBx (Windows)
- Ekahau Analyzer + Sidekick (iOS, Android)
- Aircheck G1/G2/G3 (Dedicated Tool) with limited feature