PMTU discovery mechanism on closed UDP socket, no entry added

From: Oskar JagodziÅski
Date: Tue Mar 13 2018 - 11:07:35 EST


Hi,

When I send UDP packet (too big for whole path) and close socket right
after, ICMP Fragmentation Needed packet is ignored (?) and no entry
regarding path MTU is created. When process waits before closing
socket (about 1s in my case) entry about path MTU is added to routing
table.
The result is that when I send single big (bigger than minimal MTU in
path) UDP packet very rarely none of them reaches destination. When
there is continuous stream of packets and there is always open socket
for this destination IP everything (regarding path MTU discovery
mechanism) works as expected.

Is there any way to change this behaviour? Or is this some kind of
DDoS protection mechanism? I am aware of timeout of table MTU entries
but "very rarely" in my case means more often than timeout value.

Environment:
- Ubuntu 14.04.5 LTS, kernel 4.4.0-104-generic #127~14.04.1-Ubuntu
- Intel(R) 2P X520/2P I350 rNDC | Intel Corporation 82599ES
10-Gigabit, driver=ixgbe driverversion=4.2.1-k, 18.3.6 (firmware
driver from Dell)

Code used for testing and my network architecture:
- https://pastebin.com/raw/ECY3Xxtg
- https://i.imgur.com/T7SpDyP.png

--
Oskar Jagodzinski