rfc1620.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,067 行 · 第 1/3 页
TXT
1,067 行
(1) Hop-by-Hop Redirection
In this approach, the host Redirect mechanism is extended to
collapse multiple-hop paths within the same shared medium, hop-
by-hop. A router is to be allowed to send, and a host allowed
to accept, a Redirect message that specifies a foreign IP
address within the same SM. We refer to this as a "foreign
Redirect". Section 4.1 analyzes this approach in some detail.
(2) Extended Routing
Routing protocols can be modified to know about the SM and to
provide LL addresses.
(3) Extended Proxy ARP
This is a form of the proxy ARP approach, in which the routing
problem is solved implicitly by an extended address resolution
mechanism at the LL. This approach has been described by
Heinanen [Heinanen93] and by Garrett et al [Garratt93].
(4) Route Query Messages
This approach has been suggested by Halpern [Halpern93]. Rather
than adding additional information to routing, this approach
would add a new IP-layer mechanism using end-to-end query and
reply datagrams.
These four are discussed in the following four subsections.
4.1 Hop-by-Hop Redirection
The first scheme we consider would operate at the IP layer. It
would cut out extra hops one by one, with each router in the path
Braden, Postel & Rekhter [Page 7]
RFC 1620 Shared Media IP Architecture May 1994
operating on local information only. This approach requires both
host and router changes but no routing protocol changes.
The basic idea is that the first-hop router, upon observing that
the next hop is within the same SM, sends a foreign Redirect to
the source, redirecting it to the next hop. Successive
application of this algorithm at each intermediate router will
eventually result in a direct path from source host to destination
host, if both are within the same SM.
Suppose that Ha wants to send a datagram to Hd. We use the
notation IP.a for the IP address of entity a, and LL.a for the
corresponding LL address. Each line in the following shows an IP
datagram and the path that datagram will follow, separated by a
colon. The notation "Redirect( h, IP.a)" means a Redirect
specifying IP.a as the best next hop to reach host h.
(1) Datagram 1: Ha -> R2 -> R3 -> R4 -> Hd
(2) Redirect(Hd, IP.R3): R2 -> Ha
(3) Datagram 2: Ha -> R3 -> R4 -> Hd
(4) Redirect(Hd, IP.R4): R3 -> Ha
(5) Datagram 3: Ha -> R4 -> Hd
(6) Redirect(Hd, IP.Hd): R4 -> Ha
(7) Datagram 4: Ha -> Hd
There are three problems to be solved to make hop-by-hop
redirection work; we label them HH1, HH2, and HH3.
HH1: Each router must be able to resolve the LL address of the
source Ha, to send a (foreign) Redirect.
Let us assume that the link layer provides the source LL
address when an IP datagram arrives. If the router
determines that a Redirect should be sent, then it will be
sent to the source LL address of the received datagram.
HH2: A source host must be able to perform address resolution to
obtain the LL address of each router to which it is
redirected.
It would be possible for each router R, upon sending a
Redirect to Ha, to also send an unsolicited ARP Reply point-
Braden, Postel & Rekhter [Page 8]
RFC 1620 Shared Media IP Architecture May 1994
to-point to LL.Ha, updating Ha's ARP cache with LL.R.
However, there is not guarantee that this unsolicited ARP
Reply would be delivered. If it was lost, there would be a
forwarding black hole. The host could recover by starting
over from the original default router; however, this may be
too inefficient a solution.
A much more direct and efficient solution would introduce an
extended ICMP Redirect message (call it XRedirect) that
carries the LL address as well as the IP address of the
target. This would remove the issue of reliable delivery of
the unsolicited ARP described earlier, because the fate of
the LL address would be shared with the IP target address;
both would be delivered or neither would. (An XRedirect is
essentially the same as a Redirect in the OSI ES-IS
protocol).
Using XRedirect, the previous example becomes:
(1) Datagram 1: Ha -> R2 -> R3 -> R4 -> Hd
(2) XRedirect(Hd, IP.R3, LL.R3): R2 -> Ha
(3) Datagram 2: Ha -> R3 -> R4 -> Hd
(4) XRedirect(Hd, IP.R4, LL.R4): R3 -> Ha
(5) Datagram 3: Ha -> R4 -> Hd
(6) XRedirect(Hd, IP.Hd, LL.Hd): R4 -> Ha
(7) Datagram 4: Ha -> Hd
HH3: Each router should be able to recognize when it is the first
hop in the path, since a Redirect should be sent only by the
first hop router. Unfortunately this will be possible only
if the LL address corresponding to the IP source address has
been cached from an earlier event; a router in this chain
determines the LL address of the source from the arriving
datagram (see HH1 above). If it cannot determine whether it
is the first hop, a router must always send an [X]Redirect,
which will be spurious if the router is not the first hop.
Such spurious [X]Redirects will be sent to the IP address of
the source host, but using the LL address of the previous-hop
router. The propagation scope of [X]Redirects can be limited
to a single IP hop (see below), so they will go no further
than the previous-hop router, where they will be discarded.
Braden, Postel & Rekhter [Page 9]
RFC 1620 Shared Media IP Architecture May 1994
However, there will be some router overhead to process these
useless [X]Redirects
Next, we discuss the changes in hosts and in routers required for
hop-by-hop redirection.
o Host Changes
The Host Requirements RFC [RFC-1122] specifies the host
mechanism for routing an outbound datagram in terms of
sending the datagram directly to a local destination or else
to the first hop router (to reach a foreign destination)
[RFC-1122 3.3.1]. Although this mechanism assumes a local
address, a foreign address for a first-hop router should work
equally well.
The target address contained in the routing cache is updated
by Redirect messages. There is currently a restriction on
what target addresses may be accepted in Redirect messages
[RFC-1122 3.2.2.2], which would prevent foreign Redirects
from working:
A Redirect message SHOULD be silently discarded if the
new router address it specifies is not on the same
connected (sub-) net through which the Redirect arrived,
or if the source of the Redirect is not the current
first-hop router for the specified destination.
To support foreign Redirects requires simply removing the
first validity check. The second check, which requires an
acceptable Redirect to come from the node to which the
datagram that triggered the Redirect was sent, is retained.
The same validity check would be used for XRedirects.
In order to send a datagram to the target address found in
the routing cache, a host must resolve the IP address into a
LL address. No change should be necessary in the host's IP-
to-LL resolution mechanism to handle a foreign rather than a
local address.
The Hop-by-Hop redirection requires changes to the semantics
of the IP address that an ICMP Redirect is allowed to carry.
Under the present definition [Postel81b], an ICMP Redirect
message is only allowed to carry an IP address of a router.
In order for the hop-by-hop redirection mechanism to
eliminate all router hops, allowing two hosts connected to
the same SM to communicate directly, a [X]Redirect message
must be able to carry the IP address of the destination host.
Braden, Postel & Rekhter [Page 10]
RFC 1620 Shared Media IP Architecture May 1994
o Router Changes
The router changes required for hop-by-hop redirection are
much more extensive than the host changes. The examples
given earlier showed the additional router functions that
would be needed.
Consider a router that is connected to an SM. When it
receives a datagram from the SM, it tests whether the next
hop is on the same SM, and if so, it sends a foreign
XRedirect to the source host, using the link layer address
with which the datagram arrived.
A router should avoid sending more than a limited number of
successive foreign Redirects to the same host. This is
necessary because an unmodified host may legitimately ignore
a Redirect to a foreign network and continue to forward
datagrams to the same router. A router can accomplish this
limitation by keeping a cache of foreign Redirects sent.
Note that foreign Redirects generated by routers according to
these rules, like the current local Redirects, may travel
exactly one link-layer hop. It is therefore reasonable and
desirable to set their TTL to 1, to ensure they cannot stray
outside the SM.
The extra check needed to determine whether to generate a
Redirect may incur additional processing and thus result in a
performance degradation; to avoid this, a router may not
perform the check at all but just forward the packet. The
scheme with [X]Redirects is not applicable to such a router.
Finally, note that the hop-by-hop redirection scheme is only
applicable when the source host is connected to an SM, since
routers do not listen to Redirects. To optimize the
forwarding of transit traffic between entry and exit border
routers, an extension to routing is required, as discussed in
the following section. Conversely, an extension to the
routing protocol cannot be used to optimize forwarding
traffic from a host connected to the SM, since a host should
not listen to routing protocols.
4.2 Extended Routing
The routing protocols may be modified to carry additional
information that is specific to the SM. The router could use the
attribute "SameSM" for a route to deduce the shortest path to be
reported to its neighbors. It could also carry the LL addresses
Braden, Postel & Rekhter [Page 11]
RFC 1620 Shared Media IP Architecture May 1994
with each router IP address.
For example, the extended routing protocol would allow R2 to know
that R4 is the best next-hop to reach the destination network in
the same SM, and to know both IP.R4 and LL.R4, leading to the path
Ha->R2->R4->Hb. Further optimization cannot be done with extended
routing alone, since the host does not participate in routing, and
because we want the routing protocol to handle only per-network
information, not per-host information. Hop-by-hop redirection
could then be used to eliminate all router hops, as in the
following sequence:
(1) Datagram 1: Ha -> R2 -> R4 -> Hd
(2) XRedirect(Hd, IP.R4, LL.R4): R2 -> Ha
(3) Datagram 2: Ha -> R4 -> Hd
(4) XRedirect(Hd, IP.Hd, LL.Hd): R4 -> Ha
(5) Datagram 3: Ha -> Hd
There are three aspects to the routing protocol extension:
(1) the ability to pass "third-party" information -- a router
should be able to specify the address (IP address and perhaps
LL address) of some other router as the next-hop;
(2) knowledge of the "SameSM" attribute for routes; and
(3) knowledge of LL addresses corresponding to IP addresses of
routers within the same SM.
A router must be able to determine that a particular IP address
(e.g., the source address) is in the same SM. There are several
possible ways to make this information available to a router in
the SM.
(1) A router may use a single physical interface to an SM; this
implies that all its logical interfaces lie within the same
SM.
(3) There might be some administrative structure in the IP
addresses, e.g., all IP addresses within a particular
national SM might have a common prefix string.
(3) There might be configuration information, either local to the
router or available from some centralized server (e.g, the
Braden, Postel & Rekhter [Page 12]
RFC 1620 Shared Media IP Architecture May 1994
DNS). Note that a router could consult this server in the
background while continuing to forward datagrams without
delay. The only consequence of a delay in obtaining the
"SameSM" information would be some unnecessary (but
temporary) hops.
4.3 Extended Proxy ARP
The approach of Heinanen [Heinanen93] was intended to solve the
problem of address resolution in a shared medium with no broadcast
mechanism ("Non-Broadcast, MultiAccess" or NBMA). Imagine that
the shared medium has a single IP network number, i.e., it is one
network "cloud". Heinanen envisions a set of AR Servers within
this medium. These AR Servers run some routing protocol among
themselves. A source host issues an ARP Request (via a point-to-
point LL transmission) to an AR Server with which it is
associated. This ARP Request is forwarded hop-by-hop at the link
layer through the AR Servers, towards the AR Server that is
associated with the destination host. That AR Server resolves the
address (using information learned from either host advertisement
or a configuration file), and returns an ARP Reply back through
the AR Servers to the source host.
Ha Hb Hc Hd
| | | |
---- | ---------- | ---------- | ---------- | ----
( )
( Shared Medium (One Logical Network) )
( )
----|--|---------|------------|----------|----|---
| | | | | |
- R1 - | | | | --- R5 ---
____|__ __|____ __|____ _|_____
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?