> Or maybe I'm mistaken and I shall set --link-mtu not to the value
> reported by 'ip a l dev eth0' (i.e. max IP packet size), but
> to the max *UDP* packet size? 1500-28=1472, then. Not every user
> knows IP overhead size. I don't. I looked at tcpdump to figure out.
"Double frag" bug does not happen for UDP if I use --tun-mtu 1435 or lower.
With
openvpn \
--secret "$PWD/key" \
--dev tun \
--proto udp \
--port 8002 \
--local 1.1.4.1 \
--remote 1.1.4.2 \
--ifconfig 1.1.5.1 1.1.5.2 \
--tun-mtu 1434 \
--ping 30 \
--ping-exit 66 \
--verb 3 \
--mute 20:
UDP flood (dd if=/dev/zero bs=1M | nc -nuvvv -w1 1.1.5.6 34564):
...
20:44:23.376801 IP (tos 0x0, ttl 64, id 5657, offset 0, flags [DF], length:
1496) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1468
20:44:23.376907 IP (tos 0x0, ttl 64, id 5658, offset 0, flags [DF], length:
1248) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1220
20:44:23.378234 IP (tos 0x0, ttl 64, id 5659, offset 0, flags [DF], length:
1496) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1468
20:44:23.378380 IP (tos 0x0, ttl 64, id 5660, offset 0, flags [DF], length:
1496) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1468
20:44:23.378520 IP (tos 0x0, ttl 64, id 5661, offset 0, flags [DF], length:
1496) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1468
20:44:23.378659 IP (tos 0x0, ttl 64, id 5662, offset 0, flags [DF], length:
1496) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1468
20:44:23.378798 IP (tos 0x0, ttl 64, id 5663, offset 0, flags [DF], length:
1496) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1468
20:44:23.378888 IP (tos 0x0, ttl 64, id 5664, offset 0, flags [DF], length:
1248) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1220
...
Ok.
TCP flood (e.g. HTTP download):
...
20:41:55.514646 IP (tos 0x0, ttl 64, id 5293, offset 0, flags [DF], length:
1472) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1444
20:41:55.514786 IP (tos 0x0, ttl 64, id 5294, offset 0, flags [DF], length:
1472) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1444
20:41:55.514923 IP (tos 0x0, ttl 64, id 5295, offset 0, flags [DF], length:
1472) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1444
20:41:55.515049 IP (tos 0x0, ttl 64, id 5296, offset 0, flags [DF], length:
1472) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1444
20:41:55.515207 IP (tos 0x0, ttl 64, id 5297, offset 0, flags [DF], length:
1472) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1444
20:41:55.515341 IP (tos 0x0, ttl 64, id 5298, offset 0, flags [DF], length:
1472) 1.1.4.1.8006 > 1.1.4.6.8006: [udp sum ok] UDP, length: 1444
...
^^^^
Something is wrong here.
#ip a l eth0 tun0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:b0:e1:17 brd ff:ff:ff:ff:ff:ff
inet 1.1.4.1/24 brd 1.1.4.255 scope global ifi
49: tun0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1434 qdisc pfifo_fast qlen 100
link/ppp
inet 1.1.5.5 peer 1.1.5.6/32 scope global tun0
openvpn log:
Sun May 16 20:55:53 2004 OpenVPN 2.0_beta1 i386-pc-linux-gnu [SSL] [LZO] built
on May 12 2004
Sun May 16 20:55:53 2004 Static Encrypt: Cipher 'BF-CBC' initialized with 128
bit key
Sun May 16 20:55:53 2004 Static Encrypt: Using 160 bit message hash 'SHA1' for
HMAC authentication
Sun May 16 20:55:53 2004 Static Decrypt: Cipher 'BF-CBC' initialized with 128
bit key
Sun May 16 20:55:53 2004 Static Decrypt: Using 160 bit message hash 'SHA1' for
HMAC authentication
Sun May 16 20:55:53 2004 WARNING: normally if you use --mssfix and/or
--fragment, you should also set --tun-mtu 1500 (currently it is 1434)
Sun May 16 20:55:53 2004 TUN/TAP device tun1 opened
Sun May 16 20:55:53 2004 /bin/ifconfig tun1 1.1.5.1 pointopoint 1.1.5.2 mtu 1434
Sun May 16 20:55:53 2004 Data Channel MTU parms [ L:1478 D:1450 EF:44 EB:0 ET:0
EL:0 ]
Sun May 16 20:55:53 2004 Local Options hash (VER=V3): '5194cd41'
Sun May 16 20:55:53 2004 Expected Remote Options hash (VER=V3): 'e341fa03'
Sun May 16 20:55:53 2004 UDPv4 link local (bound): 1.1.4.1:8002
Sun May 16 20:55:53 2004 UDPv4 link remote: 1.1.4.2:8002
Sun May 16 20:55:58 2004 Peer Connection Initiated with 1.1.4.2:8002
--
vda