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