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.