📄 rfc2105.txt
字号:
its FIB by using the information the router receives from routing
protocols (e.g., OSPF, BGP).
To support destination-based routing with tag switching, a tag
switch, just like a router, participates in routing protocols (e.g.,
OSPF, BGP), and constructs its FIB using the information it receives
from these protocols.
There are three permitted methods for tag allocation and Tag
Information Base (TIB) management: (a) downstream tag allocation, (b)
downstream tag allocation on demand, and (c) upstream tag allocation.
In all cases, a switch allocates tags and binds them to address
prefixes in its FIB. In downstream allocation, the tag that is
carried in a packet is generated and bound to a prefix by the switch
at the downstream end of the link (with respect to the direction of
data flow). In upstream allocation, tags are allocated and bound at
the upstream end of the link. `On demand' allocation means that tags
will only be allocated and distributed by the downstream switch when
it is requested to do so by the upstream switch. Methods (b) and (c)
are most useful in ATM networks (see Section 5). Note that in
downstream allocation, a switch is responsible for creating tag
bindings that apply to incoming data packets, and receives tag
bindings for outgoing packets from its neighbors. In upstream
allocation, a switch is responsible for creating tag bindings for
outgoing tags, i.e. tags that are applied to data packets leaving the
switch, and receives bindings for incoming tags from its neighbors.
The downstream tag allocation scheme operates as follows: for each
route in its FIB the switch allocates a tag, creates an entry in its
Tag Information Base (TIB) with the incoming tag set to the allocated
tag, and then advertises the binding between the (incoming) tag and
the route to other adjacent tag switches. The advertisement could be
accomplished by either piggybacking the binding on top of the
existing routing protocols, or by using a separate Tag Distribution
Rekhter, et. al. Informational [Page 5]
RFC 2105 Cisco's Tag Switching Architecture February 1997
Protocol [TDP]. When a tag switch receives tag binding information
for a route, and that information was originated by the next hop for
that route, the switch places the tag (carried as part of the binding
information) into the outgoing tag of the TIB entry associated with
the route. This creates the binding between the outgoing tag and the
route.
With the downstream tag allocation on demand scheme, operation is as
follows. For each route in its FIB, the switch identifies the next
hop for that route. It then issues a request (via TDP) to the next
hop for a tag binding for that route. When the next hop receives the
request, it allocates a tag, creates an entry in its TIB with the
incoming tag set to the allocated tag, and then returns the binding
between the (incoming) tag and the route to the switch that sent the
original request. When the switch receives the binding information,
the switch creates an entry in its TIB, and sets the outgoing tag in
the entry to the value received from the next hop.
The upstream tag allocation scheme is used as follows. If a tag
switch has one or more point-to-point interfaces, then for each
route in its FIB whose next hop is reachable via one of these
interfaces, the switch allocates a tag, creates an entry in its TIB
with the outgoing tag set to the allocated tag, and then advertises
to the next hop (via TDP) the binding between the (outgoing) tag and
the route. When a tag switch that is the next hop receives the tag
binding information, the switch places the tag (carried as part of
the binding information) into the incoming tag of the TIB entry
associated with the route.
Once a TIB entry is populated with both incoming and outgoing tags,
the tag switch can forward packets for routes bound to the tags by
using the tag switching forwarding algorithm (as described in Section
3).
When a tag switch creates a binding between an outgoing tag and a
route, the switch, in addition to populating its TIB, also updates
its FIB with the binding information. This enables the switch to add
tags to previously untagged packets.
To understand the scaling properties of tag switching in conjunction
with destination-based routing, observe that the total number of tags
that a tag switch has to maintain can not be greater than the number
of routes in the switch's FIB. Moreover, in some cases a single tag
could be associated with a group of routes, rather than with a single
route. Thus, much less state is required than would be the case if
tags were allocated to individual flows.
Rekhter, et. al. Informational [Page 6]
RFC 2105 Cisco's Tag Switching Architecture February 1997
In general, a tag switch will try to populate its TIB with incoming
and outgoing tags for all routes to which it has reachability, so
that all packets can be forwarded by simple label swapping. Tag
allocation is thus driven by topology (routing), not traffic - it is
the existence of a FIB entry that causes tag allocations, not the
arrival of data packets.
Use of tags associated with routes, rather than flows, also means
that there is no need to perform flow classification procedures for
all the flows to determine whether to assign a tag to a flow. That,
in turn, simplifies the overall scheme, and makes it more robust and
stable in the presence of changing traffic patterns.
Note that when tag switching is used to support destination-based
routing, tag switching does not completely eliminate the need to
perform normal Network Layer forwarding. First of all, to add a tag
to a previously untagged packet requires normal Network Layer
forwarding. This function could be performed by the first hop router,
or by the first router on the path that is able to participate in tag
switching. In addition, whenever a tag switch aggregates a set of
routes (e.g., by using the technique of hierarchical routing), into a
single tag, and the routes do not share a common next hop, the switch
needs to perform Network Layer forwarding for packets carrying that
tag. However, one could observe that the number of places where
routes get aggregated is smaller than the total number of places
where forwarding decisions have to be made. Moreover, quite often
aggregation is applied to only a subset of the routes maintained by a
tag switch. As a result, on average a packet can be forwarded most of
the time using the tag switching algorithm.
4.2. Hierarchy of routing knowledge
The IP routing architecture models a network as a collection of
routing domains. Within a domain, routing is provided via interior
routing (e.g., OSPF), while routing across domains is provided via
exterior routing (e.g., BGP). However, all routers within domains
that carry transit traffic (e.g., domains formed by Internet Service
Providers) have to maintain information provided by not just interior
routing, but exterior routing as well. That creates certain problems.
First of all, the amount of this information is not insignificant.
Thus it places additional demand on the resources required by the
routers. Moreover, increase in the volume of routing information
quite often increases routing convergence time. This, in turn,
degrades the overall performance of the system.
Tag switching allows the decoupling of interior and exterior routing,
so that only tag switches at the border of a domain would be required
to maintain routing information provided by exterior routing, while
Rekhter, et. al. Informational [Page 7]
RFC 2105 Cisco's Tag Switching Architecture February 1997
all other switches within the domain would just maintain routing
information provided by the domain's interior routing (which is
usually significantly smaller than the exterior routing information).
This, in turn, reduces the routing load on non-border switches, and
shortens routing convergence time.
To support this functionality, tag switching allows a packet to carry
not one but a set of tags, organized as a stack. A tag switch could
either swap the tag at the top of the stack, or pop the stack, or
swap the tag and push one or more tags into the stack.
When a packet is forwarded between two (border) tag switches in
different domains, the tag stack in the packet contains just one tag.
However, when a packet is forwarded within a domain, the tag stack in
the packet contains not one, but two tags (the second tag is pushed
by the domain's ingress border tag switch). The tag at the top of
the stack provides packet forwarding to an appropriate egress border
tag switch, while the next tag in the stack provides correct packet
forwarding at the egress switch. The stack is popped by either the
egress switch or by the penultimate (with respect to the egress
switch) switch.
The control component used in this scenario is fairly similar to the
one used with destination-based routing. In fact, the only essential
difference is that in this scenario the tag binding information is
distributed both among physically adjacent tag switches, and among
border tag switches within a single domain. One could also observe
that the latter (distribution among border switches) could be
trivially accommodated by very minor extensions to BGP (via a
separate Tag Binding BGP attribute).
4.3. Multicast
Essential to multicast routing is the notion of spanning trees.
Multicast routing procedures (e.g., PIM) are responsible for
constructing such trees (with receivers as leafs), while multicast
forwarding is responsible for forwarding multicast packets along such
trees.
To support a multicast forwarding function with tag switching, each
tag switch associates a tag with a multicast tree as follows. When a
tag switch creates a multicast forwarding entry (either for a shared
or for a source-specific tree), and the list of outgoing interfaces
for the entry, the switch also creates local tags (one per outgoing
interface). The switch creates an entry in its TIB and populates
(outgoing tag, outgoing interface, outgoing MAC header) with this
information for each outgoing interface, placing a locally generated
tag in the outgoing tag field. This creates a binding between a
Rekhter, et. al. Informational [Page 8]
RFC 2105 Cisco's Tag Switching Architecture February 1997
multicast tree and the tags. The switch then advertises over each
outgoing interface associated with the entry the binding between the
tag (associated with this interface) and the tree.
When a tag switch receives a binding between a multicast tree and a
tag from another tag switch, if the other switch is the upstream
neighbor (with respect to the multicast tree), the local switch
places the tag carried in the binding into the incoming tag component
of the TIB entry associated with the tree.
When a set of tag switches are interconnected via a multiple-access
subnetwork, the tag allocation procedure for multicast has to be
coordinated among the switches. In all other cases tag allocation
procedure for multicast could be the same as for tags used with
destination-based routing.
4.4. Flexible routing (explicit routes)
One of the fundamental properties of destination-based routing is
that the only information from a packet that is used to forward the
packet is the destination address. While this property enables highly
scalable routing, it also limits the ability to influence the actual
paths taken by packets. This, in turn, limits the ability to evenly
distribute traffic among multiple links, taking the load off highly
utilized links, and shifting it towards less utilized links. For
Internet Service Providers (ISPs) who support different classes of
service, destination-based routing also limits their ability to
segregate different classes with respect to the links used by these
classes. Some of the ISPs today use Frame Relay or ATM to overcome
the limitations imposed by destination-based routing. Tag switching,
because of the flexible granularity of tags, is able to overcome
these limitations without using either Frame Relay or ATM.
To provide forwarding along the paths that are different from the
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -