Yah, that's a typo. Welcome for a fix.

> -----Original Message-----
> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> Sent: Friday, August 31, 2012 10:35 AM
> To: Edison Su
> Cc: cloudstack-dev@incubator.apache.org; Anthony Xu; Kelven Yang;
> Vijayendra Bhamidipati
> Subject: Re: VPC for KVM (was VM router spawning multiple public nics)
>
> I'm running into several little problems, like the vpc_guestnw.sh
> having an invalid logger_it function (changed to logger -t cloud), and
> apache being setup to listen on a non-existent 10.1.1.1:80 and 443
> (deleted default-000 and default-ssl). Should I make a patch for
> vpc_guestnw.sh, or do I just have an out of date systemvm image or
> something?
>
> On Thu, Aug 30, 2012 at 11:20 PM, Marcus Sorensen <shadow...@gmail.com>
> wrote:
> > I've made some good progress today, I'll probably have it all working
> > tomorrow, but I have a question.  Looking at the API command
> > associateIpAddress and the functional spec, if I pass a vpcId it then
> > calls associateIPToVpc. Unlike its brother, associateIPToNetwork, I
> > don't clearly see where the ip is actually put on the router, I only
> > see it marking the ip allocated in the database. The functional spec
> > reads as though this IP should be on the VPC. Maybe I'm just not
> > getting that bolded statement 'All ip addresses get allocated to the
> > VPC', my first thought is that of course they would, any IP I
> allocate
> > gets put on the router... I guess I just need to play with it a bit
> > more.
> >
> > Not in front of the code at the moment, I just thought of a few more
> > quick questions that would help... What is the expected outcome of
> the
> > default rules? no access between private networks, but public access
> > for every network?
> >
> > The functional spec mentions public and private gateways, does public
> > refer to giving someone say a /24 of public address space and then
> > creating a route on our router to their VPC router, i.e. public
> > networks instead of NATed ones?
> >
> > On Thu, Aug 30, 2012 at 11:54 AM, Marcus Sorensen
> <shadow...@gmail.com> wrote:
> >> Yes, thanks for clarifying.
> >>
> >> On Thu, Aug 30, 2012 at 11:53 AM, Edison Su <edison...@citrix.com>
> wrote:
> >>> Oh, I see, there are two kinds of commands:
> >>> One doesn't need to get information from libvirt, which just login
> into router vm and program rules. For these commands, we can put them
> into virtualRoutingResource.
> >>> Another does need to get infor from libvirt, such ipassoc, which
> need to get nic infor from libvirt, and plug in vif if needed. For
> these commands, need to be implemented in libvirtcomputingresource.
> While if it needs to access/program router, then add put that code in
> virtualroutingresource.
> >>>
> >>> Does it make sense?
> >>>
> >>>> -----Original Message-----
> >>>> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> >>>> Sent: Thursday, August 30, 2012 10:47 AM
> >>>> To: Edison Su
> >>>> Cc: cloudstack-dev@incubator.apache.org; Anthony Xu; Kelven Yang;
> >>>> Vijayendra Bhamidipati
> >>>> Subject: Re: VPC for KVM (was VM router spawning multiple public
> nics)
> >>>>
> >>>> Ok, I think I get it. For example when I'm looking at
> IpAssocCommand
> >>>> it calls _virtRouterResource.assignPublicIpAddress to actually run
> the
> >>>> sh.  So with SetupGuestNetworkCommand, I'll create that in
> >>>> LibvirtComputingResource, and within that I'll make a call to
> >>>> VirtualRoutingResource to do the work... is that right?
> >>>>
> >>>> On Thu, Aug 30, 2012 at 11:31 AM, Marcus Sorensen
> <shadow...@gmail.com>
> >>>> wrote:
> >>>> > Just want to clarify:
> >>>> >
> >>>> > "We can add implementation of
> >>>> >
> >>>>
> SetupGuestNetworkCommand/SetNetworkACLCommand/SetSourceNatCommand/Site2
> >>>> SiteVpnCfgCommand
> >>>> > in VirtualRoutingResource."
> >>>> >
> >>>> > So the Xen implementation of SetupGuestNetworkCommand is in
> >>>> > CitrixResourceBase.java, and the VMware one is in
> VmwareResource.java,
> >>>> > but you're saying I should put an implementation of these in
> >>>> > VirtualRoutingResource.java for KVM? Sorry, still trying to
> piece
> >>>> > together how everything relates.
> >>>> >
> >>>> > On Thu, Aug 30, 2012 at 10:42 AM, Edison Su
> <edison...@citrix.com>
> >>>> wrote:
> >>>> >> Yes, it is.
> >>>> >>
> >>>> >>> -----Original Message-----
> >>>> >>> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> >>>> >>> Sent: Thursday, August 30, 2012 8:45 AM
> >>>> >>> To: Edison Su
> >>>> >>> Cc: cloudstack-dev@incubator.apache.org; Anthony Xu; Kelven
> Yang;
> >>>> >>> Vijayendra Bhamidipati
> >>>> >>> Subject: VPC for KVM (was VM router spawning multiple public
> nics)
> >>>> >>>
> >>>> >>> I notice there's also an 'IpAssocVpcCommand', I'm assuming
> that
> >>>> should
> >>>> >>> be added to the list?
> >>>> >>>
> >>>> >>> On Wed, Aug 29, 2012 at 6:37 PM, Edison Su
> <edison...@citrix.com>
> >>>> wrote:
> >>>> >>> > You can find the VPC reference implementation from
> >>>> >>> CitrixResourceBase.java, which is the implementation for
> Xenserver.
> >>>> >>> Just take a look at how the VPC related commands are
> implemented.
> >>>> >>> > Take SetNetworkACLCommand as an example:
> >>>> >>> > The function execute(SetNetworkACLCommand cmd) in
> >>>> citrixResourceBase:
> >>>> >>> > 1. parse SetNetworkACLCommand
> >>>> >>> > 2. call scripts/vm/hypervisor/xenserver/vmops, function
> >>>> routerProxy
> >>>> >>> > 3. routerproxy will call
> scripts/network/domr/router_proxy.sh
> >>>> >>> > 4. router_proxy.sh will login into router vm, execute a
> shell
> >>>> script
> >>>> >>> inside router VM to program rules.
> >>>> >>> >
> >>>> >>> > In KVM, we can directly call router_proxy.sh or directly
> login
> >>>> into
> >>>> >>> router vm, we just need to prepare the parameters for this
> script.
> >>>> >>> > The reference code is in VirtualRoutingResource.java, all
> the
> >>>> network
> >>>> >>> related command(extended from NetworkElementCommand) will be
> >>>> redirected
> >>>> >>> to VirtualRoutingResource.
> >>>> >>> > We can add implementation of
> >>>> >>>
> >>>>
> SetupGuestNetworkCommand/SetNetworkACLCommand/SetSourceNatCommand/Site2
> >>>> >>> SiteVpnCfgCommand in VirtualRoutingResource.
> >>>> >>> >
> >>>> >>> >
> >>>> >>> >> -----Original Message-----
> >>>> >>> >> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> >>>> >>> >> Sent: Wednesday, August 29, 2012 4:34 PM
> >>>> >>> >> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> Cc: Edison Su; Anthony Xu; Kelven Yang; Vijayendra
> Bhamidipati
> >>>> >>> >> Subject: Re: VM router spawning multiple public nics
> >>>> >>> >>
> >>>> >>> >> Great, thanks. I've already got a working implementation of
> >>>> >>> >> adding/removing nics from regular instances that I've been
> >>>> playing
> >>>> >>> >> with, so I'm getting vaguely familiar with the various data
> >>>> types
> >>>> >>> and
> >>>> >>> >> things surrounding the networking. I don't know if this is
> quite
> >>>> >>> >> within my reach just yet but I'll see how far I get.
> >>>> >>> >>
> >>>> >>> >> On Wed, Aug 29, 2012 at 3:19 PM, Alena Prokharchyk
> >>>> >>> >> <alena.prokharc...@citrix.com> wrote:
> >>>> >>> >> > On 8/29/12 1:34 PM, "Edison Su" <edison...@citrix.com>
> wrote:
> >>>> >>> >> >
> >>>> >>> >> >>Hi Anthony & Alena,
> >>>> >>> >> >>   Could you help to provide information about VPC, how
> it
> >>>> works,
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> > Here is the functional spec on the feature:
> >>>> >>> >> >
> >>>> >>> >> > wiki.cloudstack.org/display/RelOps/Inter-
> >>>> >>> VLAN+Routing+functional+spec
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> > VpcVirtualNetworkApplianceManagerImpl is the manager
> >>>> responsible
> >>>> >>> for
> >>>> >>> >> VPC
> >>>> >>> >> > Virtual router operations (plug/unplug nics, etc)
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> >> which commands needed to implemented on the hypervisor
> side?
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> > 1) PlugNicCommand/UnplugNicCommand - does Nic
> hotplug/unplug
> >>>> >>> >> (currently
> >>>> >>> >> > works for VR vm only). In VPC called when add nic for
> >>>> Public/Guest
> >>>> >>> >> > networks.
> >>>> >>> >> > 2) SetupGuestNetworkCommand - sets up dhcp range, dns
> >>>> information,
> >>>> >>> >> > networkDomain information on the Nic to make it
> >>>> >>> >> > 3) SetNetworkACLCommand - creates network ACL on the
> virtual
> >>>> >>> router
> >>>> >>> >> > 4) SetSourceNatCommand - used for setting source nat on
> the
> >>>> Public
> >>>> >>> IP
> >>>> >>> >> on
> >>>> >>> >> > the VPC VR.
> >>>> >>> >> > 5) Site2SiteVpnCfgCommand - for setting up S2S VPN
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> > Anthony/Kelven/Vijay did implementation for Xen/vmWare
> >>>> resources,
> >>>> >>> >> they can
> >>>> >>> >> > help you answering all hypervisor related questions. If
> you
> >>>> need
> >>>> >>> more
> >>>> >>> >> > details on business logic + Vpc VR management, I can help
> with
> >>>> >>> that.
> >>>> >>> >> >
> >>>> >>> >> >
> >>>> >>> >> > -Alena.
> >>>> >>> >> >
> >>>> >>> >> >>
> >>>> >>> >> >>> -----Original Message-----
> >>>> >>> >> >>> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> >>>> >>> >> >>> Sent: Wednesday, August 29, 2012 10:16 AM
> >>>> >>> >> >>> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> >>> Subject: Re: VM router spawning multiple public nics
> >>>> >>> >> >>>
> >>>> >>> >> >>> I'd be willing to give it a shot if someone could point
> me
> >>>> in
> >>>> >>> the
> >>>> >>> >> >>> right direction and be available to answer questions.
> >>>> >>> >> >>>
> >>>> >>> >> >>> On Wed, Aug 29, 2012 at 10:39 AM, Edison Su
> >>>> >>> <edison...@citrix.com>
> >>>> >>> >> >>> wrote:
> >>>> >>> >> >>> > Yah, KVM doesn't support VPC yet. Will you help to
> add VPC
> >>>> >>> >> support on
> >>>> >>> >> >>> KVM?:) Just implement a few VPC related commands...
> >>>> >>> >> >>> >
> >>>> >>> >> >>> >> -----Original Message-----
> >>>> >>> >> >>> >> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> >>>> >>> >> >>> >> Sent: Wednesday, August 29, 2012 6:49 AM
> >>>> >>> >> >>> >> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> >>> >> Subject: Re: VM router spawning multiple public nics
> >>>> >>> >> >>> >>
> >>>> >>> >> >>> >> I can confirm that the patch has fixed my particular
> >>>> issue.
> >>>> >>> >> >>> >>
> >>>> >>> >> >>> >> This is likely unrelated and I think it doesn't even
> use
> >>>> the
> >>>> >>> >> same
> >>>> >>> >> >>> >> code, but I began to play with the VPC stuff a bit
> and
> >>>> >>> noticed
> >>>> >>> >> that
> >>>> >>> >> >>> I
> >>>> >>> >> >>> >> don't get any interfaces except for link local.  I'd
> >>>> probably
> >>>> >>> >> chalk
> >>>> >>> >> >>> >> that up to it not being ready for KVM, but I thought
> it
> >>>> was
> >>>> >>> >> worth a
> >>>> >>> >> >>> >> mention.  I'd be happy to try to help get it ready
> if
> >>>> someone
> >>>> >>> >> has
> >>>> >>> >> >>> time
> >>>> >>> >> >>> >> to nudge me in the right direction.
> >>>> >>> >> >>> >>
> >>>> >>> >> >>> >> On Tue, Aug 28, 2012 at 3:15 PM, Edison Su
> >>>> >>> >> <edison...@citrix.com>
> >>>> >>> >> >>> wrote:
> >>>> >>> >> >>> >> >
> >>>> >>> >> >>> >> >
> >>>> >>> >> >>> >> >> -----Original Message-----
> >>>> >>> >> >>> >> >> From: Marcus Sorensen [mailto:shadow...@gmail.com]
> >>>> >>> >> >>> >> >> Sent: Tuesday, August 28, 2012 2:00 PM
> >>>> >>> >> >>> >> >> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> >>> >> >> Subject: Re: VM router spawning multiple public
> nics
> >>>> >>> >> >>> >> >>
> >>>> >>> >> >>> >> >>  I thought about this solution myself, but below
> this
> >>>> >>> portion
> >>>> >>> >> of
> >>>> >>> >> >>> >> code
> >>>> >>> >> >>> >> >> it looks like it uses the hash map to determine
> which
> >>>> nic
> >>>> >>> >> number
> >>>> >>> >> >>> to
> >>>> >>> >> >>> >> >> add the IP to, so with multiple 'untagged'
> networks it
> >>>> >>> would
> >>>> >>> >> have
> >>>> >>> >> >>> no
> >>>> >>> >> >>> >> >> way of knowing which nicnum in the router
> corresponds
> >>>> with
> >>>> >>> >> the
> >>>> >>> >> >>> >> correct
> >>>> >>> >> >>> >> >> untagged vlan.
> >>>> >>> >> >>> >> >>
> >>>> >>> >> >>> >> >>                 nicNum =
> >>>> >>> >> vlanAllocatedToVM.get(ip.getVlanId());
> >>>> >>> >> >>> >> >>                 networkUsage(routerIp, "addVif",
> "eth"
> >>>> +
> >>>> >>> >> nicNum);
> >>>> >>> >> >>> >> >>                 result =
> >>>> >>> >> >>> >> >>
> _virtRouterResource.assignPublicIpAddress(routerName,
> >>>> >>> >> >>> >> >>                         routerIp,
> ip.getPublicIp(),
> >>>> >>> >> ip.isAdd(),
> >>>> >>> >> >>> >> >> ip.isFirstIP(),
> >>>> >>> >> >>> >> >>                         ip.isSourceNat(),
> >>>> ip.getVlanId(),
> >>>> >>> >> >>> >> >> ip.getVlanGateway(),
> >>>> >>> >> >>> >> >>                         ip.getVlanNetmask(),
> >>>> >>> >> >>> ip.getVifMacAddress(),
> >>>> >>> >> >>> >> >>                         ip.getGuestIp(), nicNum);
> >>>> >>> >> >>> >> >>
> >>>> >>> >> >>> >> >> if ip.getVlanId() returns untagged (as it does on
> >>>> networks
> >>>> >>> >> with
> >>>> >>> >> >>> no
> >>>> >>> >> >>> >> >> vlan id), and we tried to put multiple untagged
> keys
> >>>> in
> >>>> >>> >> >>> >> >> vlanAllocatedToVM (as with multiple untagged
> networks),
> >>>> we
> >>>> >>> >> get
> >>>> >>> >> >>> the
> >>>> >>> >> >>> >> >> wrong nicNum, no?
> >>>> >>> >> >>> >> >
> >>>> >>> >> >>> >> > In the ipassoc case, if there are multiple
> untagged
> >>>> >>> networks,
> >>>> >>> >> all
> >>>> >>> >> >>> of
> >>>> >>> >> >>> >> them are use the same
> >>>> >>> >> >>> >> > Public bridge. Then multiple ip address will be
> added
> >>>> on
> >>>> >>> eth2
> >>>> >>> >> >>> inside
> >>>> >>> >> >>> >> router VM.
> >>>> >>> >> >>> >> > If it works physically, then it works.
> >>>> >>> >> >>> >> >
> >>>> >>> >> >>> >> >>
> >>>> >>> >> >>> >> >> On Tue, Aug 28, 2012 at 2:48 PM, Edison Su
> >>>> >>> >> <edison...@citrix.com>
> >>>> >>> >> >>> >> wrote:
> >>>> >>> >> >>> >> >> >
> >>>> >>> >> >>> >> >> >
> >>>> >>> >> >>> >> >> >> -----Original Message-----
> >>>> >>> >> >>> >> >> >> From: Marcus Sorensen
> [mailto:shadow...@gmail.com]
> >>>> >>> >> >>> >> >> >> Sent: Tuesday, August 28, 2012 1:40 PM
> >>>> >>> >> >>> >> >> >> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> >>> >> >> >> Subject: Re: VM router spawning multiple
> public
> >>>> nics
> >>>> >>> >> >>> >> >> >>
> >>>> >>> >> >>> >> >> >> Yes, that looks like it would work for me,
> however
> >>>> >>> that's
> >>>> >>> >> not
> >>>> >>> >> >>> >> >> >> something that would ever make it into master,
> >>>> right?
> >>>> >>> >> >>> Essentially
> >>>> >>> >> >>> >> >> >> killing tagging for the public, private, and
> guest
> >>>> >>> traffic
> >>>> >>> >> >>> labels?
> >>>> >>> >> >>> >> >> >> There's also still the issue of not being able
> to
> >>>> >>> >> >>> differentiate
> >>>> >>> >> >>> >> >> >> between multiple untagged networks, if we
> wanted to
> >>>> add
> >>>> >>> an
> >>>> >>> >> IP
> >>>> >>> >> >>> to
> >>>> >>> >> >>> >> a
> >>>> >>> >> >>> >> >> >> router it might not know which untagged
> interface
> >>>> to
> >>>> >>> apply
> >>>> >>> >> it
> >>>> >>> >> >>> to.
> >>>> >>> >> >>> >> >> >
> >>>> >>> >> >>> >> >> > Physically, all the "untagged" network will be
> >>>> created
> >>>> >>> on
> >>>> >>> >> >>> >> >> public/guest/private bridge(the name we put in
> >>>> >>> >> >>> >> >> private/public/guest.bridge.name in
> agent.properties").
> >>>> >>> >> >>> >> >> > Because, there is no way to create a new
> untagged
> >>>> bridge
> >>>> >>> by
> >>>> >>> >> >>> agent
> >>>> >>> >> >>> >> >> itself. Agent code only knows how to create a new
> >>>> >>> tagged(vlan)
> >>>> >>> >> >>> >> bridge.
> >>>> >>> >> >>> >> >> > So the fix should be pushed into master.
> >>>> >>> >> >>> >> >> >
> >>>> >>> >> >>> >> >> >>
> >>>> >>> >> >>> >> >> >> On Tue, Aug 28, 2012 at 2:32 PM, Edison Su
> >>>> >>> >> >>> <edison...@citrix.com>
> >>>> >>> >> >>> >> >> wrote:
> >>>> >>> >> >>> >> >> >> >
> >>>> >>> >> >>> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> -----Original Message-----
> >>>> >>> >> >>> >> >> >> >> From: Marcus Sorensen
> >>>> [mailto:shadow...@gmail.com]
> >>>> >>> >> >>> >> >> >> >> Sent: Tuesday, August 28, 2012 12:23 PM
> >>>> >>> >> >>> >> >> >> >> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> >>> >> >> >> >> Subject: Re: VM router spawning multiple
> public
> >>>> nics
> >>>> >>> >> >>> >> >> >> >>
> >>>> >>> >> >>> >> >> >> >> Thanks for pointing me in the right
> direction.
> >>>> I've
> >>>> >>> >> >>> reviewed
> >>>> >>> >> >>> >> this
> >>>> >>> >> >>> >> >> >> code
> >>>> >>> >> >>> >> >> >> >> in a bit more detail, and it seems like
> it's
> >>>> >>> >> accomplishing
> >>>> >>> >> >>> the
> >>>> >>> >> >>> >> >> >> >> following:
> >>>> >>> >> >>> >> >> >> >>
> >>>> >>> >> >>> >> >> >> >> 1. get all network interfaces currently
> >>>> connected to
> >>>> >>> >> the
> >>>> >>> >> >>> >> running
> >>>> >>> >> >>> >> >> VM
> >>>> >>> >> >>> >> >> >> >> (a.k.a vnet devices via libvirt)
> >>>> >>> >> >>> >> >> >> >> 2. find out which vlans these network
> interfaces
> >>>> are
> >>>> >>> >> >>> bridged
> >>>> >>> >> >>> >> to,
> >>>> >>> >> >>> >> >> >> store
> >>>> >>> >> >>> >> >> >> >> this in a hash map of vlan ids and nics
> >>>> >>> >> >>> >> >> >> >> 3. get all ip addresses to be added to the
> VM
> >>>> >>> >> >>> >> >> >> >> 4. for each ip, get the configured vlan id
> for
> >>>> the
> >>>> >>> ip,
> >>>> >>> >> >>> compare
> >>>> >>> >> >>> >> it
> >>>> >>> >> >>> >> >> to
> >>>> >>> >> >>> >> >> >> >> the hash map of existing vlan ids and nics
> >>>> >>> >> >>> >> >> >> >> 5. if the required vlan id is not found in
> the
> >>>> hash
> >>>> >>> map,
> >>>> >>> >> >>> >> create a
> >>>> >>> >> >>> >> >> >> new
> >>>> >>> >> >>> >> >> >> >> nic
> >>>> >>> >> >>> >> >> >> >> 6. assign the ip to the nic identified by
> the
> >>>> vlan
> >>>> >>> id
> >>>> >>> >> key
> >>>> >>> >> >>> in
> >>>> >>> >> >>> >> the
> >>>> >>> >> >>> >> >> >> hash
> >>>> >>> >> >>> >> >> >> >> map
> >>>> >>> >> >>> >> >> >> >>
> >>>> >>> >> >>> >> >> >> >> In this case, we're getting a vlan id
> returned
> >>>> in
> >>>> >>> step
> >>>> >>> >> 2
> >>>> >>> >> >>> for a
> >>>> >>> >> >>> >> >> >> bridged
> >>>> >>> >> >>> >> >> >> >> nic whose network is defined as untagged in
> the
> >>>> >>> >> cloudstack
> >>>> >>> >> >>> db,
> >>>> >>> >> >>> >> >> >> >> therefore in step 5 we never match as
> already
> >>>> having
> >>>> >>> a
> >>>> >>> >> nic
> >>>> >>> >> >>> for
> >>>> >>> >> >>> >> >> >> >> 'untagged'. I wrote a big long response
> >>>> discussing
> >>>> >>> this
> >>>> >>> >> >>> issue,
> >>>> >>> >> >>> >> >> but
> >>>> >>> >> >>> >> >> >> as
> >>>> >>> >> >>> >> >> >> >> I began to dig further I realized that
> aside
> >>>> from my
> >>>> >>> >> >>> >> particular
> >>>> >>> >> >>> >> >> case,
> >>>> >>> >> >>> >> >> >> >> untagged vlans in general are just broken
> (for
> >>>> >>> example
> >>>> >>> >> they
> >>>> >>> >> >>> >> can't
> >>>> >>> >> >>> >> >> be
> >>>> >>> >> >>> >> >> >> >> dealt with uniquely in the current
> >>>> IpAssocCommand
> >>>> >>> code,
> >>>> >>> >> >>> given
> >>>> >>> >> >>> >> the
> >>>> >>> >> >>> >> >> >> hash
> >>>> >>> >> >>> >> >> >> >> map) and it would require more effort than
> I
> >>>> have
> >>>> >>> time
> >>>> >>> >> for
> >>>> >>> >> >>> now
> >>>> >>> >> >>> >> to
> >>>> >>> >> >>> >> >> >> make
> >>>> >>> >> >>> >> >> >> >> things work. If the code were already in
> place
> >>>> to
> >>>> >>> >> >>> >> differentiate
> >>>> >>> >> >>> >> >> >> >> between multiple untagged nics I think that
> >>>> fixing
> >>>> >>> my
> >>>> >>> >> >>> problem
> >>>> >>> >> >>> >> >> would
> >>>> >>> >> >>> >> >> >> be
> >>>> >>> >> >>> >> >> >> >> trivial, but since its not, I'll just find
> an
> >>>> >>> >> alternative
> >>>> >>> >> >>> >> >> solution.
> >>>> >>> >> >>> >> >> >> >>
> >>>> >>> >> >>> >> >> >> >
> >>>> >>> >> >>> >> >> >> > The untagged network usually means
> "untagged", no
> >>>> >>> vlan
> >>>> >>> >> on
> >>>> >>> >> >>> the
> >>>> >>> >> >>> >> >> >> bridge...
> >>>> >>> >> >>> >> >> >> > In your case, the untagged network actually
> has
> >>>> >>> >> vlan(tagged)
> >>>> >>> >> >>> on
> >>>> >>> >> >>> >> >> the
> >>>> >>> >> >>> >> >> >> bridge, thus getting things confused.
> >>>> >>> >> >>> >> >> >> > Will this patch(http://pastebin.com/HJXzZwKp)
> >>>> work
> >>>> >>> for
> >>>> >>> >> you?
> >>>> >>> >> >>> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> On Mon, Aug 27, 2012 at 10:46 PM, Marcus
> >>>> Sorensen
> >>>> >>> >> >>> >> >> >> <shadow...@gmail.com>
> >>>> >>> >> >>> >> >> >> >> wrote:
> >>>> >>> >> >>> >> >> >> >> > ...
> >>>> >>> >> >>> >> >> >> >> >             Integer nicPos = 0;
> >>>> >>> >> >>> >> >> >> >> >             for (InterfaceDef nic : nics)
> {
> >>>> >>> >> >>> >> >> >> >> >                 if
> >>>> >>> >> >>> >> >> >> >>
> >>>> >>> (nic.getBrName().equalsIgnoreCase(_linkLocalBridgeName))
> >>>> >>> >> {
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> vlanAllocatedToVM.put("LinkLocal",
> >>>> >>> >> >>> >> nicPos);
> >>>> >>> >> >>> >> >> >> >> >                 } else {
> >>>> >>> >> >>> >> >> >> >> >                     String vlanId =
> >>>> >>> >> >>> >> >> >> >> getVlanIdFromBridge(nic.getBrName());
> >>>> >>> >> >>> >> >> >> >> >                     if (vlanId != null) {
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> vlanAllocatedToVM.put(vlanId,
> >>>> >>> >> >>> >> nicPos);
> >>>> >>> >> >>> >> >> >> >> >                     } else {
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> vlanAllocatedToVM.put(Vlan.UNTAGGED,
> >>>> >>> >> >>> >> >> >> nicPos);
> >>>> >>> >> >>> >> >> >> >> >                     }
> >>>> >>> >> >>> >> >> >> >> >                 }
> >>>> >>> >> >>> >> >> >> >> >                 nicPos++;
> >>>> >>> >> >>> >> >> >> >> >             }
> >>>> >>> >> >>> >> >> >> >> >             IpAddressTO[] ips =
> >>>> >>> cmd.getIpAddresses();
> >>>> >>> >> >>> >> >> >> >> >             int i = 0;
> >>>> >>> >> >>> >> >> >> >> >             String result = null;
> >>>> >>> >> >>> >> >> >> >> >             int nicNum = 0;
> >>>> >>> >> >>> >> >> >> >> >             for (IpAddressTO ip : ips) {
> >>>> >>> >> >>> >> >> >> >> >                 if
> >>>> >>> >> >>> >> >> (!vlanAllocatedToVM.containsKey(ip.getVlanId()))
> >>>> >>> >> >>> >> >> >> {
> >>>> >>> >> >>> >> >> >> >> >                     /* plug a vif into
> router
> >>>> */
> >>>> >>> >> >>> >> >> >> >> >                     VifHotPlug(conn,
> >>>> routerName,
> >>>> >>> >> >>> >> ip.getVlanId(),
> >>>> >>> >> >>> >> >> >> >> >
> >>>> ip.getVifMacAddress());
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> vlanAllocatedToVM.put(ip.getVlanId(),
> >>>> >>> >> >>> >> >> >> nicPos++);
> >>>> >>> >> >>> >> >> >> >> >                 }
> >>>> >>> >> >>> >> >> >> >> > ...
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> > Looks like the getVlanIdFromBridge might
> be a
> >>>> bit
> >>>> >>> >> >>> misleading.
> >>>> >>> >> >>> >> I
> >>>> >>> >> >>> >> >> am
> >>>> >>> >> >>> >> >> >> >> > running my guest public traffic on a
> >>>> 'cloudbr470',
> >>>> >>> >> which
> >>>> >>> >> >>> is
> >>>> >>> >> >>> >> a
> >>>> >>> >> >>> >> >> >> bridge
> >>>> >>> >> >>> >> >> >> >> > to eth2.470, yet I configured this
> network as
> >>>> >>> >> 'untagged'
> >>>> >>> >> >>> >> >> because I
> >>>> >>> >> >>> >> >> >> >> > have a vlan 470 available on eth3 for
> >>>> cloudstack
> >>>> >>> to
> >>>> >>> >> >>> >> autoassign
> >>>> >>> >> >>> >> >> >> (eth3
> >>>> >>> >> >>> >> >> >> >> > is where all of my stuff will be
> autoassigned).
> >>>> So
> >>>> >>> >> I'm
> >>>> >>> >> >>> not
> >>>> >>> >> >>> >> 100%
> >>>> >>> >> >>> >> >> >> sure
> >>>> >>> >> >>> >> >> >> >> > yet what's going on here but it seems as
> >>>> though
> >>>> >>> the
> >>>> >>> >> above
> >>>> >>> >> >>> is
> >>>> >>> >> >>> >> >> not
> >>>> >>> >> >>> >> >> >> >> > setting any 'Vlan.UNTAGGED', since it
> finds a
> >>>> vlan
> >>>> >>> >> number
> >>>> >>> >> >>> >> for
> >>>> >>> >> >>> >> >> >> >> > eth2.470, but when it enumerates the IPs
> for
> >>>> the
> >>>> >>> >> router,
> >>>> >>> >> >>> it
> >>>> >>> >> >>> >> >> then
> >>>> >>> >> >>> >> >> >> runs
> >>>> >>> >> >>> >> >> >> >> > ip.getVlanId() and doesn't find a nic for
> the
> >>>> >>> >> untagged IP
> >>>> >>> >> >>> >> and
> >>>> >>> >> >>> >> >> >> creates
> >>>> >>> >> >>> >> >> >> >> > one.
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> > I realize this is perhaps an uncommon
> case,
> >>>> but a
> >>>> >>> bug
> >>>> >>> >> >>> >> >> nonetheless.
> >>>> >>> >> >>> >> >> >> >> > I'll play with the code a bit and see if
> I can
> >>>> >>> come
> >>>> >>> >> up
> >>>> >>> >> >>> with
> >>>> >>> >> >>> >> a
> >>>> >>> >> >>> >> >> >> >> > solution. I'm thinking I can look at the
> nic's
> >>>> >>> >> broadcast
> >>>> >>> >> >>> URI
> >>>> >>> >> >>> >> >> and
> >>>> >>> >> >>> >> >> >> see
> >>>> >>> >> >>> >> >> >> >> > if it's supposed to be untagged, then add
> to
> >>>> >>> >> >>> >> vlanAllocatedToVM
> >>>> >>> >> >>> >> >> >> >> > appropriately, off the top of my head
> >>>> something
> >>>> >>> like:
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> >                     String vlanId =
> >>>> >>> >> >>> >> >> >> >> getVlanIdFromBridge(nic.getBrName());
> >>>> >>> >> >>> >> >> >> >> >                     if (vlanId != null &&
> >>>> >>> >> >>> >> >> >> >>
> >>>> >>> > !nic.getBroadcastUri().toString().contains("untagged")
> >>>> >>> >> {
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> vlanAllocatedToVM.put(vlanId,
> >>>> >>> >> >>> >> nicPos);
> >>>> >>> >> >>> >> >> >> >> >                     } else {
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> vlanAllocatedToVM.put(Vlan.UNTAGGED,
> >>>> >>> >> >>> >> >> >> nicPos);
> >>>> >>> >> >>> >> >> >> >> >                     }
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> >
> >>>> >>> >> >>> >> >> >> >> > On Mon, Aug 27, 2012 at 6:42 PM, Edison
> Su
> >>>> >>> >> >>> >> >> <edison...@citrix.com>
> >>>> >>> >> >>> >> >> >> >> wrote:
> >>>> >>> >> >>> >> >> >> >> >> Possible bug in in kvm code:
> >>>> >>> >> LibvirtComputingResource-
> >>>> >>> >> >>> >> >> >> >> >execute(IpAssocCommand cmd)-> VifHotPlug,
> which
> >>>> is
> >>>> >>> >> only
> >>>> >>> >> >>> place
> >>>> >>> >> >>> >> >> >> adding
> >>>> >>> >> >>> >> >> >> >> nic into router vm.
> >>>> >>> >> >>> >> >> >> >> >> Turn on agent log, then take a look what
> >>>> happened.
> >>>> >>> >> >>> >> >> >> >> >>
> >>>> >>> >> >>> >> >> >> >> >>> -----Original Message-----
> >>>> >>> >> >>> >> >> >> >> >>> From: Marcus Sorensen
> >>>> >>> [mailto:shadow...@gmail.com]
> >>>> >>> >> >>> >> >> >> >> >>> Sent: Monday, August 27, 2012 5:10 PM
> >>>> >>> >> >>> >> >> >> >> >>> To: cloudstack-dev@incubator.apache.org
> >>>> >>> >> >>> >> >> >> >> >>> Subject: VM router spawning multiple
> public
> >>>> nics
> >>>> >>> >> >>> >> >> >> >> >>>
> >>>> >>> >> >>> >> >> >> >> >>> I've got two zones running the same
> build of
> >>>> >>> >> cloudstack
> >>>> >>> >> >>> (a
> >>>> >>> >> >>> >> >> >> recent
> >>>> >>> >> >>> >> >> >> >> copy
> >>>> >>> >> >>> >> >> >> >> >>> of master). One of them creates routers
> that
> >>>> >>> turn
> >>>> >>> >> into
> >>>> >>> >> >>> >> ugly
> >>>> >>> >> >>> >> >> >> >> >>> multi-headed beasts, and by that I mean
> that
> >>>> any
> >>>> >>> >> time I
> >>>> >>> >> >>> >> >> create a
> >>>> >>> >> >>> >> >> >> >> port
> >>>> >>> >> >>> >> >> >> >> >>> forwarding or iptables rule for that
> router
> >>>> I
> >>>> >>> get a
> >>>> >>> >> new
> >>>> >>> >> >>> >> >> public
> >>>> >>> >> >>> >> >> >> NIC
> >>>> >>> >> >>> >> >> >> >> >>> with an identical IP address, I have an
> >>>> instance
> >>>> >>> >> with a
> >>>> >>> >> >>> >> few
> >>>> >>> >> >>> >> >> tens
> >>>> >>> >> >>> >> >> >> of
> >>>> >>> >> >>> >> >> >> >> >>> NICs.  My guess is that some script
> isn't
> >>>> >>> detecting
> >>>> >>> >> >>> that
> >>>> >>> >> >>> >> >> there's
> >>>> >>> >> >>> >> >> >> >> >>> already a NIC with the public IP on it.
> It
> >>>> >>> looks
> >>>> >>> >> fine
> >>>> >>> >> >>> in
> >>>> >>> >> >>> >> the
> >>>> >>> >> >>> >> >> >> >> >>> database, there is only one public NIC
> >>>> defined
> >>>> >>> in
> >>>> >>> >> the
> >>>> >>> >> >>> nics
> >>>> >>> >> >>> >> >> table.
> >>>> >>> >> >>> >> >> >> >> >>> I'll troubleshoot it tomorrow, but if
> anyone
> >>>> >>> knows
> >>>> >>> >> >>> where I
> >>>> >>> >> >>> >> >> >> should
> >>>> >>> >> >>> >> >> >> >> >>> begin the headstart would be
> appreciated.
> >>>> >>> >> >>> >> >> >> >> >>>
> >>>> >>> >> >>> >> >> >> >> >>> Thanks
> >>>> >>> >> >>
> >>>> >>> >> >
> >>>> >>> >> >

Reply via email to