








 | |
Routing

Routing is a method
of path selection (contrast bridging).
Routing assumes
that addresses have been assigned to facilitate data delivery. In particular,
routing assumes that addresses convey at least partial information about where a
host is located. This permits routers to forward packets without having to rely
either on broadcasting or a complete listing of all possible destinations. At
the IP level, routing is used almost exclusively, primarily because the Internet
was designed to construct large networks in which heavy broadcasting or huge
routing tables are infeasible.
Three general
prerequisites must be met to perform routing:
 | Design. A plan must exist by which
addresses are assigned. Typically, addresses are broken into fields
corresponding to levels in a physical hierarchy. At each level of the
hierarchy, only the corresponding field in the address is used, permitting
addresses to be handled in blocks. In IP, the most common designs are IP
Address Classes, Subnetting,
and CIDR.
 | Implementation. The design plan must
be implemented in switching nodes, which must be able to extract path
information from the addresses. Since router programming is generally not
under a designer's control, designs must be limited by the features provided
by manufacturers. Subnetting's great appeal lies in its great flexibility,
while using a fairly simple implementation model.
 | Enforcement. The plan must be
enforced in host addressing. A design is useless unless addresses are
assigned in accordance with it. Addressing authority must be centralized,
possible with subsets of the available addressing space delegated to
subordinates. |
| |
In
the Internet environment, routing is almost always used at the IP level, and
bridging almost always used at the Data Link Layer. For new network
installations, the best advice is to plan for routing even if it's not used at
first. This requires some advanced planning to design an addressing scheme that
will work. However, the overhead is all human - hardware won't know the
difference between organized and haphazard addressing schemes. Plan for the
ability to put routers in strategic locations, even if those locations will
initially use bridges or just signal boosters (such as Ethernet hubs and
repeaters). In this manner, routers can be easily added later. Nothing is more
frustrating that knowing exactly where a router should be added... and knowing
that a hundred addresses must be changed before it can be.
Source Routing is a technique whereby
the sender of a packet can specify the route that a packet should take through
the network.
Remember that as a packet travels through the network, each router will examine
the "destination IP address" and choose the next hop to forward the
packet to. In source routing, the "source" (i.e. the sender) makes
some or all of these decisions
In strict source routing, the sender specifies the exact route the packet must
take. This is virtually never used.
The more common form is loose source record route (LSRR), in which the sender
gives one or more hops that the packet must go through. In high-level terms, it
may look like: To: Alice
From: Bob
Via: Mark
Source routing is used for the following purposes:
mapping the network
used with traceroute in order to find all the routes between points on the
network.
troubleshooting
trying to figure out from point "A" why machines "F" and
"L" cannot talk with each other.
performance
a network manager might decide to force an alternate link (such as a satellite
connection) that is slower, but avoids congesting the correct routes
hacking
(explained below)
LSRR can be used in a number of ways for hacking purposes. Sometimes machines
will be on the Internet, but will not be reachable. (It may be using a private
address like 10.0.0.1). However, there may be some other machine that is
reachable to both sides that forwards packets. Someone can then reach that
private machine from the Internet by source routing through that intermediate
machine.

|