Multiple network interfaces support[1] now available in master branch. 1. https://issues.apache.org/jira/browse/STRATOS-698
Thanks. On Thu, Nov 20, 2014 at 11:34 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> wrote: > 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 > -- Rajkumar Rajaratnam Committer & PMC Member, Apache Stratos Software Engineer, WSO2