[Nsi-wg] NSI endpoint references
Jerry Sobieski
jerry at nordu.net
Mon Mar 14 11:19:17 CDT 2011
Hi Inder - see reponses in line. (and thanks for your patience with me:-)
Jerry
On 3/13/11 1:43 AM, Inder Monga wrote:
>
>> The <network>:<endpoint> tuple is analogous to the global IP address
>> with its <network>/<host> definition. So we can call the NSI tuple a
>> symbolic global addressing scheme. I think this is an important
>> feature for NSI. AS it turns out, this tuple is sufficient to route a
>> request across the global NSI topology, but is independent of the
>> physical topology. It is the leaf NSA's job to know how to translate
>> an NSI EPR to the local NRM. Indeed, since the leaf NSA is just a
>> PA frontend to the NRM, we can say that translating from NSI EPR to
>> local NRM is the job of the NRM-PA. THis makes the translation to
>> local topology a function of the NRM and out of scope for NSI.
>>
> Please do not use EPR as a sub for STPs - it is already a standardized
> term..could cause confusion.
> http://en.wikipedia.org/wiki/WS-Addressing :)
Fair enough...there are just so many external documents I can't seem to
keep our terminology sorted out from terms allowed or disallowed by
other groups.
>
>> We could allow a topological specification as well. But this has
>> the drawback that every application globally referencing that end
>> point will need to know the topological location. If that physical
>> location changes for any reason, all applications need to be
>> changed. Just as IP address *can* be used for URLs, DNS names are
>> used in order to abstract the desired endpoint from the physical
>> location it occupies at the moment. In addition, advertising
>> endpoints by their topological specification allows internal topology
>> to leak out globally.
>
> I understand what you are saying - but to me what you are suggesting
> falls within best practices and you cannot mandate someone not to
> encode topological spec into their local string. for example
>
> 3 te-1-4-ur03.santaclara.ca.sfba.comcast.net (68.86.248.17) 17.047
> ms 18.316 ms 33.941 ms
> 4 te-1-10-0-5-ar01.sfsutro.ca.sfba.comcast.net (68.85.155.58)
> 62.206 ms 72.866 ms 52.751 ms
> 5 pos-1-7-0-0-cr01.sanjose.ca.ibone.comcast.net (68.86.90.153)
> 52.351 ms 72.093 ms 32.664 ms
> 6 pos-0-0-0-0-pe01.529bryant.ca.ibone.comcast.net
>
> I just want to be sure you are not referring to encoding like the
> above which can be done?
>
I agree. The local domain has the prerogative to name an endpoint as
they see fit. This is as you say a best practice issue.
Likewise, since the local name is a local preference, then NSI as a
standard should not expect or require the name to encode anything
particular. i.e. From an NSI standpoint, the local name is just a
string. NSI does not care what is encoded or not.
In the example above, what you see are *names*. There is no
expectation or requirement that all router interfaces will have such
interface names or even that router interfaces will have names at all.
Indeed, many don't even have IP addresses. Further, while these are
"end points" in the formal sense, the ultimate user 'end points" rarely
get named in this fashion (encoding interface information.) These
names are fine as far as I am concerned because the automated agents are
not relying on this infromation for anything.
Given that the NSI tuple only encodes a globaly unique network name that
is only used to link to the appropriate NSA, there should be an
explicit NSI function/service that a) takes the network name and returns
the NSA information, and b) takes the local name and returns other
associated [topological] information. And vice versa. This is
important in order to provide location independence, but should also be
a fairly simple directory or lookup service. (This lookup service is
how I expect local NRMs to convert a NSI reference to a local significance.)
>>
>> I know Inder (and probably Tomohiro) have questions about how you
>> select VLANs at a remote endpoint,
>
> The question is how to specify aggregate end-points using this method
> of uninterpretable local strings. The number of these end-points when
> you consider virtual ones can be huge. So there is a benefit in having
> a specification that can aggregate those. The other question is how to
> show interconnectivity between two STPs - one in each domain.
Second point first: I think the interconnectivity of two STPs is
indicated in the topology DB. I.e
//ESnet/Peer101==//NORDUnet/USxconnect01 As I see it, both networks
will have to indicate the equivalent STP in the other network. This
issue is a topology issue and a pathfinding issue, so it is an
interesting and whorth while discussion, but I don't think it is
something we need to resolve prior to V1.0.
First point: there is no primitive or notion formally in NSI that acts
on an "aggregate end point"...What I think you mean is you want to
specify that a connection can be terminated on any one VLAN in a
specified set of VLANs. Right?
So why do you want this (generaly)? Are you assuming that a tagged
frame will be carried natively end to end across all intervening
ethernet switches? The connection request primitive makes no such
commitment. The "connection" service provided is neccessarilly a
function of the payload definition at the ingress and egress. But this
does not imply that the network must somehow provision VLANs natively in
order to meet the service request. The network could easily just build
a tunnel end to end with any technology available and put the frames in
that tunnel. ... If the service carries the entire tagged frame as
the payload, then any sane network provider would still tunnel it
through another virtual connection to insulate itself from the effects
of userville. The upshot is that the label set issues become just
access framing issue - Its a local decision. Thus the RA can choose a
VLAN as easily as the PA and without all the end-to-end hoohah. If the
service just carries the payload section of the tagged frame, it gets
even easier.
If we change the primitive semantics of an "end point" to now be a "set
of end points" we make things substantially more complex at this late
stage for v1.0. We can perhaps find a means of specifying a label set
(ala GMPLS), but for the standard, we need to think though how this is
to function generally. Are we standardizing a special treatment for
Ethernet VLANs? Or is this a more general treatment that will work for
any subgroupings?? What are sub-groupings anyway? And are they a CS
protocol issue or a topology/pathfinding issue? So - is this
something the /primitive/ needs to deal with? or something the
pathfinder should deal with? If either case, is this something that
needs to be specified as something other than the tuple? (i.e. does
the grouping need to be incorporated in the syntax of the reference, or
is it a more substantial issue that should be reflected in the topology?
There are probably several ways to accomplish this, but all have
implications that are non-trivial...which makes me want to say push the
discussion to post-V1.0 since user specified VLAN STPs will work, and
we have little time to work through yet another change to the
primitives, and get it all written up.
I think we leave the semantics of the local name to the pathfinder as it
will be the function that needs to map the name to local topological
constructs. -->If a localname STP is mapped to a topological construct
that represents a set of endpoints (e.g. an tagged port), then the
pathfinder can recognize this and do the Right Thing. And the tuple
reference is still sufficient to do this. The pathfinder is not our
concern at this time.
Further, I think these label set problems avoids the real issue: Flat
VLANs suck horribly as an interdomain switching technology. So do raw
wavelengths. These are not globally scalable (which is why QinQ was
introduced and why PBB is now in vogue, and why MPLS works so well.)
IMO, The primitives should [for now] require the RA specify the specific
access tag STP at each end, and let the network PF decide how to drill
tunnels and flip labels to deliver the payload. We should keep in mind
also what the actual payload is: Is it the entire as-is ethernet
frame? or is it the payload of the tagged frames? If it is the
former, does that imply that we cannot tunnel it? If the latter, then
changing VLANs inside the transport fraimg, is perfectly fine.
We should consistently define the connection primitives to work in
accordance with the NSI architectural concept of a "Connection" - not
try to create a standardized workaround for limitations in certain
possible transport technologies. Let the implementations (NRMs) deal
with technology specific issues (e.g. mappng VLANs across the switches
on the ground.), keep the standard to the high level model of a
"Connection from A to B"
We break our architectural abstractions whenever we address one
particular technology specifically. I also believe we undermine the
overall work if we try to stuff lots of Rube-Goldberg-esque mechanisms
into the standard in order to make amends for fundamental limitations of
a technology - particularly when we know these issues are likely to be
resolved in the near future. (flat VLAN space is a perfect example).
>
>> but I view this as a pathfinding issue within each domain - not a
>> global issue. While this is related to topology and visibility, if
>> we stay within the confines/context of the NSI-CS protcol I do not
>> think we need to address this in the standard. At least not
>> immediately.
>>
>> So whether we use a "urn:blah <domain>:<endpoint>" or just a raw
>> tuple "//<domainname>/<endpointname>" is not a big issue with me. As
>> long as we support the tuple and agree on *one* convention that all
>> NSAs must recognize.
>
> I prefer the urn representation (even though we could define our own
> string delimiter and format) and I imagine that OGF urn will be
> registered with IANA
> (http://tools.ietf.org/html/draft-dijkstra-urn-ogf-01 and
> http://www.iana.org/assignments/urn-namespaces/urn-namespaces.xml)
>
> Inder
>
I reiterate my support for OGF GID- the <networkname>:<localname> tuple
for STP identification. Preferably without a URN prefix.
If you to require that an endpoint identifier must be specified as a URN
prefix, you are implying that the <networkname>:<localname> tuple is not
sufficient to differentiate STPs for NSI purposes. What NSI
requirement is not met by the simple tuple?
These are good discussions to have - all of them. But I think we need
to focus on the functionality we have and get that written and out as a
spec.
Best regards!
Jerry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/nsi-wg/attachments/20110314/771ac169/attachment-0001.html
More information about the nsi-wg
mailing list