Hi all. I was able to change vlan creation behaviour by source code modification (plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java), had to comment several lines of code:
private String getPif(String bridge) { String pif = matchPifFileInDirectory(bridge); // File vlanfile = new File("/proc/net/vlan/" + pif); // if (vlanfile.isFile()) { // pif = Script.runSimpleBashScript("grep ^Device\\: /proc/net/vlan/" // + pif + " | awk {'print $2'}"); // } return pif; } Could someone please comment this new behaviour of vlan creation ? Why does it try to create vlan on real physical device, but not on vlan (vlan in vlan) ? There is nothing about this in documentation. I have found Q-in-Q for isolated networks functional spec - https://cwiki.apache.org/CLOUDSTACK/q-in-q-for-isolated-networks-functional-spec.html "The admin simply needs to create any 'vlan#' devices, and CloudStack uses them as physical devices." That worked for me in CS 4.0.2. But as you can see, current version of cloudstack DOES NOT use 'vlan#' devices as physical devices!!! Is that a bug ? On Tue, Jul 9, 2013 at 12:39 PM, Valery Ciareszka <valery.teres...@gmail.com > wrote: > So, nobody uses q in q and cloudstack 4.1 ? > > > On Mon, Jul 8, 2013 at 3:13 PM, Valery Ciareszka < > valery.teres...@gmail.com> wrote: > >> Hi all, >> >> I use the following environment: CS 4.1, KVM, Centos 6.4 >> (management+node1+node2), OpenIndiana NFS server as primary and secondary >> storage >> I have advanced networking in zone. I split management/public/guest >> traffic into different vlans, and use kvm network labels (bridge names): >> # cat /etc/cloud/agent/agent.properties |grep device >> guest.network.device=cloudbrguest >> private.network.device=cloudbrmanage >> public.network.device=cloudbrpublic >> >> I have following network configuration: >> eth0+eth1=bond0 >> eth2+eth3=bond1 >> >> I use vlan with id=211 on bond1 interface for guest traffic: >> cloudbrguest 8000.90e2ba317614 yes vlan211 >> cloudbrmanage 8000.90e2ba317614 yes bond1.210 >> cloudbrpublic 8000.90e2ba317614 yes bond1.221 >> cloudbrstor 8000.0025908814a4 yes bond0 >> >> >> The problem appeared after I have upgraded CS from 4.0.2 to 4.1. >> >> How it works in 4.0.2: >> -bridge interface cloudVirBr#VLANID is created on hypervisor, #VLANID - >> value from 1024 to 4096(is specified when creating zone), i.e. >> cloudVirBr1224 >> -vlan interface vlan211.#VLANID is created on hypervisor and is plugged >> into cloudVirBr#VLANID >> I should had permitted 211 vlanid on switchports and all guest traffic >> (vlans 1024-4096) was encapsulated. >> >> How it works in 4.1: >> -bridge interface br#ETHNAME-#VLANID is created on hypervisor, where >> #VLANID - value from 1024 to 4096(is specified when creating zone) and >> #ETHNAME - name of device on top of which vlan will be created >> i.e. brbond1-1224 >> -vlan interface bond1.#VLANID is created on hypervisor and is plugged >> into br#ETHNAME-#VLANID >> However, vlan interface is created on top of bond1 interface, while I >> would like it to be created on top of vlan211 (bond1.211) >> Now I should permit 1024-4096 vlanid on switchports, that is not >> convenient. >> >> How do I configure CS 4.1 so that it could work with guest vlans the same >> way as it had worked in CS 4.0 ? >> >> -- >> Regards, >> Valery >> >> http://protocol.by/slayer >> > > > > -- > Regards, > Valery > > http://protocol.by/slayer > -- Regards, Valery http://protocol.by/slayer