บทช่วยสอนการทดสอบโปรโตคอล: L2 & L3

ก่อนที่เราจะเรียนรู้เกี่ยวกับการทดสอบโปรโตคอล มาทำความเข้าใจกันก่อน:

โปรโตคอลคืออะไร?

เมื่อคอมพิวเตอร์สื่อสารกัน จะมีชุดกฎและเงื่อนไขทั่วไปที่คอมพิวเตอร์แต่ละเครื่องต้องปฏิบัติตาม กล่าวอีกนัยหนึ่ง โปรโตคอลจะกำหนดวิธีการส่งข้อมูลระหว่างอุปกรณ์คอมพิวเตอร์และผ่านเครือข่าย

การทดสอบโปรโตคอล

การทดสอบโปรโตคอล เป็นวิธีการตรวจสอบโปรโตคอลการสื่อสารในโดเมน Switching, Wireless, VoIP, Routing ฯลฯ เป้าหมายหลักของการทดสอบโปรโตคอลคือการตรวจสอบโครงสร้างของแพ็กเก็ตที่ถูกส่งผ่านเครือข่ายโดยใช้เครื่องมือทดสอบโปรโตคอล เราเตอร์และสวิตช์ถูกใช้ในระหว่างการทดสอบเพื่อสร้างชิ้นส่วนของอุปกรณ์และผลิตภัณฑ์ภายใต้การทดสอบ

โปรโตคอลการกำหนดเส้นทางและการกำหนดเส้นทาง

โปรโตคอลแบ่งออกเป็นสองประเภท โปรโตคอลที่กำหนดเส้นทาง และ โปรโตคอลการกำหนดเส้นทาง

  • โปรโตคอลที่กำหนดเส้นทาง:โปรโตคอลการกำหนดเส้นทางสามารถใช้เพื่อส่งข้อมูลผู้ใช้จากเครือข่ายหนึ่งไปยังอีกเครือข่ายหนึ่ง โดยโปรโตคอลนี้รับส่งข้อมูลของผู้ใช้ เช่น อีเมล ทราฟฟิกเว็บ การถ่ายโอนไฟล์ เป็นต้น โปรโตคอลการกำหนดเส้นทาง ได้แก่ IP, IPX และ AppleTalk
  • โปรโตคอลการกำหนดเส้นทาง: โปรโตคอลการกำหนดเส้นทางคือโปรโตคอลเครือข่ายที่กำหนดเส้นทางสำหรับเราเตอร์ มันถูกใช้ระหว่างเราเตอร์เท่านั้น ตัวอย่างเช่น RIP, IGRP, EIGRP เป็นต้น

ในแง่ง่ายๆ, เราเตอร์เปรียบเสมือนรถบัสที่ใช้ในการขนส่งในขณะที่โปรโตคอลการกำหนดเส้นทางเป็นสัญญาณบนท้องถนน

โปรโตคอลต่างๆ ที่ใช้ขึ้นอยู่กับประเภทของการสื่อสาร บริษัทต่างๆ เช่น CISCO, JUNIPER, ALCATEL ผลิตอุปกรณ์เครือข่าย เช่น เราเตอร์ โมเด็ม จุดเชื่อมต่อไร้สาย เป็นต้น ซึ่งใช้โปรโตคอลที่แตกต่างกันสำหรับการสื่อสาร เช่น Cisco ใช้ EIGRP, OSPF ฯลฯ การทดสอบโปรโตคอลนั้นไม่มีอะไรนอกจากการตรวจสอบว่า EIGRP (Enhanced Interior Gateway Routing Protocol) หรือ OSPF (Open Shortest Path First) หรือโปรโตคอลอื่นใดทำงานตามมาตรฐานที่เกี่ยวข้อง

ประเภทของโปรโตคอลคอมพิวเตอร์

ประเภทของโปรโตคอล วัตถุประสงค์ของพิธีสาร
TCP / IP ใช้เพื่อส่งข้อมูลในรูปแบบแพ็กเก็ตขนาดเล็กผ่านทางอินเทอร์เน็ต
UDP/ICMP ใช้เพื่อส่งข้อมูลจำนวนเล็กน้อยในแพ็กเก็ตข้อมูลผ่านทางอินเทอร์เน็ต
POP3 และ SMTP ใช้สำหรับส่งและรับเมล์
โปรโตคอลการโอนถ่ายข้อมูลแบบไฮเปอร์เท็กซ์ ใช้เพื่อถ่ายโอนหน้า HTML ในรูปแบบที่เข้ารหัสเพื่อความปลอดภัยของข้อมูลที่ละเอียดอ่อน
FTP ใช้สำหรับขนส่งไฟล์ผ่านเครือข่ายจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง

* TCP / IP- Transmission โปรโตคอลควบคุม / โปรโตคอลอินเทอร์เน็ต UDP/ICMP– ผู้ใช้เดตาแกรมโปรโตคอล / โปรโตคอลข้อความควบคุมอินเทอร์เน็ต, POP3 / SMTP– โปรโตคอลที่ทำการไปรษณีย์ / ง่าย Mail โปรโตคอลการโอน HTTP– โปรโตคอลการถ่ายโอนข้อความไฮเปอร์ FTP– โปรโตคอลการถ่ายโอนไฟล์

โปรโตคอลเครือข่ายประเภทต่างๆ (L2 และ L3)

โมเดล OSI มีการสื่อสารเครือข่ายทั้งหมด 7 ชั้น โดยชั้นที่ 2 และชั้นที่ 3 มีความสำคัญมาก

  • เลเยอร์ 2: เป็นชั้นดาต้าลิงค์ ที่อยู่ Mac, อีเธอร์เน็ต, Token Ring และ Frame Relay ล้วนเป็นตัวอย่างของ Data link layer
  • เลเยอร์ 3: เป็นชั้นเครือข่ายที่กำหนดเส้นทางที่ดีที่สุดในเครือข่ายเพื่อการสื่อสาร ที่อยู่ IP เป็นตัวอย่างของเลเยอร์ 3

วิธีทำการทดสอบโปรโตคอล

  • สำหรับการทดสอบโปรโตคอล คุณต้องมี เครื่องวิเคราะห์และจำลองโปรโตคอล
  • ตัววิเคราะห์โปรโตคอลช่วยให้มั่นใจในการถอดรหัสที่เหมาะสมพร้อมกับการวิเคราะห์การโทรและเซสชัน ในขณะที่ตัวจำลองจำลองเอนทิตีต่าง ๆ ขององค์ประกอบเครือข่าย
  • โดยปกติแล้ว การทดสอบโปรโตคอลจะดำเนินการโดย DUT (อุปกรณ์ที่อยู่ระหว่างการทดสอบ) กับอุปกรณ์อื่นๆ เช่น สวิตช์และเราเตอร์ และการกำหนดค่าโปรโตคอลในนั้น
  • หลังจากนั้นตรวจสอบโครงสร้างแพ็กเก็ตของแพ็กเก็ตที่ส่งโดยอุปกรณ์
  • ตรวจสอบความสามารถในการปรับขนาด ประสิทธิภาพ อัลกอริธึมโปรโตคอล ฯลฯ ของอุปกรณ์โดยใช้เครื่องมือเช่น lxNetworks Scapy และ Wireshark

ประเภทการทดสอบสำหรับการทดสอบโปรโตคอล

การทดสอบโปรโตคอลประกอบไปด้วยการทดสอบการทำงาน ประสิทธิภาพ สแต็กโปรโตคอล การทำงานร่วมกัน ฯลฯ โดยพื้นฐานแล้ว การทดสอบโปรโตคอลจะมีการตรวจสอบสามอย่าง

  • ความถูกต้อง: เราได้รับแพ็คเก็ต X เมื่อเราคาดหวังหรือไม่
  • ความแอบแฝง: แพ็กเก็ตใช้เวลานานเท่าใดในการขนส่งระบบ
  • แบนด์วิดธ์: เราสามารถส่งแพ็กเก็ตได้กี่แพ็คต่อวินาที

การทดสอบโปรโตคอลสามารถแบ่งออกเป็นสองประเภท การทดสอบความเครียดและความน่าเชื่อถือและการทดสอบการทำงาน ครอบคลุมการทดสอบความเครียดและความน่าเชื่อถือ โหลดการทดสอบ, การทดสอบความเครียด, การทดสอบประสิทธิภาพฯลฯ ในขณะที่ การทดสอบสมรรถนะ รวมไปถึงการทดสอบเชิงลบ การทดสอบความสอดคล้อง การทดสอบการทำงานร่วมกัน ฯลฯ

  • การทดสอบความสอดคล้อง: โปรโตคอลที่นำไปใช้กับผลิตภัณฑ์ได้รับการทดสอบความสม่ำเสมอเช่น IEEE RFC เป็นต้น
  • การทดสอบการทำงานร่วมกัน: มีการทดสอบการทำงานร่วมกันของผู้จำหน่ายที่แตกต่างกัน การทดสอบนี้จะดำเนินการหลังจากทำการทดสอบความสอดคล้องบนแพลตฟอร์มที่เหมาะสมแล้ว
  • การทดสอบคุณสมบัติเครือข่าย: คุณลักษณะของผลิตภัณฑ์ระบบเครือข่ายได้รับการทดสอบการทำงานโดยอ้างอิงกับเอกสารการออกแบบ ตัวอย่างเช่น คุณสมบัติอาจเป็นการรักษาความปลอดภัยพอร์ตบนสวิตช์, ACL บนเราเตอร์ เป็นต้น

กรณีทดสอบตัวอย่างสำหรับการทดสอบโปรโตคอลของอุปกรณ์เครือข่าย

นี่คือกรณีทดสอบตัวอย่างสำหรับเราเตอร์

ชื่อการทดสอบ กรณีทดสอบ
หนึ่ง VLAN บนสวิตช์เดียว สร้าง VLAN ที่แตกต่างกันสองตัว ตรวจสอบการมองเห็นระหว่างโฮสต์บน VLAN ที่แตกต่างกัน
Symmetric VLAN สามอันบนสวิตช์เดียว สร้าง VLAN แบบอสมมาตรที่แตกต่างกันสามแบบ ตรวจสอบการมองเห็นระหว่างโฮสต์
Spanning Tree: การเปลี่ยนแปลงต้นทุนเส้นทางราก ทดสอบว่าต้นทุนเส้นทางรากเปลี่ยนแปลงอย่างไรหลังจากการเปลี่ยนแปลงโทโพโลยี
Spanning Tree: การปิดกั้นพอร์ต ตรวจสอบว่าโปรโตคอล spanning tree หลีกเลี่ยงการก่อตัวของวงจรในเครือข่าย โดยการบล็อกลิงก์ที่ซ้ำซ้อนเมื่อมี VLAN เกินไป
Root Bridge ที่แตกต่างกันสำหรับ MSTI ที่แตกต่างกัน แสดงว่า MSTI แต่ละตัวสามารถมี Root Bridge ที่แตกต่างกันได้
การมองเห็นระหว่างภูมิภาค STP ที่แตกต่างกัน ด้วย VLAN เดียวกันจะตรวจสอบการมองเห็นระหว่างภูมิภาค STP ที่แตกต่างกัน
ประสิทธิภาพสวิตช์โทรศัพท์ สร้างการโทรออก 1000 ครั้งและตรวจสอบว่าสวิตช์โทรศัพท์ยังทำงานอยู่หรือประสิทธิภาพลดลง
การทดสอบเชิงลบสำหรับอุปกรณ์ ป้อนรหัสที่ไม่ถูกต้องและตรวจสอบผู้ใช้เพื่อตรวจสอบสิทธิ์ ไม่ควรอนุญาตให้ผู้ใช้เข้าถึง
ความเร็ว Line ตรวจสอบอุปกรณ์ที่ทำงานด้วยความเร็ว 10Gbps โดยใช้แบนด์วิดท์ที่มีอยู่ทั้งหมดเพื่อจัดการกับปริมาณการรับส่งข้อมูลขาเข้า
อัตราการสนทนาโปรโตคอล ติดตามการสนทนา TCP ระหว่างอุปกรณ์สองเครื่องและตรวจสอบว่าอุปกรณ์แต่ละเครื่องมีพฤติกรรมที่ถูกต้อง
เวลาตอบสนองสำหรับการเริ่มต้นเซสชัน วัดเวลาตอบสนองของอุปกรณ์ต่อคำขอเชิญสำหรับการเริ่มต้นเซสชัน

เครื่องมือสำหรับการทดสอบโปรโตคอล

เรามาหารือเกี่ยวกับเครื่องมือทดสอบที่สำคัญที่สุดที่ใช้ในการตรวจสอบโปรโตคอล

1) Scapy สำหรับการประดิษฐ์แพ็คเก็ต

Scapy เป็นโปรแกรมจัดการแพ็กเก็ตเชิงโต้ตอบที่ทรงพลัง มันช่วยให้คุณ

  • สร้างแพ็กเก็ต
  • ถอดรหัสแพ็กเก็ตบนเครือข่าย
  • จับแพ็กเก็ตและวิเคราะห์
  • แทรกแพ็กเก็ตเข้าไปในเครือข่าย

โดยพื้นฐานแล้ว scapy จะทำสองสิ่งหลักๆ: รับคำตอบและส่งแพ็คเก็ต- คุณกำหนดแพ็กเก็ต โดยจะส่ง รับคำตอบ จับคู่คำขอกับคำตอบ และส่งคืนรายการคู่แพ็กเก็ตและรายการแพ็กเก็ตที่ไม่ตรงกัน

นอกจากนี้ยังสามารถจัดการสิ่งอื่นๆ ได้ เช่น การติดตามเส้นทาง การทดสอบหน่วย การโจมตีหรือการค้นพบเครือข่าย การพัฒนาโปรโตคอลใหม่ การตรวจสอบ ฯลฯ

Scapy ทำให้เราสามารถเขียนก Python สคริปต์ที่ช่วยให้เราดำเนินการงานต่างๆ เช่น การส่งและรับแพ็กเก็ตหรือดมกลิ่นแพ็กเก็ต ตัวอย่างเช่น scapy สามารถดมกลิ่นแพ็กเก็ตข้อมูลได้โดยใช้ Python สคริปต์ คำสั่งเพื่อเปิด getdit ที่ป้อนในตัวแก้ไข

#gedit scapysniff.py
#!/usr/bin/env python
from scapy.all import*

a= sniff(count=10)
a.nsummary()

save, and change the mode of the file into an executable form
#chmod+x scapysniff.py
# ./scaotsbuff.py

มันจะดม 10 แพ็กเก็ต และทันทีที่ดม 10 แพ็กเก็ต ก็จะพิมพ์สรุปออกมา Scapy อีกทั้งยังเป็นอาร์เรย์คำสั่งในการส่งและรับแพ็กเก็ตพร้อมกัน

ดาวน์โหลด Scapy

2) Wireshark เครื่องมือสำหรับการวิเคราะห์

เครื่องมือที่ใช้สำหรับการทดสอบโปรโตคอล- Wiresharkช่วยให้สามารถจับแพ็คเก็ตได้แบบเรียลไทม์และแสดงในรูปแบบที่มนุษย์สามารถอ่านได้ ช่วยให้คุณสามารถเจาะลึกข้อมูลการรับส่งข้อมูลในเครือข่ายและตรวจสอบแพ็คเก็ตแต่ละรายการได้โดยใช้การเข้ารหัสสีและตัวกรอง

Wireshark จับแพ็กเก็ตที่ช่วยในการพิจารณาว่าเซสชันกำลังเริ่มต้นเมื่อใด การเดินทางข้อมูลที่แน่นอนเริ่มต้นขึ้น และจำนวนข้อมูลที่ถูกส่งในแต่ละครั้ง เป็นต้น

Wireshark มีชุดคุณสมบัติที่หลากหลายซึ่งรวมถึง

  • การตรวจสอบโปรโตคอลหลายร้อยรายการอย่างละเอียด และมีเพิ่มมากขึ้นเรื่อยๆ
  • การจับภาพสดและการวิเคราะห์ออฟไลน์
  • การวิเคราะห์ VoIP ที่หลากหลาย
  • เบราว์เซอร์บรรจุสามบานหน้าต่างมาตรฐาน
  • ทำงานบนหลายแพลตฟอร์มเช่น Windows, Linux, OSX และอื่นๆ
  • ข้อมูลเครือข่ายที่บันทึกไว้สามารถเรียกดูได้ผ่าน GUI
  • การถอดรหัสรองรับโปรโตคอลมากมาย เช่น IPsec, ISAKMP, SSL/TLS
  • ข้อมูลสดสามารถอ่านได้จาก Ethernet, ATM, Bluetooth, USB, โทเค็น ฯลฯ
  • เอาต์พุตสามารถส่งออกเป็น CSV, XML, ข้อความธรรมดา ฯลฯ

ดาวน์โหลด Wireshark

ทีทีซีเอ็น

TCCN เป็นภาษาทดสอบมาตรฐานสำหรับการกำหนด สถานการณ์ทดสอบ และการนำไปใช้สำหรับการทดสอบโปรโตคอล ชุดทดสอบ TCCN ประกอบด้วยกรณีการทดสอบจำนวนมากที่เขียนด้วยภาษาการเขียนโปรแกรม TTCN และใช้สำหรับ การทดสอบ ระบบปฏิกิริยาหรือการทดสอบพฤติกรรม.

ตัวอย่างเช่น ตู้จำหน่ายกาแฟอัตโนมัติที่ให้กาแฟแก่คุณเมื่อหยอดเหรียญดอลลาร์ แต่ไม่ตอบสนองหากมีการใส่เงินน้อยกว่าหนึ่งดอลลาร์เข้าไป ในการโปรแกรมเครื่องดังกล่าวจะใช้ภาษา TCCN3 เพื่อให้เครื่องชงกาแฟตอบสนองเมื่อใส่เหรียญ เราต้องเขียนส่วนประกอบ TCCN-3 ที่ทำงานเหมือนกับเครื่องชงกาแฟ ช่วยให้เราทำการทดสอบก่อนที่เครื่องชงกาแฟจริงจะวางจำหน่ายเป็นผลิตภัณฑ์ เมื่อเสร็จแล้ว เราจะเชื่อมต่อชุดทดสอบ TCCN3 กับอุปกรณ์ภายนอก

ทีทีซีเอ็น

ระบบทดสอบปล่อยสิ่งเร้า (เหรียญดอลลาร์) และรับการตอบสนอง (กาแฟ) อะแดปเตอร์สิ่งเร้าจะรับสิ่งเร้าจากระบบทดสอบและส่งต่อไปยังระบบที่ทดสอบ อะแดปเตอร์การตอบสนองจะรอการตอบสนองของระบบที่กำลังทดสอบ และส่งต่อไปยังระบบทดสอบ

TCCN3 สามารถนำไปใช้ในด้านต่างๆ เช่น

  • การสื่อสารเคลื่อนที่ (LTE, WiMAX, 3G ฯลฯ)
  • เทคโนโลยีบรอดแบนด์ (ATM, DSL)
  • แพลตฟอร์มมิดเดิลแวร์ (บริการเว็บ, CORBA ฯลฯ )
  • อินเทอร์เน็ตโปรโตคอล (SIP, IMS, IPv6)
  • สมาร์ทการ์ด
  • ยานยนต์ (AutoSAR, MOST, CAN)

ใน TCCN เราสามารถกำหนดได้

  • ห้องทดสอบ
  • กรณีทดสอบ
  • ขั้นตอนการทดสอบ
  • ประกาศตัวแปร
  • ประกาศตัวจับเวลา
  • สร้าง PDU เป็นต้น

TCCN สามารถบูรณาการเข้ากับระบบประเภทภาษาอื่น เช่น ASN.1 XML, ค/C++- ภาษาหลักของ TCCN3 มีอยู่ในรูปแบบข้อความ นอกเหนือจากรูปแบบอื่นๆ เช่น ตาราง กราฟิก และการนำเสนอ