Opened 4 months ago

#2793 new defect

Mitigate UDP MTU mismatches

Reported by: jogger Owned by: zzz
Priority: major Milestone: undecided
Component: router/transport Version: 0.9.47
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

When sitting on a line with MTU lower than I2P defaults, in my tests UDP traffic was severely impacted because of the far end setting our MTU too high. If the other end sends packets too large, IPv6 drops them because fragmentation is not supported and IPv4 UDP fragments may not properly travel along the path and across firewalls.

The effect is easy to see: Set MTU below defaults and see 100s of peers sending larger packets to us on /peers.

I suggest the following:

  • When creating our UDP address, go down to the interfaces and see, if the IP address we are going to publish is registered on one of them. If yes, use that MTU if lower for our RouterAddress? and our outgoing traffic.
  • In the Establishment Manager use setHisMTU(1280) in places where we currently are unable to determine the remote MTU, instead of using defaults. That MTU can be adjusted afterwards if a RouterAddress? with higher MTU arrives or we receive packets larger than the current value.
  • When creating our UDP address also always publish our IPv4 MTU. This way one could change the static in source in one or two years time if necessary.

Subtickets

Change History (0)

Note: See TracTickets for help on using tickets.