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

Reply via email to