NICMx / Jool

SIIT and NAT64 for Linux
GNU General Public License v2.0
320 stars 66 forks source link

Users still need to manually turn offloads off. #186

Closed ydahhrk closed 5 years ago

ydahhrk commented 8 years ago

Alright; time to upload release debris, as usual.

From offloads:

Linux gets away with this (not asking you to tweak receive offloads when you turn your machine into a router) by having a number of hacks in the packet forwarding pipeline that deal with resegmentation. Jool attempts to do this too, but offloading is a dirty enough hack that we’re not done coding this workaround yet. For this reason, you really do need to stop offloads if your system supports them and you want to run Jool.

To be perfectly honest, this might end up being impossible. If each IP stack's resegmentation code makes assumptions regarding the way the packet was aggregated, a paged fragment might look no different than an IP fragment after the stack switch (and they have to be handled differently). In particular, defrag4 on kernels 3.13+ assemble IP fragments in the wrong placeholder, so the IPv6 "resegmenter" will receive incorrect parameters. I'd rather keep asking the user to get rid of offloads than create subtle black holes.

(BTW: that document is old already. I need to add newer kernels to the analysis.)

Especially since the workaround for this is less cluttered than it used to be, this issue has little priority.

ydahhrk commented 6 years ago

This issue has prevented Jool from being a viable implementation to at least one user due to their inability to control offloads in uplink interfaces. This is no longer a minimal priority bug.

On the bright side, the framework migration has a pretty decent chance of fixing this. Adding tag.

ydahhrk commented 5 years ago

Though I can't guarantee it completely, in theory this should have been indirectly fixed by #267.

At this point the code leading to 4.0.0 has been tested in several environments, and none of them have required offload disabling.

I will close this for now. Feel free to reopen if this shows up again.