Tuesday, April 12, 2011

How To's

Definitely looking to start publishing my How To's or technet very soon.




----
Regards
Oluwaseun

Friday, March 14, 2008

Using Linux as a Router

Linux can be a terrific "poor man’s" router. It takes a little more startup configuration than a typical
hardware router, but once it is going, very little will stop it, at least in our experience. We’ve been using
the router setup detailed below in production for six months now (a few months more worth of
pilot-testing), and the only faults we’ve encountered were either service-provider related or due to
water-soaked cables -- unbelievable, but true, and a really long story I won’t get into here!

Concepts

Since I’m about to describe how to roll your own router, it will help if you understand how most TCP/IP
routing works. Any router, whether Cisco, Proteon, or Linux, is based upon the premise that packets
need to be forwarded. Why? Because, presumably, the packets that come in on one interface are not
local to the other interfaces in the router. Therefore, the router in question must be able to take a packet,
look at its destination, and forward it to the appropriate interface.

How does the router map network destinations to interfaces? Well, just as every router needs to be able
to forward packets, so too it needs the ability to consult, build, and update a lookup table, called a
routing table, that maps destination networks to interfaces.

If a packet comes in for network X, the routing table is consulted and the packet is dumped to the
appropriate interface -- a local node that is either another gateway or the packet’s final destination. If
network X does not exist in the routing table, the packet is dumped to the default destination, also
denoted by IP address 0.0.0.0. If you have not specified a default destination, the packet is dropped, and
an ICMP "Destination Unreachable" message is sent back to the originating network client.

How does the router maintain the routing table? In two ways: statically and dynamically. Static routes
are added by you, in a known, and sometimes tedious, fashion. Typically, default routes are static routes.

Dynamic routes are "learned" routes, learned by some sort of routing protocol. For our installation, we
were only interested in one routing protocol, RIP (Routing Information Protocol). It is simple, and
widely available.

When a RIP router sees a RIP packet (which is a broadcast packet -- good to know for troubleshooting
purposes), it updates the routing table so that future packets will follow the learned route to the new
destination.

By the same token, the router "advertises" when it has a destination that other machines should know
about. Obviously, routers that need to talk to each other need to speak the same protocol, or all is
confusion!

Although RIP is okay for small networks with non-variable subnet masks, you will want to check out
OSPF and BGP if you are about to embark on a complex networking plan. First of all, RIP is a broadcast
protocol, which means your network is subject to broadcast storms. Second, RIPgives no "weight" to
any particular route -- one route is considered as good as another. For example, RIP would consider your
9.6KBps backup link to a site to be just as good as a your primary 56KBps link.