OK, hier is een hint om je in de juiste richting.
De uitdaging was: "Schrijf een tcpdump / WinDUMP filter dat vast te leggen ICMPv6 Multicast Listener pakketten."
Klinkt makkelijk, toch?
Met een beetje hulp van Google zult u merken dat het "type" voor Multicast-luisteraar is 130, en de ICMPv6 type veld is de eerste byte in de header. Dus dit moet zo eenvoudig als:
tcpdump-nn-p-v-s 0 icmp6 [0] = 130
Maar als je het commando ben je weer terug te krijgen:
tcpdump: IPv6 upper-layer protocol wordt niet ondersteund door proto [x]
Met andere woorden, kunt u gebruik maken "icmp6" om alle ICMPv6 pakketten te lezen, maar je kunt het niet gebruiken om te filteren op een van de ICMPv6-header velden.
Dus we moeten een "Plan B". Erachter te komen plan B en je hebt opgelost de uitdaging. ![]()
Gerelateerde berichten:


De pragmatische oplossing is natuurlijk,
tcpdump-l-i een icmp6 | grep-E '\ B160 \ b'
of iets dergelijks.
De pcap-gebaseerde oplossing is afhankelijk van of u wilt IPv6 extensie headers of niet ondersteunen. Zo niet, dan kunt u gewoon gebruik maken van een offset van het IP-header, als je het wilt steunen, het begint steeds kwaad (kijk naar tcpdump-d ip6 protochain 58 voor een voorbeeld van het BPF achtervolgen deze headers!), Maar nogmaals, icmp6 niet echt lijkt aan die beide ondersteunen. Is er een oplossing die niet gepaard gaat schrijven van uw eigen BPF, en ondersteunt achtervolgen het protocol ketens?
/ * Steinar * /
Overeengekomen grep is de gemakkelijkste implementatie. Net maakt het moeilijker om pcap bestanden op te slaan.
Naar RFC 2710 citeren: "Alle MLD berichten beschreven in dit document worden verzonden met een link-local IPv6-adres Source, een IPv6-Hop Limit van 1, en een IPv6-router Alert optie [RTR-ALERT] in een Hop-by-Hop Options header. "
Dus je hebt wel een uitbreiding header te behandelen. Als voor dat u de headers te jagen, tot nu toe heb ik alleen gezien multicast-luisteraar pakketjes met de hop-by-hop header. Hoewel ik niets ziet in 2710 het verbieden van het gebruik van extra headers.
Men kan zich voorstellen IPsec mogelijkheden, maar het klinkt een beetje duister voor de MLD ...
Ik denk dat als je aanneemt dat er alleen is de RTR-alert optie, het is een vaste lengte en kon je gewoon gebruik maken van de offset. Ik heb geen idee of je daadwerkelijk kunt iteratie of indirectie doen in tekstuele pcap filters.
/ * Steinar * /
Hallo, is deze functie niet ondersteund voor de bovenste lagen.
Ik weet niet of dit werkt als volgende header zal worden opgenomen.
Dus als je wilt icmp6 packtes filteren op soort is en je weet dat IPv6 header is 20 bytes kon je gewoon ip6 [21] & 130! = 0. Betekent in de eerste byte na de IPv6 header, en er moet worden ICMPv6 header