<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
tt
{mso-style-priority:99;
font-family:"Courier New";}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Courier New";
color:windowtext;
font-weight:normal;
font-style:normal;
text-decoration:none none;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-family:"Courier New"">>From the original ask:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">> I know that there is possibility to create port with IP</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<tt>> and later connect VM to this port. This solution is almost ok</tt><br>
<tt>> for me but problem is when user delete this instance - then</tt><br>
<tt>> port is also deleted and it is not reserved still for the same</tt><br>
<tt>> user and tenant.<o:p></o:p></tt></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">This sounds like the problem of nova deleting a port that it did not<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">create. We could look at a change (likely involving nova and neutron)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">such that if I create a port and pass it in to nova boot, nova would<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">not delete that port when the VM is deleted.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">- Jack<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Mohammad Banikazemi [mailto:mb@us.ibm.com]
<br>
<b>Sent:</b> Thursday, May 22, 2014 10:41 PM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions)<br>
<b>Cc:</b> OpenStack Development Mailing List (not for usage questions)<br>
<b>Subject:</b> Re: [openstack-dev] [Neutron] reservation of fixed ip<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Well, for a use case we had in mind we were trying to figure out how to simply get an IP address on a subnet. We essentially want to use such an address internally by the controller and make
sure it is not used for a port that gets created on a network with that subnet. In this use case, an interface to IPAM for removing an address from the pool of available addresses (and the interface to possibly return the address to the pool) would be sufficient.</span><br>
<br>
<span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Mohammad</span><br>
<br>
<img width="16" height="16" id="_x0000_i1025" src="cid:image001.gif@01CF766B.057362E0" alt="Inactive hide details for Carl Baldwin ---05/22/2014 06:19:16 PM---If an IP is reserved for a tenant, should the tenant need to"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#424282">Carl
Baldwin ---05/22/2014 06:19:16 PM---If an IP is reserved for a tenant, should the tenant need to explicitly ask for that specific IP to</span><br>
<br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">From:
</span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">Carl Baldwin <<a href="mailto:carl@ecbaldwin.net">carl@ecbaldwin.net</a>></span><br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">To: </span>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif"">"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>>,
</span><br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">Date:
</span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">05/22/2014 06:19 PM</span><br>
<span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:#5F5F5F">Subject:
</span><span style="font-size:7.5pt;font-family:"Arial","sans-serif"">Re: [openstack-dev] [Neutron] reservation of fixed ip</span><o:p></o:p></p>
<div class="MsoNormal">
<hr size="2" width="100%" noshade="" style="color:#8091A5" align="left">
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<br>
<tt><span style="font-size:10.0pt">If an IP is reserved for a tenant, should the tenant need to</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<tt>explicitly ask for that specific IP to be allocated when creating a</tt><br>
<tt>floating ip or port? And it would pull from the regular pool if a</tt><br>
<tt>specific IP is not requested. Or, does the allocator just pull from</tt><br>
<tt>the tenant's reserved pool whenever it needs an IP on a subnet? If</tt><br>
<tt>the latter, then I think Salvatore's concern still a valid one.</tt><br>
<br>
<tt>I think if a tenant wants an IP address reserved then he probably has</tt><br>
<tt>a specific purpose for that IP address in mind. That leads me to</tt><br>
<tt>think that he should be required to pass the specific address when</tt><br>
<tt>creating the associated object in order to make use of it. We can't</tt><br>
<tt>do that yet with all types of allocations but there are reviews in</tt><br>
<tt>progress [1][2].</tt><br>
<br>
<tt>Carl</tt><br>
<br>
<tt>[1] <a href="https://review.openstack.org/#/c/70286/">https://review.openstack.org/#/c/70286/</a></tt><br>
<tt>[2] <a href="https://review.openstack.org/#/c/83664/">https://review.openstack.org/#/c/83664/</a></tt><br>
<br>
<tt>On Thu, May 22, 2014 at 12:04 PM, Sławek Kapłoński <<a href="mailto:slawek@kaplonski.pl">slawek@kaplonski.pl</a>> wrote:</tt><br>
<tt>> Hello</tt><br>
<tt>></tt><br>
<tt>></tt><br>
<tt>> Dnia Wed, 21 May 2014 23:51:48 +0100</tt><br>
<tt>> Salvatore Orlando <<a href="mailto:sorlando@nicira.com">sorlando@nicira.com</a>> napisał:</tt><br>
<tt>></tt><br>
<tt>>> In principle there is nothing that should prevent us from</tt><br>
<tt>>> implementing an IP reservation mechanism.</tt><br>
<tt>>></tt><br>
<tt>>> As with anything, the first thing to check is literature or "related</tt><br>
<tt>>> work"! If any other IaaS system is implementing such a mechanism, is</tt><br>
<tt>>> it exposed through the API somehow?</tt><br>
<tt>>> Also this feature is likely to be provided by IPAM systems. If yes,</tt><br>
<tt>>> what constructs do they use?</tt><br>
<tt>>> I do not have the answers to this questions, but I'll try to document</tt><br>
<tt>>> myself; if you have them - please post them here.</tt><br>
<tt>>></tt><br>
<tt>>> This new feature would probably be baked into neutron's IPAM logic.</tt><br>
<tt>>> When allocating an IP, first check from within the IP reservation</tt><br>
<tt>>> pool, and then if it's not found check from standard allocation pools</tt><br>
<tt>>> (this has non negligible impact on availability ranges management, but</tt><br>
<tt>>> these are implementation details).</tt><br>
<tt>>> Aspects to consider, requirement-wise, are:</tt><br>
<tt>>> 1) Should reservations also be classified by "qualification" of the</tt><br>
<tt>>> port? For instance, is it important to specify that an IP should be</tt><br>
<tt>>> used for the gateway port rather than for a floating IP port?</tt><br>
<tt>></tt><br>
<tt>> IMHO it is not required when IP is reserved. User should have</tt><br>
<tt>> possibility to reserve such IP for his tenant and later use it as he</tt><br>
<tt>> want (floating ip, instance or whatever)</tt><br>
<tt>></tt><br>
<tt>>> 2) Are reservations something that an admin could specify on a</tt><br>
<tt>>> tenant-basis (hence an admin API extension), or an implicit mechanism</tt><br>
<tt>>> that can be tuned using configuration variables (for instance create</tt><br>
<tt>>> an IP reservation a for gateway port for a given tenant when a router</tt><br>
<tt>>> gateway is set).</tt><br>
<tt>>></tt><br>
<tt>>> I apologise if these questions are dumb. I'm just trying to frame this</tt><br>
<tt>>> discussion into something which could then possibly lead to</tt><br>
<tt>>> submitting a specification.</tt><br>
<tt>>></tt><br>
<tt>>> Salvatore</tt><br>
<tt>>></tt><br>
<tt>>></tt><br>
<tt>>> On 21 May 2014 21:37, Collins, Sean <<a href="mailto:Sean_Collins2@cable.comcast.com">Sean_Collins2@cable.comcast.com</a>></tt><br>
<tt>>> wrote:</tt><br>
<tt>>></tt><br>
<tt>>> > (Edited the subject since a lot of people filter based on the</tt><br>
<tt>>> > subject line)</tt><br>
<tt>>> ></tt><br>
<tt>>> > I would also be interested in reserved IPs - since we do not deploy</tt><br>
<tt>>> > the layer 3 agent and use the provider networking extension and a</tt><br>
<tt>>> > hardware router.</tt><br>
<tt>>> ></tt><br>
<tt>>> > On Wed, May 21, 2014 at 03:46:53PM EDT, Sławek Kapłoński wrote:</tt><br>
<tt>>> > > Hello,</tt><br>
<tt>>> > ></tt><br>
<tt>>> > > Ok, I found that now there is probably no such feature to reserve</tt><br>
<tt>>> > > fixed ip for tenant. So I was thinking about add such feature to</tt><br>
<tt>>> > > neutron. I mean that it should have new table with reserved ips</tt><br>
<tt>>> > > in neutron database and neutron will check this table every time</tt><br>
<tt>>> > > when new port will be created (or updated) and IP should be</tt><br>
<tt>>> > > associated with this port. If user has got reserved IP it should</tt><br>
<tt>>> > > be then used for new port, if IP is reserver by other tenant - it</tt><br>
<tt>>> > > shouldn't be used. What You are thinking about such possibility?</tt><br>
<tt>>> > > Is it possible to add it in some future release of neutron?</tt><br>
<tt>>> > ></tt><br>
<tt>>> > > --</tt><br>
<tt>>> > > Best regards</tt><br>
<tt>>> > > Sławek Kapłoński</tt><br>
<tt>>> > > <a href="mailto:slawek@kaplonski.pl">slawek@kaplonski.pl</a></tt><br>
<tt>>> > ></tt><br>
<tt>>> > ></tt><br>
<tt>>> > > Dnia Mon, 19 May 2014 20:07:43 +0200</tt><br>
<tt>>> > > Sławek Kapłoński <<a href="mailto:slawek@kaplonski.pl">slawek@kaplonski.pl</a>> napisał:</tt><br>
<tt>>> > ></tt><br>
<tt>>> > > > Hello,</tt><br>
<tt>>> > > ></tt><br>
<tt>>> > > > I'm using openstack with neutron and ML2 plugin. Is there any</tt><br>
<tt>>> > > > way to reserve fixed IP from shared external network for one</tt><br>
<tt>>> > > > tenant? I know that there is possibility to create port with IP</tt><br>
<tt>>> > > > and later connect VM to this port. This solution is almost ok</tt><br>
<tt>>> > > > for me but problem is when user delete this instance - then</tt><br>
<tt>>> > > > port is also deleted and it is not reserved still for the same</tt><br>
<tt>>> > > > user and tenant. So maybe there is any solution to reserve it</tt><br>
<tt>>> > > > "permanent"? I know also about floating IPs but I don't use L3</tt><br>
<tt>>> > > > agents so this is probably not for me :)</tt><br>
<tt>>> > > ></tt><br>
<tt>>> > ></tt><br>
<tt>>> > > _______________________________________________</tt><br>
<tt>>> > > OpenStack-dev mailing list</tt><br>
<tt>>> > > <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></tt><br>
<tt>>> > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></tt><br>
<tt>>> ></tt><br>
<tt>>> > --</tt><br>
<tt>>> > Sean M. Collins</tt><br>
<tt>>> > _______________________________________________</tt><br>
<tt>>> > OpenStack-dev mailing list</tt><br>
<tt>>> > <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></tt><br>
<tt>>> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></tt><br>
<tt>>> ></tt><br>
<tt>></tt><br>
<tt>> --</tt><br>
<tt>> Best regards</tt><br>
<tt>> Sławek Kapłoński</tt><br>
<tt>> <a href="mailto:slawek@kaplonski.pl">slawek@kaplonski.pl</a></tt><br>
<tt>></tt><br>
<tt>> _______________________________________________</tt><br>
<tt>> OpenStack-dev mailing list</tt><br>
<tt>> <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></tt><br>
<tt>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></tt><br>
<br>
<tt>_______________________________________________</tt><br>
<tt>OpenStack-dev mailing list</tt><br>
<tt><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></tt><br>
<tt><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></tt></span><o:p></o:p></p>
</div>
</div>
</body>
</html>