Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I've looked around for a way to change the MTU of interfaces on XenServer 6.2, but can't find anything that works for me ...

One method spoke about changing the ifcnfg-intX files in the /etc/sysconfig/network-scripts directory, but the files just aren't there ... The only one there is the ifcnfg-lo file. Do I just need to create a file for each interface?

Then I thought, I'll just make a startup script:

#Saved as /etc/init.d/
#Change mtu of interfaces
ifconfig xenbr0 mtu 1454
ifconfig xenbr1 mtu 1454
ifconfig eth0 mtu 1454
ifconfig eth1 mtu 1454

This script works when ran in console.

So, to make it run at start:

ln -s /etc/init.d/ /etc/rc3.d/S99mtuchange

But, it wont run ...

The reason I need to change the MTU, is for some strange reason, XenCenter can't connect with the MTU being the default of 1500, it has to be 1454

Anyone know what I'm doing wrong?

share|improve this question
It's on XenServer as I explained in the question ... Yes, the script and commands run on their own, as I explained in the question. Nope, there's no errors, and I've got it set to S99 in rc3.d so that it runs last, as I ... Oh nevermind – Stretch May 21 '14 at 18:08
Oops sorry for the silly question, I'm not familiar with XenServer and I thought it only was a hypervisor rather than a complete distribution. Do you have a file such as /etc/network/interfaces where you defined the interface's IPs ? Can you show what it looks like ? – user186340 May 21 '14 at 18:14
No worries ... XenServer doesn't have the interfaces file ... It doesn't even have the /etc/network dir Lol ... I've been looking around for some documentation on how to edit network configurations, but no luck so far :( ... The only way I've found to change the config, is either with XenCenter (Which doesn't let you change the MTU) or through xsconsole, which also doesn't let you change it – Stretch May 21 '14 at 18:18
Here's one more try : xe vif-param-set uuid=<vif_uuid> other-config:mtu=1454 (I believe "vif-uuid" stands for the UUID of the virtual interface, and I'm not sure if that will persist across reboots of the host). – user186340 May 21 '14 at 18:31
@Stretch Have the script save the output of ifconfig -a somewhere so you know what was the state right after those three ifconfig commands? – kasperd May 21 '14 at 19:16
up vote 2 down vote accepted

There's some discussion on the Xen wiki of how to do this: Xen wiki network performance page. In short:

Enabling Jumbo Frames

Suppose eth6 and xenbr6 are the device and the bridge corresponding to the 10 GiB/sec connection used.

Shut down user domains:

VMs=$(xe vm-list is-control-domain=false params=uuid --minimal | sed 's/,/ /g')
for uuid in $VMs; do xe vm-shutdown uuid=$uuid; done`

Set network MTU to 9000, and re-plug relevant PIFs:

net_uuid=`xe network-list bridge=xenbr6 params=uuid --minimal`
xe network-param-set uuid=$net_uuid MTU=9000
PIFs=$(xe pif-list network-uuid=$net_uuid --minimal | sed 's/,/ /g')
for uuid in $PIFs; do xe pif-unplug uuid=$uuid; xe pif-plug uuid=$uuid; done

Start user domains (you might want to make sure that VMs are started one after another to avoid potential VIF static allocation problems):

VMs=$(xe vm-list is-control-domain=false params=uuid --minimal | sed 's/,/ /g')
for uuid in $VMs; do xe vm-start uuid=$uuid; done

Set up the connections you will use inside the user domains to use MTU 9000. For Linux VMs, this is done with:

ETH=eth1   # the user domain connection you are concerned with
ifconfig $ETH mtu 9000 up


xe vif-list network-uuid=$net_uuid params=MTU --minimal
share|improve this answer
I believe this site can describe what I think about this answer – Stretch May 21 '14 at 20:04
Thanks dude ... Specifically, what I used from your answer was the net_uuid=`xe network-list bridge=xenbr6 params=uuid --minimal` xe network-param-set uuid=$net_uuid MTU=9000 commands – Stretch May 21 '14 at 20:05
:D Glad to help. A while ago Xen didn't support jumbo frames at all, so I actually came to tell you you were SOL, but things evidently changed. – Bill Weiss May 22 '14 at 0:26

When faced with MTU related problems, it may be more effective to modify the MSS rather than tweaking MTU of individual links. It looks like that platform is based on Linux, so iptables would be available. This couple of iptables rules could reduce the MSS on SYN packets in both directions and thus dodge most of the MTU issues.

iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1220
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1220

If using this set of rules instead of changing the MTU, you can permanently add them to your iptables configuration.

share|improve this answer
Although this may be one way of doing it, I was rather looking for a way to change it per link ... And yes, it is Linux (CentOS) based – Stretch May 21 '14 at 18:23
@Stretch iptables rules can also be applied per link. – kasperd May 21 '14 at 18:28
Yeah ... What I meant was, is to have the network configuration changed rather than using iptables – Stretch May 21 '14 at 18:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.