Hello
I am stuck for days on network setup issues and would be grateful if you could provide any pointer on how best to proceed.
We have an existed vlan based network. I would like to set up the openstack to be vlan based, that is, each project would be on a separate vlan. To achieve this, I went about doing this:
- Converted the port connected to neutron_external_interface to trunk on the HP switch. I am planning to use openstack to provision VM on vlan 20
-
Created network ->openstack network create --project=eng --provider-network-type=vlan --provider-physical-network=sriovtenant1 --provider-segment=20 eng --gateway 192.168.20.252 --dns-nameserver 192.168.20.1
-
Created subnet -> openstack subnet create --network=eng --subnet-range=192.168.20.0/24 --allocation-pool start=192.168.20.1,end=192.168.20.220 --gateway 192.168.20.252 --dns-nameserver 192.168.20.1 eng_sub1
-
Created port ->openstack port create --network eng --vnic-type=direct eng_port1
[kolla@ostack-40 tmp]$ openstack network show eng | grep provider
| provider:network_type | vlan |
| provider:physical_network | sriovtenant1 |
| provider:segmentation_id | 20 |
[kolla@ostack-40 tmp]$
The issue is however with port status. It always seems to be down:
[kolla@ostack-40 tmp]$ openstack port show 511f54fb-d7f2-4e59-98db-8833bb4cf5e4 | grep -i status
| data_plane_status | None |
| propagate_uplink_status | None |
| status | DOWN |
[kolla@ostack-40 tmp]$
This is the globals.yml file we are using:
---
config_owner_user: "kolla"
config_owner_group: "kolla"
workaround_ansible_issue_8743: yes
openstack_release: "2024.1"
kolla_internal_vip_address: "192.168.101.221"
kolla_internal_fqdn: "example.openstack.exampletech.com"
kolla_external_vip_address: "192.168.102.221"
kolla_external_fqdn: "example.vm.exampletech.com"
kolla_sysctl_conf_path: /etc/sysctl.d/100-kolla.conf
kolla_container_engine: podman
network_interface: "enp4s0f0"
neutron_external_interface: "enp4s0f1"
disable_firewall: "true"
enable_external_api_firewalld: "false"
enable_neutron_sriov: "yes"
neutron_sriov_physnet_mappings:
sriovtenant1: enp4s0f1
enable_neutron_dvr: "yes"
openvswitch_hw_offload: "yes"
enable_neutron_provider_networks: "yes"
ceph_version: "reef"
external_ceph_cephx_enabled: "yes"
ceph_glance_user: "glance"
ceph_glance_keyring: "client.{{ ceph_glance_user }}.keyring"
ceph_glance_pool_name: "images"
ceph_cinder_user: "cinder"
ceph_cinder_keyring: "client.{{ ceph_cinder_user }}.keyring"
ceph_cinder_pool_name: "volumes"
ceph_cinder_backup_user: "cinder-backup"
ceph_cinder_backup_keyring: "client.{{ ceph_cinder_backup_user }}.keyring"
ceph_cinder_backup_pool_name: "backups"
ceph_nova_keyring: "{{ ceph_cinder_keyring }}"
ceph_nova_user: "{{ ceph_cinder_user }}"
ceph_nova_pool_name: "vms"
keystone_admin_project: "example"
glance_backend_ceph: "yes"
cinder_backend_ceph: "yes"
nova_backend_ceph: "yes"
We are certain sriov is working due to this observations:
[root@ostack-40 ~]# cat /sys/class/net/enp4s0f1/device/sriov_totalvfs
63
[root@ostack-40 ~]#
When I look for the string vlan, on the logs, I see this which implies that vlan seem to have been initialized fine.
2024-08-26 14:57:36.933 2 INFO neutron.plugins.ml2.drivers.type_vlan [-] Network VLAN ranges: OrderedDict([('sriovtenant1', [(9, 2000)])])
2024-08-26 14:57:49.469 2 INFO neutron.plugins.ml2.drivers.type_vlan [None req-8326ea90-01d6-4de4-895c-5a37456e4dde - - - - - -] VlanTypeDriver initialization complete
[root@ostack-40 ~]# grep -i "vlan " /var/log/kolla/neutron/neutron-server.log
2024-08-26 14:57:36.933 2 INFO neutron.plugins.ml2.drivers.type_vlan [-] Network VLAN ranges: OrderedDict([('sriovtenant1', [(9, 2000)])])
2024-08-26 14:57:49.469 2 INFO neutron.plugins.ml2.drivers.type_vlan [None req-8326ea90-01d6-4de4-895c-5a37456e4dde - - - - - -] VlanTypeDriver initialization complete
[root@ostack-40 ~]# grep -i vlan /var/log/kolla/neutron/neutron-server.log
2024-08-26 14:57:36.929 2 INFO neutron.plugins.ml2.managers [-] Configured type driver names: ['flat', 'vlan', 'vxlan']
2024-08-26 14:57:36.933 2 INFO neutron.plugins.ml2.drivers.type_vlan [-] Network VLAN ranges: OrderedDict([('sriovtenant1', [(9, 2000)])])
2024-08-26 14:57:36.933 2 INFO neutron.plugins.ml2.managers [-] Loaded type driver names: ['flat', 'vlan', 'vxlan']
2024-08-26 14:57:36.934 2 INFO neutron.plugins.ml2.managers [-] Registered types: dict_keys(['flat', 'vlan', 'vxlan'])
2024-08-26 14:57:37.006 2 INFO neutron.plugins.ml2.managers [-] Initializing driver for type 'vlan'
2024-08-26 14:57:49.469 2 INFO neutron.plugins.ml2.drivers.type_vlan [None req-8326ea90-01d6-4de4-895c-5a37456e4dde - - - - - -] VlanTypeDriver initialization complete
2024-08-26 14:57:49.494 2 INFO neutron.extensions.vlantransparent [None req-72317867-444d-42a7-8421-2ef4460e9aed - - - - - -] Disabled vlantransparent extension.
2024-08-26 14:57:49.597 2 INFO neutron.api.extensions [None req-72317867-444d-42a7-8421-2ef4460e9aed - - - - - -] Extension vlan-transparent not supported by any of loaded plugins
What could we possibly be missing?
Regards,
William