ในบทความนี้ เราจะพูดถึงพื้นฐานของการจับและวิเคราะห์การรับส่งข้อมูล SIP ที่สร้างโดย 3CX PBX บทความนี้ส่งถึงผู้ดูแลระบบมือใหม่หรือผู้ใช้ทั่วไปที่มีหน้าที่รับผิดชอบในการบำรุงรักษาระบบโทรศัพท์ สำหรับการศึกษาหัวข้อเชิงลึกเราขอแนะนำให้อ่าน .
3CX V16 ช่วยให้คุณสามารถบันทึกการรับส่งข้อมูล SIP ได้โดยตรงผ่านทางเว็บอินเตอร์เฟสของเซิร์ฟเวอร์ และบันทึกในรูปแบบ Wireshark PCAP มาตรฐาน คุณสามารถแนบไฟล์จับภาพเมื่อติดต่อฝ่ายสนับสนุนด้านเทคนิคหรือดาวน์โหลดเพื่อการวิเคราะห์โดยอิสระ
หาก 3CX กำลังทำงานอยู่บน Windowsคุณต้องติดตั้ง Wireshark บนเซิร์ฟเวอร์ 3CX ด้วยตนเอง มิเช่นนั้น ข้อความต่อไปนี้จะปรากฏขึ้นเมื่อพยายามบันทึกข้อมูล

В Linux-บนระบบต่างๆ ยูทิลิตี้ tcpdump จะถูกติดตั้งโดยอัตโนมัติเมื่อติดตั้งหรืออัปเดต 3CX
การจับจราจร
หากต้องการเริ่มจับภาพ ให้ไปที่ส่วนอินเทอร์เฟซ หน้าแรก > เหตุการณ์ SIP และเลือกอินเทอร์เฟซที่จะจับภาพ คุณยังสามารถบันทึกการรับส่งข้อมูลบนอินเทอร์เฟซทั้งหมดพร้อมกัน ยกเว้นอินเทอร์เฟซการทันเนล IPv6

ใน 3CX สำหรับ Linux คุณสามารถดักจับการรับส่งข้อมูลสำหรับโฮสต์ภายในเครื่อง (lo) ได้ การดักจับนี้จะใช้ในการวิเคราะห์การเชื่อมต่อไคลเอ็นต์ SIP โดยใช้เทคโนโลยีนี้ .
ปุ่ม "Capture Traffic" จะเปิดใช้งาน Wireshark บน Windows หรือใช้ tcpdump บน Linuxในขั้นตอนนี้ คุณต้องจำลองปัญหาให้ได้โดยเร็ว เนื่องจากกระบวนการจับภาพจะใช้ทรัพยากรโปรเซสเซอร์และพื้นที่ดิสก์จำนวนมาก

ให้ความสนใจกับพารามิเตอร์การโทรต่อไปนี้:
- หมายเลขต้นทางที่โทรออก ซึ่งหมายเลข/ผู้เข้าร่วมสายอื่นๆ โทรมาด้วย
- เวลาที่แน่นอนที่เกิดปัญหาตามนาฬิกาเซิร์ฟเวอร์ 3CX
- เส้นทางการโทร.
พยายามอย่าคลิกที่ใดก็ได้ในอินเทอร์เฟซยกเว้นปุ่ม "หยุด" นอกจากนี้อย่าคลิกลิงก์อื่นในหน้าต่างเบราว์เซอร์นี้ มิฉะนั้น การจับการรับส่งข้อมูลจะดำเนินต่อไปในพื้นหลัง และจะส่งผลให้เกิดภาระเพิ่มเติมบนเซิร์ฟเวอร์
การรับไฟล์จับภาพ
ปุ่มหยุดจะหยุดการจับภาพและบันทึกไฟล์การจับภาพ คุณสามารถดาวน์โหลดไฟล์ลงในคอมพิวเตอร์ของคุณเพื่อการวิเคราะห์ในยูทิลิตี้ Wireshark หรือสร้างไฟล์พิเศษ ซึ่งจะรวมถึงการจับภาพนี้และข้อมูลการแก้ไขข้อบกพร่องอื่นๆ เมื่อดาวน์โหลดหรือรวมไว้ในแพ็คเกจสนับสนุนแล้ว ไฟล์จับภาพจะถูกลบออกจากเซิร์ฟเวอร์ 3CX โดยอัตโนมัติเพื่อความปลอดภัย
บนเซิร์ฟเวอร์ 3CX ไฟล์อยู่ในตำแหน่งต่อไปนี้:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
เพื่อหลีกเลี่ยงการโหลดเซิร์ฟเวอร์ที่เพิ่มขึ้นหรือการสูญเสียแพ็กเก็ตระหว่างการจับภาพ ระยะเวลาในการจับภาพจะจำกัดไว้ที่ 2 ล้านแพ็กเก็ต หลังจากนี้ การจับภาพจะหยุดโดยอัตโนมัติ หากคุณต้องการจับภาพนานกว่านั้น ให้ใช้ยูทิลิตี้ Wireshark แยกต่างหากตามที่อธิบายไว้ด้านล่าง
บันทึกการรับส่งข้อมูลด้วยยูทิลิตี้ Wireshark
หากคุณสนใจที่จะวิเคราะห์การรับส่งข้อมูลเครือข่ายเชิงลึก ให้บันทึกข้อมูลด้วยตนเอง ดาวน์โหลดยูทิลิตี้ Wireshark สำหรับระบบปฏิบัติการของคุณ . หลังจากติดตั้งยูทิลิตี้บนเซิร์ฟเวอร์ 3CX ให้ไปที่การจับภาพ > อินเทอร์เฟซ อินเทอร์เฟซเครือข่ายทั้งหมดของระบบปฏิบัติการจะแสดงที่นี่ ที่อยู่ IP ของอินเทอร์เฟซสามารถแสดงได้ในมาตรฐาน IPv6 หากต้องการดูที่อยู่ IPv4 ให้คลิกที่อยู่ IPv6

เลือกอินเทอร์เฟซที่จะจับภาพแล้วคลิกปุ่มตัวเลือก ยกเลิกการเลือก Capture Traffic ในโหมดที่หลากหลาย และปล่อยให้การตั้งค่าที่เหลือไม่เปลี่ยนแปลง

ตอนนี้คุณควรเกิดปัญหาอีกครั้ง เมื่อเกิดปัญหาขึ้นอีก ให้หยุดจับภาพ (เมนูจับภาพ > หยุด) คุณสามารถเลือกข้อความ SIP ได้ในเมนูโทรศัพท์ > SIP Flows
ข้อมูลเบื้องต้นเกี่ยวกับการวิเคราะห์ปริมาณการใช้ข้อมูล - ข้อความเชิญ SIP
ลองดูที่ฟิลด์หลักของข้อความ SIP INVITE ซึ่งถูกส่งเพื่อสร้างการโทร VoIP เช่น เป็นจุดเริ่มต้นในการวิเคราะห์ โดยทั่วไป SIP INVITE จะมีช่องข้อมูลตั้งแต่ 4 ถึง 6 ช่องที่ใช้โดยอุปกรณ์ปลายทาง SIP (โทรศัพท์ เกตเวย์) และผู้ให้บริการโทรคมนาคม การทำความเข้าใจเนื้อหาของคำเชิญและข้อความที่ตามมามักจะสามารถช่วยระบุแหล่งที่มาของปัญหาได้ นอกจากนี้ ความรู้เกี่ยวกับฟิลด์ INVITE ยังช่วยในการเชื่อมต่อผู้ให้บริการ SIP กับ 3CX หรือรวม 3CX กับ SIP PBX อื่นๆ
ในข้อความเชิญ ผู้ใช้ (หรืออุปกรณ์ SIP) จะถูกระบุโดย URI โดยทั่วไป SIP URI คือหมายเลขโทรศัพท์ของผู้ใช้ + ที่อยู่เซิร์ฟเวอร์ SIP SIP URI คล้ายกับที่อยู่อีเมลมากและเขียนเป็น sip:x@y:Port

คำขอ-บรรทัด-URI:
Request-Line-URI - ฟิลด์นี้ประกอบด้วยผู้รับสาย ประกอบด้วยข้อมูลเดียวกันกับช่องถึง แต่ไม่มีชื่อที่แสดงของผู้ใช้
ถนน:
ผ่าน - แต่ละเซิร์ฟเวอร์ SIP (พร็อกซี) ที่คำขอ INVITE ส่งผ่านจะเพิ่มที่อยู่ IP และพอร์ตที่ได้รับข้อความที่ด้านบนของรายการ Via ข้อความจะถูกส่งต่อไปตามเส้นทาง เมื่อผู้รับคนสุดท้ายตอบสนองต่อคำขอ INVITE โหนดการขนส่งทั้งหมดจะ "ค้นหา" ส่วนหัวของ Via และส่งข้อความกลับไปยังผู้ส่งตามเส้นทางเดียวกัน ในกรณีนี้ พร็อกซี Transit SIP จะลบข้อมูลออกจากส่วนหัว
จาก:
จาก - ส่วนหัวระบุตัวเริ่มต้นคำขอจากมุมมองของเซิร์ฟเวอร์ SIP ส่วนหัวถูกสร้างขึ้นในลักษณะเดียวกับที่อยู่อีเมล (user@domain โดยที่ผู้ใช้คือหมายเลขส่วนขยายของผู้ใช้ 3CX และโดเมนคือที่อยู่ IP ในเครื่องหรือโดเมน SIP ของเซิร์ฟเวอร์ 3CX) เช่นเดียวกับส่วนหัวถึง ส่วนหัวจากประกอบด้วย URI และชื่อที่แสดงของผู้ใช้ (ไม่บังคับ) เมื่อดูที่ส่วนหัวจาก คุณจะเข้าใจได้อย่างชัดเจนว่าคำขอ SIP นี้ควรได้รับการประมวลผลอย่างไร
มาตรฐาน SIP RFC 3261 ระบุว่าหากไม่ส่งชื่อที่แสดง โทรศัพท์ IP หรือเกตเวย์ VoIP (UAC) ควรใช้ชื่อที่แสดงเป็น "ไม่ระบุชื่อ" เช่น จาก: "ไม่ระบุชื่อ" -
ไปที่:
ถึง — ส่วนหัวนี้ระบุผู้รับคำขอ ซึ่งอาจเป็นผู้รับสุดท้ายของการโทรหรือลิงก์กลางก็ได้ โดยทั่วไป ส่วนหัวจะมี SIP URI แต่อาจมีรูปแบบอื่นๆ ก็ได้ (ดู RFC 2806 [9]) อย่างไรก็ตาม SIP URI จะต้องได้รับการรองรับในการใช้งานโปรโตคอล SIP ทั้งหมด โดยไม่คำนึงถึงผู้ผลิตอุปกรณ์ ส่วนหัวถึงอาจประกอบด้วยชื่อที่แสดง เช่น ถึง: "ชื่อ นามสกุล" -
โดยทั่วไปฟิลด์ถึงจะมี SIP URI ที่ชี้ไปยังพร็อกซี SIP แรก (ถัดไป) ที่จะประมวลผลคำขอ ซึ่งไม่จำเป็นต้องเป็นผู้รับคำขอคนสุดท้าย
ติดต่อ:
ติดต่อ - ส่วนหัวประกอบด้วย SIP URI ซึ่งคุณสามารถติดต่อผู้ส่งคำขอ INVITE ได้ นี่เป็นส่วนหัวที่จำเป็นและต้องมี SIP URI เดียวเท่านั้น มันเป็นส่วนหนึ่งของการสื่อสารสองทางที่สอดคล้องกับคำขอ SIP INVITE ดั้งเดิม เป็นสิ่งสำคัญมากที่ส่วนหัวของผู้ติดต่อจะต้องมีข้อมูลที่ถูกต้อง (รวมถึงที่อยู่ IP) ที่ผู้ส่งคำขอคาดว่าจะได้รับคำตอบ URI Contact ยังใช้ในการสื่อสารเพิ่มเติม หลังจากสร้างเซสชันการสื่อสารแล้ว
อนุญาต:
อนุญาต - ฟิลด์ประกอบด้วยรายการพารามิเตอร์ (วิธี SIP) คั่นด้วยเครื่องหมายจุลภาค อธิบายถึงความสามารถของโปรโตคอล SIP ที่ผู้ส่ง (อุปกรณ์) รองรับ รายการวิธีการทั้งหมด: ACK, BYE, ยกเลิก, ข้อมูล, เชิญ, แจ้งเตือน, ตัวเลือก, แกล้งทำเป็น, อ้างอิง, ลงทะเบียน, สมัครสมาชิก, อัปเดต วิธีการ SIP มีการอธิบายโดยละเอียดเพิ่มเติม .
ที่มา: will.com
