← Back to team overview

openstack team mailing list archive

Re: [Quantum] provider:network_type=vlan problem

 

Some added color... The interfaces are defined in Quantum and they have MAC
addresses generated... They just don't make it into the nova-compute
generated libvirt.xml.  There seems to be other stuff missing to, like the
bridge name. Is that supposed to be blank?

>From the nova-compute.log

2013-03-01 10:48:48 DEBUG nova.compute.manager
[req-35d0301e-ef44-4151-bfc4-9be13202e9c9 de223767529242ac85635b3863f6154b
33c19bf6b3c848f2842465ee27ef835f] [instance:
1466c180-2e03-4479-9fdb-2fe16201b516]

Instance network_info: |

[
VIF({'network': Network({'bridge': '', 'subnets': [], 'meta': {'injected':
False, 'tenant_id': u'c035fb76ea664bd59e9f64405933f105'}, 'id':
u'19af012e-fa1e-4fc2-aac8-7611ef33428b', 'label': u'VLAN4'}), 'meta': {},
'id': u'46f861de-6019-44cd-8835-a3044b2cac87', 'address':
u'fa:16:3e:fc:95:21'}),
VIF({'network': Network({'bridge': '', 'subnets': [], 'meta': {'injected':
False, 'tenant_id': u'c035fb76ea664bd59e9f64405933f105'}, 'id':
u'28310262-bcb3-43b9-8366-f31f5ac7a990', 'label': u'VLAN1'}), 'meta': {},
'id': u'8f17842d-2331-47de-bfad-6d6e5acd45f6', 'address':
u'fa:16:3e:37:2b:d8'}),
VIF({'network': Network({'bridge': '', 'subnets': [], 'meta': {'injected':
False, 'tenant_id': u'c035fb76ea664bd59e9f64405933f105'}, 'id':
u'788bd827-5ba1-4b0f-99b4-e98040c9730d', 'label': u'VLAN2'}), 'meta': {},
'id': u'721175a2-1021-4747-a7a1-1ef7a0ea92bb', 'address':
u'fa:16:3e:12:ba:2b'}),
VIF({'network': Network({'bridge': '', 'subnets': [], 'meta': {'injected':
False, 'tenant_id': u'c035fb76ea664bd59e9f64405933f105'}, 'id':
u'be859d44-1d16-4923-b33b-c5dc292cc68f', 'label': u'VLAN3'}), 'meta': {},
'id': u'c39065d4-729b-484b-bcff-e7fa06e1f814', 'address':
u'fa:16:3e:70:54:a7'})
]

| _allocate_network
/usr/lib/python2.7/dist-packages/nova/compute/manager.py:719

2013-03-01 10:48:49 DEBUG nova.virt.libvirt.config
[req-35d0301e-ef44-4151-bfc4-9be13202e9c9 de223767529242ac85635b3863f6154b
33c19bf6b3c848f2842465ee27ef835f] Generated XML <domain type="kvm">
  <uuid>1466c180-2e03-4479-9fdb-2fe16201b516</uuid>
  <name>instance-0000000d</name>
  <memory>524288</memory>
  <vcpu>1</vcpu>
  <os>
    <type>hvm</type>
    <boot dev="hd"/>
  </os>
  <features>
    <acpi/>
  </features>
  <clock offset="utc">
    <timer name="pit" tickpolicy="delay"/>
    <timer name="rtc" tickpolicy="catchup"/>
  </clock>
  <cpu mode="host-model" match="exact"/>
  <devices>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2" cache="none"/>
      <source file="/var/lib/nova/instances/instance-0000000d/disk"/>
      <target bus="virtio" dev="vda"/>
    </disk>
    <serial type="file">
      <source path="/var/lib/nova/instances/instance-0000000d/console.log"/>
    </serial>
    <serial type="pty"/>
    <input type="tablet" bus="usb"/>
    <graphics type="vnc" autoport="yes" keymap="en-us" listen="0.0.0.0"/>
  </devices>
</domain>
  to_xml /usr/lib/python2.7/dist-packages/nova/virt/libvirt/config.py:66


John Gruber


On Fri, Mar 1, 2013 at 12:58 PM, John Gruber <john.t.gruber@xxxxxxxxx>wrote:

> I'm installing nova and quantum in an environment where L3 routing and
> DHCP are handled by other devices on a provider network for specific VLANs.
> I don't want the service of the quantum-l3 or quantum-dhcp agents, as there
> services are handled by external devices.
>
> Nova compute is setup to use:
> libvirt_type=kvm
> libvirt_ovs_bridge=br-int
> libvirt_vif_type=ethernet
> libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
> libvirt_use_virtio_for_bridges=True
>
> I am using the OVS plugin for Quantum Folsom.  Here is the OVS section of
> my ovs_quantum_plugin.ini file.
>
> [OVS]
> tenant_network_type = vlan
> network_vlan_ranges = physnet1:1:4,physnet1:60:64
> bridge_mappings = physnet1:br-eth2
>
> The output of ovs-vsctl show looks like the following:
>
> efbab661-98dd-46b3-b5c1-e234c3afac8e
>     Bridge "br-eth2"
>         Port "phy-br-eth2"
>             Interface "phy-br-eth2"
>         Port "br-eth2"
>             Interface "br-eth2"
>                 type: internal
>         Port "eth2"
>             Interface "eth2"
>     Bridge br-int
>         Port br-int
>             Interface br-int
>                 type: internal
>         Port "int-br-eth2"
>             Interface "int-br-eth2"
>     ovs_version: "1.4.0+build0"
>
> Interface eth2 is a VLAN trunk.  I can manually create ports in OVS and
> then add link and ip address for VLANs 1-4,60-64 verifying connectivity.
>
> I run the following commands to setup the logical network:
>
> quantum net-create VLAN1 --router:external=True --shared
> --provider:network_type=vlan --provider:physical_network=physnet1
> --provider:segmentation_id=1
> quantum net-create VLAN2 --router:external=True --shared
> --provider:network_type=vlan --provider:physical_network=physnet1
> --provider:segmentation_id=2
> quantum net-create VLAN3 --router:external=True --shared
> --provider:network_type=vlan --provider:physical_network=physnet1
> --provider:segmentation_id=3
> quantum net-create VLAN4 --router:external=True --shared
> --provider:network_type=vlan --provider:physical_network=physnet1 --
> provider:segmentation_id=4
>
> quantum net-list show:
>
> +--------------------------------------+-------+---------+
> | id                                   | name  | subnets |
> +--------------------------------------+-------+---------+
> | 19af012e-fa1e-4fc2-aac8-7611ef33428b | VLAN4 |         |
> | 28310262-bcb3-43b9-8366-f31f5ac7a990 | VLAN1 |         |
> | 788bd827-5ba1-4b0f-99b4-e98040c9730d | VLAN2 |         |
> | be859d44-1d16-4923-b33b-c5dc292cc68f | VLAN3 |         |
> +--------------------------------------+-------+---------+
>
> If I create a guest instance with networks VLAN1, VLAN2, VLAN3, VLAN4,
> connected, but my nova created libvirtl.xml contains no entries for network
> interfaces at all. The VM boots without NICs.
>
> However if I add:
>
> quantum subnet-create VLAN1 --gateway 10.0.0.1 10.0.0.0/24 --
> --enable_dhcp=False
> quantum subnet-create VLAN2 --gateway 10.0.1.1 10.0.1.0/24 --
> --enable_dhcp=False
> quantum subnet-create VLAN3 --gateway 10.0.2.1 10.0.2.0/24 --
> --enable_dhcp=False
> quantum subnet-create VLAN4 --gateway 10.0.3.1 10.0.3.0/24 --
> --enable_dhcp=False
>
> Thus making quantum net-list show:
>
>
> +--------------------------------------+-------+--------------------------------------+
> | id                                   | name  | subnets
>            |
>
> +--------------------------------------+-------+--------------------------------------+
> | 19af012e-fa1e-4fc2-aac8-7611ef33428b | VLAN4 |
> a451a6ad-ff4d-40e2-8a8a-2582bfd5a3ed |
> | 28310262-bcb3-43b9-8366-f31f5ac7a990 | VLAN1 |
> 98c42f7e-15e3-4c9b-b323-54346086bfd4 |
> | 788bd827-5ba1-4b0f-99b4-e98040c9730d | VLAN2 |
> e022730c-b0f7-4158-b8ef-e56da0ceb227 |
> | be859d44-1d16-4923-b33b-c5dc292cc68f | VLAN3 |
> 1b68886a-a693-4039-813b-23d085bb43d2 |
>
> +--------------------------------------+-------+--------------------------------------+
>
> My generated libvirt.xml has NICs, but I'm stuck with allocation pools..
> which I don't want or need. Also the interfaces seem to be bridged only to
> the integration bridge in OVS.
>
> Q1) The nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver driver is one
> of many that say 'deprecated' in the source code. What should I be using?
>  Just the generic?
> Q2) How do I have provider networks which are VLAN tagged by OVS, have no
> Quantum subnet assigned, yet will have nova-compute define vifs properly?
>
> Thanks for your help in advance,
>
> John Gruber
>
>
>
>
>
>

Follow ups

References