[vpn-help] Require help with troubleshooting samba shares over ipsec

Matthew Grooms mgrooms at shrew.net
Tue Aug 31 01:36:39 CDT 2010


On 8/29/2010 7:08 PM, Brett Morrison wrote:
> Hi Matthew
> Have given this another go from home on the weekend, appears that MTU
> may be the issue.  The 1500 byte ping does not work, dropping it below
> 1000 works though, so I am assuming the MTU is set too high on the
> server?
> I'll bounce this off of our app server hosting guys.

Hi Brett,

MTU problems are sometimes difficult to track down when using IPsec 
connections. The problem is that ESP or UDP/ESP will add headers to 
packets during encryption/encapsulation. This causes packets to be 
fragmented if the host uses a full 1500 byte MTU which is the default.

For TCP sessions, this isn't much of a problem as the MSS ( Maximum 
Segment Size ) is negotiated between the two connection endpoints. The 
VPN client sets its virtual adatper MTU to 1380 by default so that the 
MSS value used is lower. This allows final packets to fit in a standard 
Ethernet frame even with the additional IP headers. Protocols that use 
UDP ( such as CIFS/SMB ) can be more troublesome as there is no analog 
to a TCP MSS. Instead, the adapter MTU is used and you end up with full 
1500 byte packets being sent from a server back to the VPN client. A VPN 
gateway is typically smart enough to handle this without too much 
headache. It just fragments the packet ( either before or after IPsec 
processing ) and then forwards them to the peer. If you rolled your own 
gateway ( using Linux/BSD and an open source IKE daemon ), special care 
needs to be taken to ensure the outbound packet fragments will traverse 
the tunnel back to the client. If a DF bit is set in a packet that 
should be encapsulated, the gateway can still cope. It will either ...

A) Ignore the DF bit and fragment the packet anyway.
B) Send an ICMP 'Can't Fragment' message back to the server ( PMTU ).

If the gateway is also a firewall, it needs to make sure that its not 
filtering ICMP messages back to the server so that it will know to lower 
its packet size for (B). Otherwise, they will never reach the client. 
Some firewalls also need special rule modifiers so that it knows to 
match fragments as a whole, or they will be dropped. If you don't have 
control over the VPN gateway, you can try to lower the MTU on the server 
itself ( at least as a test case ).

Hope this helps,

-Matthew



More information about the vpn-help mailing list