Skip to content

inmoncorp/fix-udp6-checksum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eBPF program to rewrite the UDP-over-IPv6 checksum. For use only when you know the checksum is being computed wrong at the source. This example is hardcoded for IPFIX only (4739/udp6). For background, see Fixing Ghost Drops: How eBPF Rescued IPv6 Telemetry

To build, you will need a system running Docker:

./build.sh

The resulting .o file can be installed to a netdev on the target system like this:

./install.sh enp0s3

To confirm installation:

./check_status.sh enp0s3

To check that the kernel is not longer incrementing checksum errors:

./show_counters.sh

And to uninstall again:

./uninstall.sh enp0s3

If this workaround needs to persist across reboots then you will need to run the install command on reboot, e.g. using a systemctl unit file (not included here).

A convenient command to log the IPv6 source addresses of packets that are now making it up the stack is:

socat -b 0 -dd -u UDP6-RECV:4739 - 2>&1

About

eBPF program for recomputing UDP6 checksums

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages