首页 > 代码库 > Neutron GRE模式要注意的问题

Neutron GRE模式要注意的问题

GRE模式下,如果MTU和Offloading配置不当,会严重降低网络性能(https://ask.openstack.org/en/question/6140/quantum-neutron-gre-slow-performance/)。

RDO推荐以下的配置(http://openstack.redhat.com/Using_GRE_tenant_networks):

MTU

When using GRE, set the MTU in the Guest to 1400, this will allow for the GRE header and no packet fragmentation.

Hint: if you want to check if this answer will solve your issue, execute ifconfig eth0 mtu 1400 on the instance and check the speed.

Edit the file: /etc/quantum/dhcp_agent.ini and set:

dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf

Create and edit file /etc/neutron/dnsmasq-neutron.conf and put this inside:

dhcp-option-force=26,1400

Restart DHCP:

service neutron-dhcp-agent restart

And reboot your instance. Verify that your MTU is 1400:

 root@web:~# ifconfig eth0      Link encap:Ethernet  HWaddr fa:16:3e:f0:6a:9f             inet addr:10.1.0.2  Bcast:10.1.0.255  Mask:255.255.255.0           inet6 addr: fe80::f816:3eff:fef0:6a9f/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  **MTU:1400**  Metric:1           RX packets:934855 errors:0 dropped:0 overruns:0 frame:0           TX packets:207741 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000            RX bytes:1210256390 (1.2 GB)  TX bytes:226172592 (226.1 MB)

事实上,mtu只需要修改到1454即可:dhcp-option-force=26,1454

Offloading

You should turn offloading such as TSO/LRO and GRO/GSO off on the instance physical machine for traffic to work.

This can be done with this command (replace ethX with your physical network interface name):

ethtool -K ethX tso off lro off gro off gso off

You can modify the network script for this change to apply on startup:

/etc/sysconfig/network-scripts/ifcfg-eth0ETHTOOL_OPTS="-K ${DEVICE}  tso off lro off gro off gso off"