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