In the current code base also, we are considering the first private IP of the member in LB.
On Thu, Nov 20, 2014 at 11:27 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> wrote: > Hi Imesh, > > I am modifying topology to include multiple private/public IPs. So now > member object is having a list of private IPs and a list of public IPs. > Which public IP LB should use? Can we get the first IP as default for > routing? > > Thanks. > > On Thu, Nov 20, 2014 at 1:05 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> > wrote: > >> >> >> On Thu, Nov 20, 2014 at 12:52 AM, Jeffrey Nguyen (jeffrngu) < >> jeffr...@cisco.com> wrote: >> >>> >>> I think it's probably less confusing if we use the terms "private IP" >>> and "fixed private IP" (or "predefined private IP"). >>> >> >> Yes. We will use the words *private IP*, *fixed private IP*, *floating >> IP* and *fixed floating IP*. >> >> Thanks Jeffrey for pointing this out. >> >> Thanks. >> >> >>> >>> -Jeffrey >>> >>> From: Rajkumar Rajaratnam <rajkum...@wso2.com> >>> Date: Wednesday, November 19, 2014 11:58 AM >>> To: "dev@stratos.apache.org" <dev@stratos.apache.org> >>> Cc: jeffrngu <jeffr...@cisco.com>, "Matt Turner (matttur)" < >>> matt...@cisco.com> >>> Subject: Re: Assigning floating IPs to any interfaces of our choice >>> >>> >>> >>> On Wed, Nov 19, 2014 at 7:01 PM, Rajkumar Rajaratnam <rajkum...@wso2.com >>> > wrote: >>> >>>> Hi all, >>>> >>>> I have implemented this feature and it is fully functional now. I had >>>> to upgrade Jclouds version to 1.8.1 in order to implement it using neutron >>>> networking API. >>>> >>>> Let me explain how it works now. I will past network interfaces >>>> section of cartridge definition and explain each features implemented here. >>>> >>>> "networkInterfaces":[ >>>> { >>>> "name":"eth0", >>>> "networkUuid":"512e1f54-1e85-4dac-b2e6-f0b30fc552cf", >>>> "floatingNetworks":[ >>>> { >>>> "name":"externalOne", >>>> "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c" >>>> } >>>> ] >>>> }, >>>> >>>> // eth0 will get a fixed IP and a floating IP from floating network >>>> externalOne >>>> >>>> Please don't confuse with word "fixed IP" here. It doesn't mean >>> "predefined fixed IP". Each port has at least a fixed IP. From port's point >>> of view, it is a "fixed IP" of the port. That's why I used the word fixed >>> IP. >>> >>>> { >>>> "name":"eth1", >>>> "networkUuid":"68aab21d-fc9a-4c2f-8d15-b1e41f6f7bb8" >>>> }, >>>> >>>> // eth1 will get a fixed IP >>>> >>>> { >>>> "name":"eth2", >>>> "networkUuid":"b55f009a-1cc6-4b17-924f-4ae0ee18db5e", >>>> "floatingNetworks":[ >>>> { >>>> "name":"externalThree", >>>> "floatingIP" : "192.168.17.227" >>>> } >>>> ] >>>> }, >>>> >>>> // eth2 will get a fixed IP and a predefined floating IP 192.168.17.227 >>>> >>>> // if predefined IP is not available, an exception will be thrown >>>> >>>> { >>>> "name":"eth3", >>>> "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e", >>>> "floatingNetworks":[ >>>> { >>>> "name":"externalThree", >>>> "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c", >>>> "floatingIP" : "192.168.17.227" >>>> } >>>> ] >>>> }, >>>> >>>> // eth3 will get a fixed IP and a floating IP from the floating network >>>> externalThree >>>> >>>> // point here is that we are giving priority to networkUuid to floatingIP >>>> >>>> { >>>> "name":"eth4", >>>> "portUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e", >>>> "fixedIp":"10.5.62.3", >>>> "floatingNetworks":[ >>>> { >>>> "name":"external", >>>> "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c", >>>> "floatingIP" : "192.168.17.227" >>>> } >>>> ] >>>> }, >>>> >>>> // eth4 will get a predefined private IP 10.5.62.3 and a floating IP from >>>> network external >>>> >>>> { >>>> "name":"eth5", >>>> "networkUuid":"d343d343-1cc6-4b17-924f-4ae0ee18db5e", >>>> "floatingNetworks":[ >>>> { >>>> "name":"externalOne", >>>> "networkUuid":"ba667f72-7ba8-4b24-b360-b74a0211c83c", >>>> "floatingIP" : "192.168.17.227" >>>> }, >>>> { >>>> "name":"externalTwo", >>>> "networkUuid":"sddsdsd-7ba8-4b24-b360-b74a0211c83c", >>>> } >>>> ] >>>> } >>>> >>>> // eth5 will get a fixed IP and a predefined floating IP 192.168.17.227 >>>> >>>> // and a floating IP from the floating network externalTwo as well >>>> >>>> // I couldn't test whether it is supported by openstack >>>> >>>> // if openstack supports this, you can also achieve it in stratos >>>> >>>> ] >>>> >>>> >>>> Please have look at the comments given in each network interfaces >>>> definition. >>>> >>>> And if you define multiple network interfaces and floating networks, >>>> if even one IP allocation goes wrong, I am throwing exception and kill the >>>> instance. >>>> >>>> Having this implemented, now I am in the process of doing changes to >>>> some topology events to incorporate multiple private/public IP addresses. >>>> >>>> Please feel free to share your concerns. >>>> >>>> Thanks. >>>> >>>> On Fri, Nov 14, 2014 at 7:14 PM, Rajkumar Rajaratnam < >>>> rajkum...@wso2.com> wrote: >>>> >>>>> Update; >>>>> >>>>> >>>>> On Fri, Nov 14, 2014 at 3:44 PM, Rajkumar Rajaratnam < >>>>> rajkum...@wso2.com> wrote: >>>>> >>>>>> Update; >>>>>> >>>>>> Currently facing an issue with upstream openstack-neutron-1.8.1.jar. >>>>>> >>>>>> When I see the MANIFEST.MF file of openstack-neutron-1.8.1.jar, it >>>>>> contains ${jclouds.version} in lot of places instead of actual version. >>>>>> Due >>>>>> to this carbon feature installation is failing. Because it is processing >>>>>> MANIFEST.MF and throwing number format exception. >>>>>> >>>>>> I conveyed this in user@jclouds. For workaround, I am going to >>>>>> manually put the jar into /repository/components/lib and continue the >>>>>> work >>>>>> until it is sorted out in upstream. >>>>>> >>>>> >>>>> This is a bug. One sent a PR to solve it >>>>> >>>>> Thanks. >>>>> >>>>>> >>>>>> Thanks. >>>>>> >>>>>> On Wed, Nov 12, 2014 at 4:48 PM, Rajkumar Rajaratnam < >>>>>> rajkum...@wso2.com> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Nov 12, 2014 at 4:37 PM, Udara Liyanage <ud...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Raj, >>>>>>>> >>>>>>>> No I did not try since there were no multiple public networks >>>>>>>> available. >>>>>>>> >>>>>>> >>>>>>> Okay Udara. I am setting up a second external network now. Will >>>>>>> run a test soon. >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>>> >>>>>>>> On Wed, Nov 12, 2014 at 2:59 PM, Rajkumar Rajaratnam < >>>>>>>> rajkum...@wso2.com> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Nov 12, 2014 at 2:52 PM, Udara Liyanage <ud...@wso2.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi Raj, >>>>>>>>>> >>>>>>>>>> If I remember correctly, we can't assign folating ip to the >>>>>>>>>> same port multiple times even I try with Openstack UI. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Horizon UI doesn't support most of the operations. Yes we can't >>>>>>>>> assign multiple floating IPs from the same external network to the >>>>>>>>> same >>>>>>>>> port. But I guess, we can assign multiple floating IPs from different >>>>>>>>> external network to the same port. Did you try this scenario? >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, Nov 12, 2014 at 2:47 PM, Rajkumar Rajaratnam < >>>>>>>>>> rajkum...@wso2.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Devs, >>>>>>>>>>> >>>>>>>>>>> I am working on $Subject. Please find the relevant JIRA at [1] >>>>>>>>>>> >>>>>>>>>>> Currently Stratos will assign a floating IP to eth0 if >>>>>>>>>>> *autoAssignIp* property is set to false in cartridge >>>>>>>>>>> definition. AFAIU, stratos is using jclouds API to query the >>>>>>>>>>> available >>>>>>>>>>> floating IPs, choose one and assign it to the instance. Correct me >>>>>>>>>>> if this >>>>>>>>>>> is not the case. >>>>>>>>>>> >>>>>>>>>>> In order to support $Subject, I am proposing the cartridge >>>>>>>>>>> definition as below; >>>>>>>>>>> >>>>>>>>>>> { "type":"mysql", "provider":"data", "host":" >>>>>>>>>>> apachestratos.org", "displayName":"MySQL", "description":"MySQL >>>>>>>>>>> Cartridge", "version":"5.5", "multiTenant":"false", " >>>>>>>>>>> portMapping":[ { "protocol":"http", "port":"80", " >>>>>>>>>>> proxyPort":"8280" } ], "deployment":{ }, " >>>>>>>>>>> iaasProvider":[ { "type":"openstack", "imageId":" >>>>>>>>>>> RegionOne/1cd412c1-54ce-405f-9894-ce1387073c6c", " >>>>>>>>>>> networkInterfaces":[ { "name":"netOne", "networkUuid":" >>>>>>>>>>> 84d52a6d-a9e5-472a-9935-a0e195fe5b4a", "fixedIp":"10.0.1.4" >>>>>>>>>>> }, { "name":"netTwo", "networkUuid":" >>>>>>>>>>> 512e1f54-1e85-4dac-b2e6-f0b30fc552cf", "publicNetworkUuids":[ >>>>>>>>>>> { "name":"externalOne", "networkUuid":" >>>>>>>>>>> 8f08a69d-cb46-43c9-9ebe-b89dcc78dacc", }, { "name":" >>>>>>>>>>> externalTwo", "networkUuid":" >>>>>>>>>>> b5504321-e7aa-4500-9e00-7bc1b10cb5e9", } ] }, { "name >>>>>>>>>>> ":"netThree", "networkUuid":" >>>>>>>>>>> b55f009a-1cc6-4b17-924f-4ae0ee18db5e", "publicNetworkUuids":[ >>>>>>>>>>> { "name":"externalThree", "networkUuid":" >>>>>>>>>>> 83d52a6d-a9e5-572a-9935-a0e195fe5b4r", } ] } ], " >>>>>>>>>>> maxInstanceLimit":"4", "property":[ { "name":" >>>>>>>>>>> instanceType", "value":"RegionOne/4" }, { "name":" >>>>>>>>>>> keyPair", "value":"raj" }, { "name":"autoAssignIp", " >>>>>>>>>>> value":"false" } ] } ], "loadBalancer":{ "type":"lb >>>>>>>>>>> ", "property":{ "name":"no.load.balancer", "value":"true" >>>>>>>>>>> } } } >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> So, I have introduced some additional elements here in >>>>>>>>>>> networks section. publicNetworkUuids will hold one or many external >>>>>>>>>>> network >>>>>>>>>>> UUIDs from where you want to select one IP and assign it the >>>>>>>>>>> corresponding >>>>>>>>>>> interface. Let list me three behaviors, as of now, I have >>>>>>>>>>> identified. >>>>>>>>>>> >>>>>>>>>>> 1. If *autoAssignIp* property is *true*, stratos will not do >>>>>>>>>>> anything regarding floating IPs when creating instances for this >>>>>>>>>>> cartridge. >>>>>>>>>>> But openstack will assign a floating IP to the instance. >>>>>>>>>>> 2. If *autoAssignIp* property is *false*, and you *don't *specify >>>>>>>>>>> any publicNetworkUuids for any interface, then stratos will >>>>>>>>>>> assign a >>>>>>>>>>> floating IP to the 1st interface >>>>>>>>>>> 3. If *autoAssignIp* property is *false*, and you >>>>>>>>>>> specify publicNetworkUuids, then stratos will assign floating >>>>>>>>>>> IPs per >>>>>>>>>>> interfaces for which you specified publicNetworkUuids. If you >>>>>>>>>>> specify >>>>>>>>>>> two publicNetworkUuids for an interface, it will assign two >>>>>>>>>>> floating IPs to >>>>>>>>>>> that interface and so on. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> However, I tried to assign two floating IP addresses to an >>>>>>>>>>> interface which resulted in the following error. >>>>>>>>>>> >>>>>>>>>>> *Error: *409-{u'NeutronError': {u'message': u'Cannot associate >>>>>>>>>>> floating IP 192.168.17.96 (5691eb81-3153-4ee1-b9d0-31fc84516b03) >>>>>>>>>>> with port >>>>>>>>>>> 7e9416ce-5077-44c4-97db-b4b14c10dfc9 using fixed IP 10.0.0.167, as >>>>>>>>>>> that >>>>>>>>>>> fixed IP already has a floating IP on external network >>>>>>>>>>> ba667f72-7ba8-4b24-b360-b74a0211c83c.', u'type': >>>>>>>>>>> u'FloatingIPPortAlreadyAssociated', u'detail': u''}} >>>>>>>>>>> >>>>>>>>>>> I guess we can't assign multiple floating IPs to the same >>>>>>>>>>> interface from same network. We would be able to assign multiple >>>>>>>>>>> floating >>>>>>>>>>> IPs to the same interface from multiple networks. Since I am having >>>>>>>>>>> only >>>>>>>>>>> one external network, I couldn't test this. Any idea? >>>>>>>>>>> >>>>>>>>>>> Feel free to share your thoughts. >>>>>>>>>>> >>>>>>>>>>> 1. https://issues.apache.org/jira/browse/STRATOS-698 >>>>>>>>>>> >>>>>>>>>>> Thanks. >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Raj >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> Udara Liyanage >>>>>>>>>> Software Engineer >>>>>>>>>> WSO2, Inc.: http://wso2.com >>>>>>>>>> lean. enterprise. middleware >>>>>>>>>> >>>>>>>>>> web: http://udaraliyanage.wordpress.com >>>>>>>>>> phone: +94 71 443 6897 >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Raj >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> Udara Liyanage >>>>>>>> Software Engineer >>>>>>>> WSO2, Inc.: http://wso2.com >>>>>>>> lean. enterprise. middleware >>>>>>>> >>>>>>>> web: http://udaraliyanage.wordpress.com >>>>>>>> phone: +94 71 443 6897 >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Raj >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Raj >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Raj >>>>> >>>> >>>> >>>> >>>> -- >>>> Rajkumar Rajaratnam >>>> Committer & PMC Member, Apache Stratos >>>> Software Engineer, WSO2 >>>> >>> >>> >>> >>> -- >>> Rajkumar Rajaratnam >>> Committer & PMC Member, Apache Stratos >>> Software Engineer, WSO2 >>> >> >> >> >> -- >> Rajkumar Rajaratnam >> Committer & PMC Member, Apache Stratos >> Software Engineer, WSO2 >> > > > > -- > Rajkumar Rajaratnam > Committer & PMC Member, Apache Stratos > Software Engineer, WSO2 > -- Rajkumar Rajaratnam Committer & PMC Member, Apache Stratos Software Engineer, WSO2