[rbridge] How is an IS-IS packet differentiated from layer 3 IS-IS, and TRILL-encapsulated data packets?
Radia Perlman
Radia.Perlman at sun.com
Fri May 18 21:07:34 PDT 2007
Now that I'm editing the spec to be real specific here, I need a sanity
check, or
advice from implementers about what would be most convenient for them.
My assumption is that we are removing the per-VLAN instance of IS-IS
(which could
be added later on, for the purpose of distributing endnode information
that is more
securely learned, say through a cryptographically authenticated layer 2
enrollment
protocol). But we are requiring RBridges to learn (ingress RBridge,
source MAC address)
from packets they are decapsulating onto their link.
So we just have the core instance of IS-IS. We have to make sure layer 3
IS-IS
packets (which might also be flowing across the campus between routers)
don't
get confused with TRILL IS-IS. We also have to have RBridges easily
distinguish
TRILL IS-IS Hellos and LSPs from ordinary encapsulated data packets.
When a router generates an IS-IS packet, the destination address will be
"all-level1-routers"
or "all-level-2 routers", or perhaps, a specific router (for instance,
to send a PSNP).
The way this is recognized as an IS-IS packet is due to the EThertype=IS-IS.
RBridge, I believe, should not treat IS-IS packets differently from any
other "data"
packets. If it's addressed to "all-level1-routers" or
"all-level2-routers" it would be
treated like any other multidestination packet, encapsulated, and sent
along a distribution
tree. If it's unicast, it is treated like any other unicast packet by
RBridges, assuming
the layer 2 address specified in the destination is known to the ingress
RBridge.
The question is---how are TRILL IS-IS packets encoded?
Could we get a second Ethertype for this? I'm assuming not...
I'm assuming we just have a single Ethertype for "TRILL-encapsulated".
So we have
to use that.
We could use a different multicast destination address for
"all-RBridges-for-IS-IS" vs
"all-RBridges" that is used for multicast data.
Or we could have a bit in the TRILL header saying "this is an IS-IS packet".
We could in theory not use the TRILL header for IS-IS packets, since in
theory
IS-IS does not need to be encapsulated (for layer 3 IS-IS it runs
directly over layer 2).
But then we'd need a separate Ethertype.
So...if we are going to use the TRILL header, then how do we not get
confused
between TRILL IS-IS and layer 3 IS-IS?
I guess we could assume that it's enough to have TRILL IS-IS use "0" as
the area
address, and use IS-IS as the Ethertype in the inner header. For
TRILL-encapsulated
packets, we actually could choose some weirdo Ethertype (like 0) in the
inner header.
But we still need to differentiate TRILL IS-IS from layer 3 IS-IS on the
first hop.
This is probably something I should ask the IS-IS WG, since it really
depends on
idiosyncracies of the current IS-IS implementations.
Radia
More information about the rbridge
mailing list