Description of problem: With the target of configuring OSP for the following scenario: - OSP9 controllers with OSP9 computes - two different underlay physical networks - 1 Configured with MTU 1500 (vlan-network_admin) - 1 Configured with MTU 9000 with different services (vlan-network_prod in 1500 MTU mode) + VLXAN traffic from OSP - This network is capable of having 1550 MTU for VXLAN - Other networks here have diffeent mtu's like 1800 or 4000 depending on the use case (mobile core networks, etc) The following configuration was applied as per upstream documentation: Based on Case 2 from upstream doc at http://docs.openstack.org/mitaka/networking-guide/config-mtu.html: # Advertise mtu to have instances picking it up automatically crudini --set /etc/neutron/neutron.conf DEFAULT advertise_mtu true # MAX MTU set to 9000 to cover the non assigned networks: crudini --set /etc/neutron/neutron.conf DEFAULT global_physnet_mtu 9000 # Neutron uses above for all network, deducting from here the extra overhead for VXLAN and GRE unless we also use the `physical_network_mtus` # MTU on vlan_network_prod and vlan_network _admin to 1500 (one on top of the 9000 one and the other one on top of the physical newrok crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 physical_network_mtus vlan_network_prod:1500,vlan_network_admin:1500 # crudini --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings provider1:eth1,provider2:eth2,provider3:eth3 crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 path_mtu 1550 Version-Release number of selected component (if applicable): openstack-neutron-8.1.2-5.el7ost.noarch openstack-neutron-common-8.1.2-5.el7ost.noarch openstack-neutron-ml2-8.1.2-5.el7ost.noarch python-neutron-8.1.2-5.el7ost.noarch python-neutron-lib-0.0.2-1.el7ost.noarch python-neutronclient-4.1.1-2.el7ost.noarch Actual results: VLAN Network created has MTU of 9000, while VXLAN has the right one [root@plo-controller-p01 neutron(keystone_admin)]$ neutron net-show vxlan-jax ==> OK +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | test1 | | | test2 | | description | | | id | 7462ea56-b278-40fb-9a20-7f8145f27022 | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 1500 | | name | vxlan-jax | | port_security_enabled | True | | provider:network_type | vxlan | | provider:physical_network | | | provider:segmentation_id | 5001 | | router:external | False | | shared | False | | status | ACTIVE | | subnets | f0918514-7eeb-4282-ad4b-7c322b0eff53 | | tags | | | tenant_id | 9e9127203fef452cb93863b211729ac6 | +---------------------------+--------------------------------------+ [root@plo-controller-p01 neutron(keystone_admin)]$ neutron net-show vl1310-test-vlan-jax ==> KO MTU 9000 instead of 1500 +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | test1 | | | test2 | | created_at | 2016-11-16T09:24:49 | | description | | | id | 09782c21-767a-40a9-9633-8a763a56ed05 | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 9000 | | name | vl1310-test-vlan-jax | | port_security_enabled | True | | provider:network_type | vlan | | provider:physical_network | vlan_network_admin | | provider:segmentation_id | 1310 | | router:external | False | | shared | False | | status | ACTIVE | | subnets | f03fa063-7596-44be-afb2-35bc68203401 | | tags | | | tenant_id | 9e9127203fef452cb93863b211729ac6 | | updated_at | 2016-11-16T09:24:49 | +---------------------------+--------------------------------------+ it should be inheriting vlan_network_admin and have an MTU of 1500 Expected results: VLAN network should have got 1500 (so instances would see 1500 MTU) as it's on top of vlan_network_admin defined as 1500
I just tried the behaviour for RDO Delorean Mitaka: Installed Packages Name : openstack-neutron Arch : noarch Epoch : 1 Version : 8.3.1 Release : 0.20161118124350.3510ceb.el7.centos Size : 74 k Repo : installed From repo : delorean Summary : OpenStack Networking Service URL : http://launchpad.net/neutron/ License : ASL 2.0 Description : Neutron is a virtual network service for Openstack. Just like : OpenStack Nova provides an API to dynamically request and configure : virtual servers, Neutron provides an API to dynamically request and : configure virtual networks. These networks connect "interfaces" from : other OpenStack services (e.g., virtual NICs from Nova VMs). The : Neutron API supports extensions to provide advanced network : capabilities (e.g., QoS, ACLs, network monitoring, etc.) What I did: (configure neutron-server) # crudini --set /etc/neutron/neutron.conf DEFAULT advertise_mtu true # crudini --set /etc/neutron/neutron.conf DEFAULT global_physnet_mtu 9000 # crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 path_mtu 1550 # crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 physical_network_mtus physnet1:1500,physnet2:1500,physnet3:1500 # crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vlan network_vlan_ranges = physnet1:1:1000,physnet2:1:1000,physnet3:1:1000 # crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers vxlan,flat,vlan (restart neutron-server to apply changes) # systemctl restart neutron-server (create network) # . keystonerc_admin # neutron net-create vlan-physnet1 --provider:network_type vlan --provider:physical_network physnet1 Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | | | created_at | 2016-11-21T12:08:37 | | description | | | id | 8adc918b-2b50-4bc3-a169-f8c287fde234 | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 1500 | | name | vlan-physnet1 | | provider:network_type | vlan | | provider:physical_network | physnet1 | | provider:segmentation_id | 52 | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tags | | | tenant_id | 2c9da0ebd4b84e3fbca074382c63f8d6 | | updated_at | 2016-11-21T12:08:37 | +---------------------------+--------------------------------------+ As you can see, correct value is used for the new VLAN tenant network. A simple question: have you actually restarted neutron-server before creating the network? Note that config changes are not applied for networks created before config changes.
Hi Ihar, Yes, neutron-server was restarted after setting values with crudini and a new network was defined.
I don't see sos reports (getting 404/No such file or directory). Could you please upload them?
BTW I was wrong saying that existing network MTUs will not be recalculated after server restart. They will because we backported a patch to do just that in 8.1.2-3. So indeed comparing RDO Mitaka with OSP 9 is not correct. I will try to reproduce with the right package version.
Nevermind, I see a bug in the code. Working on a fix.
the issue still exist . tested on virtual setup : [root@controller-0 ~]# rpm -qa | grep openstack-neutron- openstack-neutron-bigswitch-agent-2015.3.8-1.el7ost.noarch openstack-neutron-common-8.1.2-13.el7ost.noarch openstack-neutron-lbaas-8.0.0-1.el7ost.noarch openstack-neutron-ml2-8.1.2-13.el7ost.noarch openstack-neutron-openvswitch-8.1.2-13.el7ost.noarch openstack-neutron-metering-agent-8.1.2-13.el7ost.noarch openstack-neutron-bigswitch-lldp-2015.3.8-1.el7ost.noarch openstack-neutron-8.1.2-13.el7ost.noarch [root@controller-0 ~]# neutron net-create net2 --provider:network_type vlan Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | | | created_at | 2016-12-04T07:15:51 | | description | | | id | 65c4da1c-5b1d-4d87-89af-7d9bd5d7e600 | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 9000 | | name | net2 | | port_security_enabled | True | | provider:network_type | vlan | | provider:physical_network | datacentre | | provider:segmentation_id | 87 | | qos_policy_id | | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tags | | | tenant_id | f9a41c07eb6444fc9736ee075cba867c | | updated_at | 2016-12-04T07:15:51 | +---------------------------+--------------------------------------+ [root@controller-0 ~]# neutron net-create net1 Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | availability_zone_hints | | | availability_zones | | | created_at | 2016-12-04T07:16:03 | | description | | | id | df3d1c71-a0e1-493f-9ead-e6e7551a6120 | | ipv4_address_scope | | | ipv6_address_scope | | | mtu | 1500 | | name | net1 | | port_security_enabled | True | | provider:network_type | vxlan | | provider:physical_network | | | provider:segmentation_id | 34 | | qos_policy_id | | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tags | | | tenant_id | f9a41c07eb6444fc9736ee075cba867c | | updated_at | 2016-12-04T07:16:03 | +---------------------------+--------------------------------------+
Eran, please show configuration steps you used. I don't see any issue in the output: your VXLAN network got 1500 (path_mtu = 1550 minus overhead of 50 bytes), and your 'datacentre' backed VLAN network got default global_physnet_mtu that is 9000, because apparently this network did not have a custom MTU set with physical_network_mtus option. Please provide more info, we can't see from the comment you posted there is still an issue.
Ihar I dont understand why vlan network didn't create with MTU value 1500 ? I used steps to reproduce and set same parameters and I got vlan network with 9000 MTU value. I expected to get 1500 value and I dont understand your comment : "because apparently this network did not have a custom MTU set with physical_network_mtus option." I have the setup so you can see the configuration
Eran, please show me configuration, don't block your setup for that. Meaning, attach logs for neutron-servers, attach their config files.
please contact me when you in the office I will show you the setup it would be easier.
verified [root@controller-0 ~]# rpm -qa |grep neutron openstack-neutron-bigswitch-agent-2015.3.8-1.el7ost.noarch openstack-neutron-common-8.1.2-13.el7ost.noarch openstack-neutron-lbaas-8.0.0-1.el7ost.noarch python-neutron-lbaas-8.0.0-1.el7ost.noarch openstack-neutron-ml2-8.1.2-13.el7ost.noarch openstack-neutron-openvswitch-8.1.2-13.el7ost.noarch openstack-neutron-metering-agent-8.1.2-13.el7ost.noarch python-neutronclient-4.1.1-2.el7ost.noarch python-neutron-lib-0.0.2-1.el7ost.noarch openstack-neutron-bigswitch-lldp-2015.3.8-1.el7ost.noarch python-neutron-8.1.2-13.el7ost.noarch openstack-neutron-8.1.2-13.el7ost.noarch
FYI the issue in Eran's setup was that the value of physical_network_mtus was set as 'datacentre:1500,datacentre:1500' which violates format of the option (it does not allow duplicates). There was an error in server log about parsing failure.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2016-2984.html