ฉันกำลังเขียน net filter ที่ง่ายมากและไปที่ที่ฉันต้องการแยกวิเคราะห์ส่วนหัว IPv6 เพื่อจับคู่สิ่งต่างๆเช่นประเภท ICMPv6 หมายเลขพอร์ต TCP / UDP เป็นต้น
ดังนั้นฉันกำลังอ่านเกี่ยวกับรูปแบบแพ็กเก็ต IPv6ในเชิงลึกและฉันก็ชอบ ... อืม ... ฉันต้องอ่านซ้ำแล้วซ้ำอีกเพื่อให้แน่ใจว่าฉันอ่านถูกต้องจริงๆ สำหรับฉันแล้วดูเหมือนว่าคุณต้องเริ่มต้นด้วยส่วนหัวคงที่ 40 ไบต์และดูที่ฟิลด์ส่วนหัวถัดไป จากนั้นคุณต้องดูที่ฟิลด์ส่วนหัวถัดไปของส่วนหัวถัดไปและอื่น ๆ เช่นรายการที่เชื่อมโยงจนกว่าคุณจะไปถึงจุดสิ้นสุด หากมีน้ำหนักบรรทุกก็จะตามมา
ปัญหาคือไม่มีฟิลด์ความยาวในส่วนหัวคงที่หรือส่วนหัวส่วนขยาย คุณต้องมีตารางประเภทส่วนหัวของส่วนขยายและขนาดเพื่อให้คุณสามารถไล่รายการที่เชื่อมโยงนี้ไปจนสุด
สิ่งนี้ทำให้ฉันรู้สึกแปลก ๆ หรืออาจจะเป็นกระต่ายก็ได้ จะเกิดอะไรขึ้นหากฉันพบประเภทส่วนหัวของส่วนขยายที่ไม่รู้จัก ฉันจะทำอย่างไร? ฉันไม่รู้ความยาวของมัน ฉันเดาว่าฉันต้องโยนแพ็กเก็ตออกและบล็อกเนื่องจากในตัวกรองเน็ตที่อนุญาตให้แพ็กเก็ตผ่านจะทำให้ผู้โจมตีสามารถหลบเลี่ยงตัวกรองเน็ตได้โดยรวมประเภทส่วนหัวปลอม แต่นั่นหมายความว่าหากมีการขยายโปรโตคอลออกไปซอฟต์แวร์แยกวิเคราะห์ส่วนหัว IPv6 ทุกชิ้นที่เคยเขียนจะต้องได้รับการอัปเดตพร้อมกันหากจะใช้ส่วนขยายใหม่
ดังนั้นฉันจะแยกวิเคราะห์ส่วนหัว IPv6 ได้อย่างไรหากฉันไม่รู้ว่าส่วนขยายที่ใช้อยู่ ฉันจะข้ามส่วนหัวของส่วนขยายที่ไม่รู้จักได้อย่างไรเนื่องจากฉันไม่รู้ความยาว