[<prev] [next>] [day] [month] [year] [list]
Message-ID: <48F70B73.2080802@nrc.co.nz>
Date: Thu, 16 Oct 2008 22:37:55 +1300
From: Nick 'Zaf' Clifford <zaf@....co.nz>
To: netdev@...r.kernel.org
Subject: PMTU with SA
If this isn't the correct list, please let me know, and please CC me on
replies as I'm not subscribed. I will try to read the archives for a few
days in case I miss something.
I have an IPSEC transport mode link set up between a (local) Linux
router and a remote node. All works fine normally, and always from on
the router itself.
The issue comes with clients behind the router, attempting to access the
remote node. They experience an MTU issue with large packets. The linux
router does not send the icmp frag needed messages for DF packets that
are >1442 bytes and <1492 bytes. (The outgoing link's MTU is 1492). (If
the packets are >1492, then it correctly generates and returns a frag
needed).
In the linux router's kernel log, it is logging "pmtu discovery on SA
ESP/xxxx/xxxx".
I think the issue appears to be that the ICMP frag needed message is not
generated, or not sent back out to the client behind the Linux router.
When attempting to send packets ON the linux router, it correctly
handles it (ping returns "sendmsg: Message too long").
To clarify the network layout, there is the Linux router, with a IPSEC
transport mode NETKEY encryption to a particular destination. Then there
are NAT'd clients behind the router, who wish to connect to this
destination. They don't know, nor care that the connection goes via the
Internet wrapped in transport mode encryption.
A few examples:
On the internal client:
//Works
$ ping -M do -s 1414 203.109.246.49 -c 1 -n
PING (203.109.246.49) 1414(1442) bytes of data.
1422 bytes from 203.109.246.49 icmp_seq=1 ttl=53 time=90.6 ms
--- qvr.co.nz ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 90.661/90.661/90.661/0.000 ms
//Doesn't
$ ping -M do -s 1415 203.109.246.49 -c 1
PING qvr.co.nz (203.109.246.49) 1415(1443) bytes of data.
--- qvr.co.nz ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
On the router (eth1 is the internal interface, hence why its not
encrypted, eth0 is rather boring):
$ tcpdump -i eth1 -n icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
22:10:01.986871 IP 10.42.0.11 > 203.109.246.49: ICMP echo request, id
10090, seq 1, length 1422
22:10:02.073945 IP 203.109.246.49 > 10.42.0.11: ICMP echo reply, id
10090, seq 1, length 1422
22:10:12.540799 IP 10.42.0.11 > 203.109.246.49: ICMP echo request, id
53609, seq 1, length 1423
^C
$ tail /var/log/kern.log -n 1
Oct 16 22:10:12 cerberus kernel: [4903404.569127] pmtu discovery on SA
ESP/0d317d2d/cb6df631
For further info if needed:
Tunnels are set up using openswan in transport mode, using NETKEY
OpenSwan 2.4.9
Running 2.6.26 stock standard.
# ip xfrm state
src 203.109.246.49 dst 121.98.166.152
proto esp spi 0x192bd540 reqid 16385 mode transport
replay-window 32
auth hmac(sha1) 0x4ccf..........
enc cbc(aes) 0x480c.........
sel src 0.0.0.0/0 dst 0.0.0.0/0
src 121.98.166.152 dst 203.109.246.49
proto esp spi 0xc32a08e0 reqid 16385 mode transport
replay-window 32
auth hmac(sha1) 0x1cf8............
enc cbc(aes) 0xdbb1..........
sel src 0.0.0.0/0 dst 0.0.0.0/0
src 203.109.246.49 dst 121.98.166.152
proto esp spi 0xf0fb36d4 reqid 16385 mode transport
replay-window 32
auth hmac(sha1) 0x1c47.......
enc cbc(aes) 0x499............
sel src 0.0.0.0/0 dst 0.0.0.0/0
src 121.98.166.152 dst 203.109.246.49
proto esp spi 0x0d317d2d reqid 16385 mode transport
replay-window 32
auth hmac(sha1) 0x5fbd..........
enc cbc(aes) 0x1564............
sel src 0.0.0.0/0 dst 0.0.0.0/0
I can also give full network diagrams, etc, if required.
Thanks,
Nick
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists