yarrp icon indicating copy to clipboard operation
yarrp copied to clipboard

yarrp sends ethernet headers on point-to-point interfaces

Open pyropeter opened this issue 5 years ago • 3 comments

I tested this with a Wireguard interface on Linux.

$ yarrp -v -o test.yrp -I wg-as206226 -t ICMP6 <target>
>> yarrp v0.7
>> Probing begins.
>> Waiting 60s for outstanding replies...
>> Listener: timeout 1/10
>> Listener: timeout 2/10
>> Listener: timeout 3/10

I built yarrp from git, commit 91bcd8892e9c4a043460ddfece42f87d9947f4fe. I used tcpdump to confirm that yarrp does indeed send Ethernet headers even though the interface does not use any link-layer protocol.

pyropeter avatar Jan 28 '20 11:01 pyropeter

Yep, yarrp for IPv6 has to craft link layer frames (to perform the header manipulation), and assumes an ethernet link layer. We'll add this as a feature request, but low priority (unless you have a pressing need).

robertbeverly avatar Feb 20 '20 22:02 robertbeverly

I do not have a pressing need at the moment, since I have written a small IPv6 topology prober in the mean time, containing just the few features I need. In the process, I discovered SOCK_RAW sockets. Why doesn't yarrp use them? Imho, they would simplify the code considerably, since they make use of the kernel code for link layer handling.

By the way, thanks for the papers you (co)authored, which have been an interesting read, and also thanks for yarrp, which has been insightful even though I didn't end up using it. (I'm currently writing my masters thesis, which touches on IPv6 topology discovery in the context of ISP networks.)

pyropeter avatar Feb 21 '20 00:02 pyropeter

Yarrp uses raw sockets in IPv4. There is no support for complete packets (inclusive of headers) in IPv6; see RFC3542 section 3: "Should an application need access to the complete IPv6 packet, some other technique, such as the datalink interfaces BPF or DLPI, must be used."

We're actively involved in IPv6 topology discovery, so would be interested to see any output of your research or thesis if/when you can share.

robertbeverly avatar Feb 22 '20 16:02 robertbeverly