You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you run ndppd to listen on a tun interface created by openvpn or a wireguard wg interface, the data sent to the raw socket doesn't contain an ethernet header.
As a result, ndppd's filters drop the received neighbor solicitation, and even if you tweak the filters, the hard-coded skipping of an ethernet header from the raw data causes the packet decode to produce garbage.
I don't know if this is a deliberate design decision, but it doesn't seem to be documented anywhere and might save others a bit of time to know.
I've reproduced this behaviour on several versions of linux 5.x kernels.
The text was updated successfully, but these errors were encountered:
I've done some more investigating and found what I think is a fix for the issue. If the pfd socket is opened as a SOCK_DGRAM rather than SOCK_RAW, the ethernet header is always stripped out. By adjusting the offsets in the filters and parsers accordingly, the result
seems to work properly on both physical and virtual interfaces. I haven't extensively tested it, but I've forked the repo and put the
relevant changes in at bilkusg/ndppd for anyone interested in trying it.
If you run ndppd to listen on a tun interface created by openvpn or a wireguard wg interface, the data sent to the raw socket doesn't contain an ethernet header.
As a result, ndppd's filters drop the received neighbor solicitation, and even if you tweak the filters, the hard-coded skipping of an ethernet header from the raw data causes the packet decode to produce garbage.
I don't know if this is a deliberate design decision, but it doesn't seem to be documented anywhere and might save others a bit of time to know.
I've reproduced this behaviour on several versions of linux 5.x kernels.
The text was updated successfully, but these errors were encountered: