Perforce Public Knowledge Base - MTU variable
Reset Search
 

 

Article

MTU variable

« Go Back

Information

 
Problem
Syncs and other operations might hang because of the way the Maximum Transmission Unit (MTU) variable is set on firewalls and routers.

Solution
Part of this problem stems from the fact that client endpoints will sometimes send larger packets than the intermediate networks can accommodate. As a result, routers, firewalls, and other devices will be forced to fragment the packets into smaller pieces in order to transmit the clients' data to and fro. Additionally, intermediate VPN software and devices will often encapsulate client data in another encrypted envelope, which could itself push the total packet size larger than what the network can accommodate.

Unfortunately, as a result of poor IP and TCP implementations, common attacks involve building specially-fragmented packets and sending them directly from the source to the client. Many clients are incapable of reliably reassembling these packets upon reception, and this is a serious vector of attack for system crackers. Many types of firewalls and VPNs will simply drop fragmented packets on the floor, or will refuse to fragment packets and still drop them on the floor.

Perforce will make heavy use of the network and will often force the client to send packets as large as those packets are allowed to be. This, combined with poor VPN and firewall implementations, means that sometimes administrators will need to reconfigure VPNs to pass larger packets without dropping them.

Changing the MTU on a Windows system

The following Microsoft Support article describes how to change the MTU on a Windows system:

http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/58792.mspx?mfr=true

For VPN and PPP:

http://support.microsoft.com/kb/826159


Changing the MTU on a Linux System

On Linux, use the 'ifconfig' command to change the MTU of a given interface.  For example, if you wanted to change the MTU on eth0 (the default primary interface) to 1492, issue the following command as root:

# ifconfig eth0 mtu 1492

This command doesn't stick between reboots, so it needs to be placed in either the initial network configuration script or in a local start script that runs after the network comes up.






Related Links

Feedback

 

Was this article helpful?


   

Feedback

Please tell us how we can make this article more useful.

Characters Remaining: 255