<p><font face="courier new,courier">Hi All,<br /><br />I have finally managed to configure an almost stable site to site VPN between a cisco router and openswan:<br /><br />openswan 172.24.99.0/24===202.89.xxx.xxx...203.97.xxx.xxx===192.168.2.0/24 cisco 871<br /><br />500 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 732s; newest IPSEC; eroute owner<br /><a href="mailto:esp.41aebcec@203.97.xxx.xxx" target="_blank">esp.41aebcec@203.97.xxx.xxx</a> <a href="mailto:esp.8d7c9d77@202.89.xxx.xxx" target="_blank">esp.8d7c9d77@202.89.xxx.xxx</a> <a href="mailto:tun.0@203.97.xxx.xxx" target="_blank">tun.0@203.97.xxx.xxx</a> <a href="mailto:tun.0@202.89.xxx.xxx" target="_blank">tun.0@202.89.xxx.xxx</a><br />500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 33551s; newest ISAKMP; lastdpd=18s(seq in:10973 out:0)<br /><br />Relevant configs attached...<br /></font></p><p><font face="courier new,courier"><br />The problem is that some packets which are set to not fragment but which when encrypted are bigger than the MTU get dropped. ie:<br /><br />from host in the cisco protected lan 192.168.2.254 (PROBLEM!):<br /><br /># ping -M do 172.24.99.253 -c 2 -s 1415  &lt;------------------ Packet smaller than 1443 MTU OK<br />PING 172.24.99.253 (172.24.99.253) 1415(1443) bytes of data.<br />1423 bytes from 172.24.99.253: icmp_seq=1 ttl=62 time=55.8 ms<br />1423 bytes from 172.24.99.253: icmp_seq=2 ttl=62 time=44.6 ms<p>--- 172.24.99.253 ping statistics ---<br />2 packets transmitted, 2 received, 0% packet loss, time 1003ms<br />rtt min/avg/max/mdev = 44.615/50.251/55.887/5.636 ms<br /><br /># ping -M do 172.24.99.253 -c 2 -s 1416  &lt;------------------ Packet larger than 1443 MTU but smaller than interface 1500 MTU Dropped no error<br />PING 172.24.99.253 (172.24.99.253) 1416(1444) bytes of data.</p><p>--- 172.24.99.253 ping statistics ---<br />2 packets transmitted, 0 received, 100% packet loss, time 1001ms</p><p><br /># ping -M do 172.24.99.253 -c 2 -s 1472  &lt;------------------ Packet larger than 1443 MTU but smaller than interface 1500 MTU Dropped no error<br />PING 172.24.99.253 (172.24.99.253) 1472(1500) bytes of data.</p><p>--- 172.24.99.253 ping statistics ---<br />2 packets transmitted, 0 received, 100% packet loss, time 1009ms</p><p><br /># ping -M do 172.24.99.253 -c 2 -s 1473  &lt;------------------ Packet larger than interface 1500 MTU error reported correctly (sort of)<br />PING 172.24.99.253 (172.24.99.253) 1473(1501) bytes of data.<br />From 192.168.2.254 icmp_seq=1 Frag needed and DF set (mtu = 1500)<br />From 192.168.2.254 icmp_seq=1 Frag needed and DF set (mtu = 1500)</p><p>--- 172.24.99.253 ping statistics ---<br />0 packets transmitted, 0 received, +2 errors</p><p><br />As you can see, the middle two should have failed and reported Frag needed and DF set (mtu = 1443), and the last one shows why, (mtu=1500).</p><p><br />By changing the VPN route MTU on the openswan box all other pings are ok (this was set before the test above):<br /><br />ip route change 192.168.2.0/24 dev eth0 scope link src 172.24.99.1 mtu 1443<br /><br />from openswan box (correct):<br /><br /># ping -c 2 -I 172.24.99.1 -M do 192.168.2.1 -s 1415 <br />PING 192.168.2.1 (192.168.2.1) from 172.24.99.1 : 1415(1443) bytes of data.<br />1423 bytes from 192.168.2.1: icmp_seq=1 ttl=255 time=74.0 ms<br />1423 bytes from 192.168.2.1: icmp_seq=2 ttl=255 time=65.1 ms</p></font></p><p><font face="courier new,courier"><br /># ping -c 2 -I 172.24.99.1 -M do 192.168.2.1 -s 1416 <br />PING 192.168.2.1 (192.168.2.1) from 172.24.99.1 : 1416(1444) bytes of data.<br />From 172.24.99.1 icmp_seq=1 Frag needed and DF set (mtu = 1443)<br />From 172.24.99.1 icmp_seq=1 Frag needed and DF set (mtu = 1443)</font></p><font face="courier new,courier"><p><br />from a host in the openswan protected lan 172.24.99.253 (correct):<br /><br /># ping -c 2 -M do 192.168.2.1 -s 1415<br />PING 192.168.2.1 (192.168.2.1) 1415(1443) bytes of data.<br />1423 bytes from 192.168.2.1: icmp_seq=1 ttl=254 time=43.9 ms<br />1423 bytes from 192.168.2.1: icmp_seq=2 ttl=254 time=30.1 ms</p><p><br /># ping -c 2 -M do 192.168.2.1 -s 1416<br />PING 192.168.2.1 (192.168.2.1) 1416(1444) bytes of data.<br />From 172.24.99.253 icmp_seq=1 Frag needed and DF set (mtu = 1443)<br />From 172.24.99.253 icmp_seq=1 Frag needed and DF set (mtu = 1443)<br /><br />from cisco router (correct):<br /><br />#ping 172.24.99.253 source 192.168.2.1 df-bit repeat 2 size 1443</p><p>Sending 2, 1443-byte ICMP Echos to 172.24.99.253, timeout is 2 seconds:<br />Packet sent with a source address of 192.168.2.1<br />Packet sent with the DF bit set<br />!!<br />015032: .Jul 31 09:11:24.564 Napier: ICMP: echo reply rcvd, src 172.24.99.253, dst 192.168.2.1<br />015033: .Jul 31 09:11:24.592 Napier: ICMP: echo reply rcvd, src 172.24.99.253, dst 192.168.2.1<br />Success rate is 100 percent (2/2), round-trip min/avg/max = 28/30/32 ms<br /><br />#ping 172.24.99.253 source 192.168.2.1 df-bit repeat 2 size 1444</p><p>Sending 2, 1444-byte ICMP Echos to 172.24.99.253, timeout is 2 seconds:<br />Packet sent with a source address of 192.168.2.1<br />Packet sent with the DF bit set<br />..<br />015035: .Jul 31 09:11:27.495 Napier: CRYPTO_ENGINE: locally-sourced pkt w/DF bit set is too big,ip-&gt;tl=1444, mtu=1443<br />015037: .Jul 31 09:11:29.495 Napier: CRYPTO_ENGINE: locally-sourced pkt w/DF bit set is too big,ip-&gt;tl=1444, mtu=1443<br />Success rate is 0 percent (0/2)<br /><br />ping 172.24.99.253 source 192.168.2.1 df-bit repeat 2 size 1500</p><p>Sending 2, 1500-byte ICMP Echos to 172.24.99.253, timeout is 2 seconds:<br />Packet sent with a source address of 192.168.2.1<br />Packet sent with the DF bit set<br />..<br />015362: .Jul 31 09:39:05.306 Napier: CRYPTO_ENGINE: locally-sourced pkt w/DF bit set is too big,ip-&gt;tl=1502, mtu=1443<br />015363: .Jul 31 09:39:07.306 Napier: CRYPTO_ENGINE: locally-sourced pkt w/DF bit set is too big,ip-&gt;tl=1502, mtu=1443<br />Success rate is 0 percent (0/2)<br /><br />I don't seem to be able to change the MTU on the VPN route on the cisco, and the documentation suggests it determines it automatically. certainly when I ping from the cisco, it behaves correctly.<br /><br />I could reduce the MTU on the interface of the host in the cisco lan, and this does resolve the problem, but I don't want to do this on all the protected systems, especially when it would apply to their unencrypted traffic too.<br /><br />I am not sure where to look next, and any help would be greatly appreciated.<br /><br />Many thanks,<br /><br />Brett</p></font><br>