XenServer 6.2 mudando o mtu

2

Então eu procurei uma maneira de mudar o MTU de interfaces no XenServer 6.2, mas não consigo encontrar nada que funcione para mim ...

Um método falou sobre a alteração dos arquivos ifcnfg-intX no diretório /etc/sysconfig/network-scripts , mas os arquivos simplesmente não estão lá ... O único deles é o arquivo ifcnfg-lo . Eu só preciso criar um arquivo para cada interface?

Então, pensei em criar um script de inicialização:

#!/bin/bash
#Saved as /etc/init.d/mtuchange.sh
#Change mtu of interfaces
ifconfig xenbr0 mtu 1454
ifconfig xenbr1 mtu 1454
ifconfig eth0 mtu 1454
ifconfig eth1 mtu 1454

Este script funciona quando executado no console.

Então, para que seja executado no começo:

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

Mas, não vai correr ...

A razão pela qual eu preciso mudar o MTU, é por alguma razão estranha, o XenCenter não pode se conectar com o MTU sendo o padrão de 1500, ele tem que ser 1454

Alguém sabe o que estou fazendo errado?

    
por Just Lucky Really 19.05.2014 / 00:34

2 respostas

2

Há alguma discussão no wiki do Xen sobre como fazer isso: Página de desempenho da rede wiki Xen . Resumindo:

Ativando Jumbo Frames

Suponha que eth6 e xenbr6 sejam o dispositivo e a ponte correspondente à conexão de 10 GiB / seg usada.

Encerre domínios de usuários:

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'

Defina o MTU da rede como 9000 e reconecte os PIFs relevantes:

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

Inicie os domínios do usuário (talvez você queira garantir que as VMs sejam iniciadas uma após a outra para evitar possíveis problemas de alocação estática de VIF):

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

Configure as conexões que você usará dentro dos domínios de usuário para usar o MTU 9000. Para as VMs do Linux, isso é feito com:

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

Verificando:

xe vif-list network-uuid=$net_uuid params=MTU --minimal
    
por 21.05.2014 / 21:53
0

Quando se deparar com problemas relacionados ao MTU, pode ser mais eficaz modificar o MSS em vez de ajustar o MTU de links individuais. Parece que essa plataforma é baseada no Linux, então o iptables estaria disponível. Este par de regras iptables poderia reduzir o MSS em pacotes SYN em ambas as direções e, assim, evitar a maioria dos problemas de MTU.

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

Se você usar este conjunto de regras em vez de alterar o MTU, você poderá adicioná-lo permanentemente à sua configuração do iptables.

    
por 21.05.2014 / 20:11