Doc - https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Multiple+Network+Interfaces
On Sat, Dec 6, 2014 at 9:09 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> wrote: > 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 > -- Rajkumar Rajaratnam Committer & PMC Member, Apache Stratos Software Engineer, WSO2