feat(traceroute6): goscapy v6 probes and reply matching (#43) - #51
Merged
Conversation
Add hop aggregation, the Tracer probe builder, and the Sr1 reply matcher for traceroute6. buildProbe constructs IPv6 + ICMPv6 Echo / UDP / TCP SYN via goscapy layers, setting Hop Limit per hop and Traffic Class via MakeIPv6VerTCFL. The matcher accepts ICMPv6 Echo Reply (129), Time Exceeded (3) and Dest Unreachable (1), parsing the embedded original 40-byte IPv6 header (inner dst at [24:40]) past the 4-byte ICMPv6 error preamble to confirm the quoted probe is ours. Closes #43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
traceroute6/hop.go(ProbeResult/Hop/Result, RTT stats, addr dedup, reverse-DNS, enrichment) adapted for IPv6/ICMPv6 layer names.traceroute6/tracer.go: Tracer + concurrent run loop,buildProbeconstructing IPv6 + ICMPv6 Echo / UDP / TCP SYN via goscapy layers (Hop Limit per hop, Traffic Class viaMakeIPv6VerTCFL), and the Sr1buildMatcher/matchEmbeddedreply matcher.Test plan
go test ./traceroute6/— matcher accepts Time Exceeded / Dest Unreachable quoting our probe, rejects a different destination, Echo Reply identity guard, buildProbe per-protocol + port overrides.go vet ./traceroute6/,go build ./...,gofmt -lclean.Closes #43