<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Colin,</div>"The nice thing about standards is that there are so many of them to choose from."<div><br></div><div>For instance, if you take this Internet Draft:</div><div><a href="http://tools.ietf.org/html/draft-ietf-l3vpn-end-system-02">http://tools.ietf.org/html/draft-ietf-l3vpn-end-system-02</a> which is based on RFC4364.</div><div><br></div><div>It has already been implemented as a Neutron plugin via OpenContrail (<a href="http://juniper.github.io/contrail-vnc/README.html">http://juniper.github.io/contrail-vnc/README.html</a>); With this implementation each OpenStack cluster can be configured as its own Autonomous System.</div><div><br></div><div>There is a blueprint</div><div><a href="https://blueprints.launchpad.net/neutron/+spec/neutron-bgp-mpls-vpn">https://blueprints.launchpad.net/neutron/+spec/neutron-bgp-mpls-vpn</a></div><div>that is discussing adding the provisioning of the autonomous system and peering to Neutron.</div><div><br></div><div>Please note that the work above does interoperate with 4364 using option B. Option C is possible but not that practical (as an operator you probably don't want to expose your internal topology between clusters).</div><div><br></div><div>If you want to give it a try you can use this devstack fork: <a href="https://github.com/dsetia/devstack">https://github.com/dsetia/devstack</a>.</div><div>You can use it to interoperate with a standard router that implements 4364 and support MPLS over GRE. Products from cisco/juniper/ALU/huwawei etc do.</div><div><br></div><div>I believe that the work i'm referencing implements interoperability while having very minimal changes to Neutron. It is based on the same concept of neutron virtual network and it hides the BGP/MPLS functionality from the user by translating policies that establish connectivity between virtual networks into RFC 4364 concepts.</div><div>Please refer to: <a href="https://blueprints.launchpad.net/neutron/+spec/policy-extensions-for-neutron">https://blueprints.launchpad.net/neutron/+spec/policy-extensions-for-neutron</a></div><div><br></div><div>Would it make sense to have an IRC/Web meeting around interoperability with RFC4364 an OpenStack managed clusters ? I believe that there is a lot of work that has already been done there by multiple vendors as well as some carriers.</div><div><br></div><div>  Pedro.</div><div><br><div><div>On Nov 7, 2013, at 12:35 AM, Colin McNamara <<a href="mailto:colin@2cups.com">colin@2cups.com</a>> wrote:</div><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; position: static; z-index: auto;"><span style="letter-spacing: 0.2px; ">I have a couple concerns that I don’t feel I clearly communicated during the L3 advanced features session. I’d like to take this opportunity to both clearly communicate my thoughts, as well as start a discussion around them.</span></p><div style="background-color: rgb(255, 255, 255); margin: 0px; font-size: 14px; font-family: Cochin; min-height: 17px; "><strong style="letter-spacing: 0.2px; font-family: Cambria; font-size: 13px; "><br></strong></div><div style="background-color: rgb(255, 255, 255); margin: 0px; font-size: 14px; font-family: Cochin; min-height: 17px; "><strong style="letter-spacing: 0.2px; font-family: Cambria; font-size: 13px; ">Building to the edge of the "autonomous system"</strong></div><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">The current state of neutron implementation is functionally the l2 domain and simple l3 services that are part of a larger autonomous system. The routers and switches northbound of the OpenStack networking layer handled the abstraction and integration of the components.</span></p><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">Note, I use the term “Autonomous System” to describe more then the notion of BGP AS, but more broadly in the term of a system that is controlled within a common framework and methodology, and integrates with a peer system that doesn’t not share that same scope or method of control</span></p><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">These components that composed the autonomous system boundary implement protocols and standards that map into IETF and IEEE standards. The reasoning for this is interoperability. Before vendors utilize IETF for interoperability at this layer, the provider experience was horrible (this was my personal experience in the late 90’s).</span></p><div style="background-color: rgb(255, 255, 255); margin: 0px; font-size: 14px; font-family: Cochin; min-height: 17px;"> <br class="webkit-block-placeholder"></div><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; "><span style="letter-spacing: 0.2px; "><strong>Wednesdays discussions in the Neutron Design Sessions</strong></span></p><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">A couple of the discussions, most notably the extension of l3 functionality fell within the scope of starting the process of extending Neutron with functionality that will result (eventually) in the ability for an OpenStack installation to operate as it’s own Autonomous System.</span></p><p style="background-color: rgb(255, 255, 255); margin: 24px 0px 0px; font-size: 14px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">The discussions that occurred to support L3 advanced functionality (northbound boundary), and the QOS extension functionality both fell into the scope of Northbound and Southbound boundaries of this system.</span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; "><strong>My comments in the session</strong></span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">My comments in the session, while clouded with jet-lag were specifically around two concepts that are used when integrating other types of systems </span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">1. In a simple (1-8) tenant environment integration with a northbound AS is normally done in a PE-CE model that generally centers around mapping dot1q tags into the appropriate northbound l3 segments and then handling the availability of the L2 path that traverses with port channeling, MLAG, STP, Etc.</span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">2. In a complex environment (8+ for discussion) different Carrier Supporting Carrier (CSC) methods defined in IETF RFC 4364 Section 10 type A, B or C are used. These allow the mapping of segregated tenant networks together and synchronizing between distributed systems. This normally extends the tagging or tunneling mechanism and then allows for BGP to synchronize NLRI information between AS’s.</span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">These are the standard ways of integrating between carriers, but also components of these implementations are used to integrate and scale inside of a single web scale data center. Commonly when you scale beyond a certain physical port boundary (1000is edge ports in many implementations, much larger in current implementations) the same designs for C2C integrations are used to create network availability zones inside a web scale data center. </span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; "><strong>Support of these IETF and IEEE standard integrations are necessary for brown field installations</strong></span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">In a green field installation, diverging from IETF and IEEE standards on the north bound edge while not a great idea, can result in a functional implementation. In a brown field implementation where OpenStack Neutron will be integrated into an existing network core. This boundary layer is where we move from a controlled system into a distributed system. The cleanly integrate into this system, IETF and IEEE protocols and standards have to be followed. </span></p><p style="font-family: 'Lucida Grande'; font-size: 12px; background-color: rgb(255, 255, 255); margin: 0px; "> </p><div style="font-family: 'Lucida Grande'; font-size: 12px; background-color: rgb(255, 255, 255); margin: 0px; "><span><8DB71B56-CDE5-42D5-870E-CF94157510F8.png></span><span style="font-family: Cambria; font-size: 13px; letter-spacing: 0.2px; ">When we diverge from this standards based integration at the north edge of our autonomous system we lose the ability to integrate without introducing major changes (and risk), into our core. In my experience this is sufficient to either slow or stall adoption. This is a major risk, that I believe can be mitigated.</span></div><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 11px; font-family: Cambria; "><span style="letter-spacing: 0.2px; "><strong>My thoughts on mitigating this risk</strong></span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 11px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">We need to at least map and track the relevant IETF RFC’s that define the internet standards for integration at the AS boundary. I know that many of the network vendor developers that contribute to Neutron have access to people who both have deep knowledge of these standards, and also participate in the IETF working groups. I would hope that these resources could be leveraged to at least give a sanity check, at best ensure a compliant northbound interface to other systems.</span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 13px; font-family: Cambria; "><span style="letter-spacing: 0.2px; "><strong>Side benefit of engaging IETF members in this discussion</strong></span></p><p style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 11px; font-family: Cambria; "><span style="letter-spacing: 0.2px; ">The other side benefit of this is that inventions inside of Neutron can also be communicated as standards to the rest of the world in the form of net new RFC’s. In OVS this has already happened, as OVS has emerged to be a common component in many network devices, and the need to establish and reference a common standard has risen it’s head. I would think that inventions within Neutron would follow this same path.</span></p><div style="background-color: rgb(255, 255, 255); margin: 10px 0px 0px; font-size: 11px; font-family: Cambria; "><br></div><div>
<div style="font-family: Helvetica; font-size: inherit; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p class="MsoNormal" style="font-family: Helvetica; font-size: inherit; font-weight: normal;">Regards,</p><p class="MsoNormal" style="font-family: Helvetica; font-size: inherit; font-weight: normal;">Colin</p><div style="font-family: Helvetica; font-size: inherit; font-weight: normal;"><b style="font-family: Calibri, sans-serif; font-size: 15px; "><span style="font-size: 12pt; color: navy; font-family: Arial, sans-serif; ">Colin McNamara</span></b><br></div><div style="font-family: Helvetica; font-size: inherit;"><span style="font-family: Calibri, sans-serif; font-size: 15px; "><span style="font-size: 12pt; color: navy; font-family: Arial, sans-serif; ">People | Process | Technology</span></span></div><div><font color="#000080" face="Arial, sans-serif"><span style="font-size: 16px; ">--------------------------------------------</span></font></div><div style="font-family: Helvetica; font-size: inherit; font-weight: normal;"><div style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; "><b><span style="font-size: 10pt; color: rgb(31, 73, 125); font-family: Arial, sans-serif; ">Mobile</span></b><span style="font-size: 10pt; color: rgb(31, 73, 125); font-family: Arial, sans-serif; ">: <span class="Apple-tab-span" style="white-space: pre; ">       </span>858-208-8105</span></div><div style="margin: 0in 0in 0.0001pt; "><font color="#1f497d" face="Arial, sans-serif"><span style="font-size: 13px; "><b>Twitter:<span class="Apple-tab-span" style="white-space: pre; ">  </span></b></span></font><a href="http://www.twitter.com/colinmcnamara">@colinmcnamara</a></div><div style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; "><span style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; "><b>Linkedin</b>:<span class="Apple-tab-span" style="white-space: pre; ">  </span></span><a href="http://www.linkedin.com/colinmcnamara" style="font-family: Arial, sans-serif; font-size: 13px; ">www.</a><a href="http://www.linkedin.com/colinmcnamara" style="font-family: Arial, sans-serif; font-size: 13px; ">linkedin.com/colinmcnamara</a></div><div style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; "><b style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; ">Blog</b><span style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; ">:<span class="Apple-tab-span" style="white-space: pre; ">     </span></span><a href="http://www.colinmcnamara.com/" style="font-family: Arial, sans-serif; font-size: 13px; ">www.colinmcnamara.com</a></div><div style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; "><b style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; ">Email</b><span style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; ">:</span><span class="Apple-tab-span" style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; white-space: pre; ">    </span><a href="mailto://colin@2cups.com">colin@2cups.com</a><span class="Apple-tab-span" style="color: rgb(31, 73, 125); font-family: Arial, sans-serif; font-size: 13px; white-space: pre; ">   </span></div><div style="font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; "><br></div></div></div></div></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>

<br></div>_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev<br></blockquote></div><br></div></body></html>