After upgrade to Ubuntu 13.04(libvirt 1.0.2), vlan tag works well.

--Sheng


On Thu, May 2, 2013 at 11:18 AM, Sheng Yang <sh...@yasker.org> wrote:

> After searching I found this:
>
> http://libvirt.org/formatnetwork.html
>
> <quote>
> Setting VLAN tag (on supported network types only)
>   ...
>   <devices>
>     <interface type='bridge'>
>       <vlan trunk='yes'>
>         <tag id='42'/>
>         <tag id='47'/>
>       </vlan>
>       <source bridge='ovsbr0'/>
>       <virtualport type='openvswitch'>
>         <parameters interfaceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/>
>       </virtualport>
>     </interface>
>   <devices>
>   ...
> If (and only if) the network type supports vlan tagging transparent to the
> guest, an optional <vlan> element can specify one or more vlan tags to
> apply to the traffic of all guests using this network **Since 0.10.0**.
> (openvswitch and type='hostdev' SR-IOV networks do support transparent vlan
> tagging of guest traffic; everything else, including standard linux bridges
> and libvirt's own virtual networks, do not support it. 802.1Qbh (vn-link)
> and 802.1Qbg (VEPA) switches provide their own way (outside of libvirt) to
> tag guest traffic onto specific vlans.) As expected, the tag attribute
> specifies which vlan tag to use. If a network has more than one <vlan>
> element defined, it is assumed that the user wants to do VLAN trunking
> using all the specified tags. In the case that vlan trunking with a single
> tag is desired, the optional attribute trunk='yes' can be added to the vlan
> element.
> </quote>
>
> I am using 0.9.13(with ubuntu 12.10). Does that means we need newer
> version?
>
> --Sheng
>
>
>
> On Thu, May 2, 2013 at 10:55 AM, Sheng Yang <sh...@yasker.org> wrote:
>
>> I DO SEE the tag on VM profile when agent start, but I didn't see them on
>> OVS ports.
>>
>> 2013-05-01 18:04:44,702{GMT} DEBUG
>> [kvm.resource.LibvirtComputingResource] (agentRequest-Handler-5:) starting
>> v-2-VM: <domain type='kvm'>
>> <name>v-2-VM</name>
>> <uuid>1422832d-be18-352a-a08a-9bbff40e0d14</uuid>
>> <description>Debian GNU/Linux 5.0 (32-bit)</description>
>> <clock offset='utc'>
>> </clock>
>> <features>
>> <pae/>
>> <apic/>
>> <acpi/>
>> </features>
>> <devices>
>> <emulator>/usr/bin/kvm</emulator>
>> <interface type='bridge'>
>> <source bridge='cloud0'/>
>> <mac address='0e:00:a9:fe:02:45'/>
>> <model type='virtio'/>
>> <virtualport type='openvswitch'>
>> </virtualport>
>> </interface>
>> <interface type='bridge'>
>> <source bridge='cloudbr0'/>
>> <mac address='06:f7:5c:00:00:06'/>
>> <model type='virtio'/>
>> <virtualport type='openvswitch'>
>> </virtualport>
>> </interface>
>> <interface type='bridge'>
>> <source bridge='cloudbr0'/>
>> <mac address='06:4c:12:00:00:1a'/>
>> <model type='virtio'/>
>> <virtualport type='openvswitch'>
>> </virtualport>
>> <vlan trunk='no'>
>> <tag id='1610'/>                            <----------- here
>> </vlan></interface>
>> <serial type='pty'>
>> <target port='0'/>
>> </serial>
>> <graphics type='vnc' autoport='yes' listen='' />
>> <disk  device='disk' type='file'>
>> <driver name='qemu' type='qcow2' cache='none' />
>> <source
>> file='/mnt/20ad978d-a581-3a08-95fd-c2a45417513c/2f12ce26-4e4b-4d6e-b77e-1c45afff58e9'/>
>> <target dev='vda' bus='virtio'/>
>> </disk>
>> <disk  device='cdrom' type='file'>
>> <driver name='qemu' type='raw' cache='none' />
>> <source file='/usr/share/cloudstack-common/vms/systemvm.iso'/>
>> <target dev='hdc' bus='ide'/>
>> </disk>
>> <console type='pty'>
>> <target port='0'/>
>> </console>
>> <input type='tablet' bus='usb'/>
>> <channel type='unix'>
>> <source mode='bind' path='/var/lib/libvirt/qemu/v-2-VM.agent'/>
>> <target type='virtio' name='v-2-VM.vport'/>
>> <address type='virtio-serial'/>
>> </channel>
>> </devices>
>> <memory>1048576</memory>
>> <vcpu>1</vcpu>
>> <os>
>> <type  arch='x86_64' machine='pc'>hvm</type>
>> <boot dev='cdrom'/>
>> <boot dev='hd'/>
>> </os>
>> <cputune>
>> <shares>500</shares>
>> </cputune>
>> <on_reboot>restart</on_reboot>
>> <on_poweroff>destroy</on_poweroff>
>> <on_crash>destroy</on_crash>
>> </domain>
>>
>> After this, vnet2 should be tagged with 1610, but:
>>
>> root@yasker-box1:~# ovs-vsctl list port vnet2
>> _uuid               : 012a6140-bd87-4917-84cc-7190829c695a
>> bond_downdelay      : 0
>> bond_fake_iface     : false
>> bond_mode           : []
>> bond_updelay        : 0
>> external_ids        : {}
>> fake_bridge         : false
>> interfaces          : [95bcf67b-12c1-44e5-87da-5663c6644da3]
>> lacp                : []
>> mac                 : []
>> name                : "vnet2"
>> other_config        : {}
>> qos                 : []
>> statistics          : {}
>> status              : {}
>> tag                 : []
>> trunks              : []
>> vlan_mode           : []
>>
>> So it cannot access the public network.
>>
>> After:
>>
>> root@yasker-box1:~# ovs-vsctl set port vnet2 tag=1610
>> root@yasker-box1:~# ovs-vsctl list port vnet2
>> _uuid               : 012a6140-bd87-4917-84cc-7190829c695a
>> bond_downdelay      : 0
>> bond_fake_iface     : false
>> bond_mode           : []
>> bond_updelay        : 0
>> external_ids        : {}
>> fake_bridge         : false
>> interfaces          : [95bcf67b-12c1-44e5-87da-5663c6644da3]
>> lacp                : []
>> mac                 : []
>> name                : "vnet2"
>> other_config        : {}
>> qos                 : []
>> statistics          : {}
>> status              : {}
>> tag                 : 1610
>> trunks              : []
>> vlan_mode           : []
>>
>> It can access the public network with vlan 1610.
>>
>> --Sheng
>>
>>
>>
>> On Thu, May 2, 2013 at 4:34 AM, Hugo Trippaers <
>> htrippa...@schubergphilis.com> wrote:
>>
>>>  Hey Sheng,****
>>>
>>> ** **
>>>
>>> The tagging is done by libvirt. Can you check your agent.log?****
>>>
>>> ** **
>>>
>>> I would have expected an entry in the log file looking like this
>>> ‘s_logger.debug("creating a vlan dev and bridge for public traffic per
>>> traffic label " + trafficLabel);’****
>>>
>>> ** **
>>>
>>> Also the XML document for the vif sent to libvirt should have the
>>> following tag ‘<vlan trunk='no'>\n<tag id='" + _vlanTag + "'/>\n</vlan>"’
>>> ****
>>>
>>> ** **
>>>
>>> What are your traffic labels set to for kvm? Could you share your
>>> agent.properties?****
>>>
>>> ** **
>>>
>>> Cheers,****
>>>
>>> ** **
>>>
>>> Hugo****
>>>
>>> ** **
>>>
>>> *From:* Sheng Yang [mailto:sh...@yasker.org]
>>> *Sent:* Thursday, May 02, 2013 3:17 AM
>>> *To:* Hugo Trippaers; <dev@cloudstack.apache.org>
>>> *Subject:* OVS on KVM****
>>>
>>> ** **
>>>
>>> Hi Hugo,****
>>>
>>> ** **
>>>
>>> I am trying to use OVS on KVM now, but I found all public ports are not
>>> tagged with public vlan as it supposed to be, so any public traffic cannot
>>> goes out. I've verified that I am using OvsVifDriver. ****
>>>
>>> ** **
>>>
>>> Here is the output of ovs-vsctl show:****
>>>
>>> ** **
>>>
>>> <quote>****
>>>
>>> root@yasker-box1:~/kvm-agent# ovs-vsctl show****
>>>
>>> 02281b72-131c-4b24-b191-fb1bb7fe186d****
>>>
>>>     Bridge "cloud0"****
>>>
>>>         Port "cloud0"****
>>>
>>>             Interface "cloud0"****
>>>
>>>                 type: internal****
>>>
>>>         Port "vnet3"****
>>>
>>>             Interface "vnet3"****
>>>
>>>         Port "vnet0"****
>>>
>>>             Interface "vnet0"****
>>>
>>>     Bridge "cloudbr0"****
>>>
>>>         Port "vnet2"****
>>>
>>>             Interface "vnet2"****
>>>
>>>         Port "vnet6"****
>>>
>>>             Interface "vnet6"****
>>>
>>>         Port "vnet4"****
>>>
>>>             Interface "vnet4"****
>>>
>>>         Port "vnet9"****
>>>
>>>             Interface "vnet9"****
>>>
>>>         Port "vnet10"****
>>>
>>>             Interface "vnet10"****
>>>
>>>         Port "vnet1"****
>>>
>>>             Interface "vnet1"****
>>>
>>>         Port "cloudbr0"****
>>>
>>>             Interface "cloudbr0"****
>>>
>>>                 type: internal****
>>>
>>>         Port "eth0"****
>>>
>>>             Interface "eth0"****
>>>
>>>         Port "vnet5"****
>>>
>>>             Interface "vnet5"****
>>>
>>>     ovs_version: "1.4.3"****
>>>
>>> </quote>****
>>>
>>> ** **
>>>
>>> I've checked the Installation guide, it use different bridge for
>>> different vlan. But would that be the only way to work? Because we can have
>>> different public vlans. Maybe I got some setup wrong...****
>>>
>>> ** **
>>>
>>> Any comments?****
>>>
>>> ** **
>>>
>>> Thanks!****
>>>
>>> ** **
>>>
>>> --Sheng****
>>>
>>
>>
>

Reply via email to