Çok basit bir net filtre yazıyorum ve IPv6 başlıklarını ICMPv6 türleri, TCP / UDP bağlantı noktası numaraları vb. Gibi şeylerle eşleşecek şekilde ayrıştırmak istediğim yere geliyorum.
Bu yüzden, IPv6 paket formatını derinlemesine okuyorum ve bir çeşit ... şey ... Aslında doğru okuduğumdan emin olmak için defalarca okumak zorunda kaldım. Bana 40 baytlık sabit başlık ile başlamanız ve bir sonraki başlık alanına bakmanız gerektiğini düşünüyorum. Sonra, bir sonraki başlığın sonraki başlık alanına ve sonuna ulaşana kadar bağlantılı bir liste gibi bakmanız gerekir. Yük varsa, onu takip edecek.
Sorun, sabit başlıkta veya uzantı başlıklarında uzunluk alanı olmamasıdır. Bu bağlantılı listeyi sonuna kadar takip edebilmeniz için uzantı başlık türleri ve boyutlarının bir tablosuna sahip olmanız gerekir.
Bu bana garip, hatta muhtemelen tavşan beyinli bir tasarım olarak dikkat çekiyor. Tanınmayan bir uzantı başlık türüyle karşılaşırsam ne olur? Ben ne yaparım? Uzunluğunu bilmiyorum. Sanırım paketi atmam ve engellemem gerekiyor, çünkü bir ağ filtresinde paketin geçişine izin verilmesi, bir saldırganın sahte bir başlık türü ekleyerek ağ filtresinden kaçmasına izin verir. Ancak bu, eğer protokol genişletilirse, yeni uzantı kullanılacaksa şimdiye kadar yazılan her bir IPv6 üstbilgi ayrıştırma yazılımı parçasının aynı anda güncellenmesi gerektiği anlamına gelir.
Peki, kullandıkları uzantıları bilmiyorsam IPv6 başlıklarını nasıl ayrıştırabilirim? Uzunluğunu bilmediğim için bilinmeyen bir uzantı için başlığı nasıl atlayabilirim?