I'm trying to figure out the differences(pros/cons) between two routing protocols approach and I would be great-full for any help, advice and explanation. As far I can say that it seems like distance vector is more static and more local based routing, since it doesn't know the network state whereas link state is more aware of current states therefore it seems more natural to use it over distance-vector, but I have a feeling like I'm missing something. And I would be glad to here about more aspects and different issues I have to consider while choosing one of them.
Distance Vector
Pure distance vector protocols are rare; the only one really remaining in any sort of use is RIP. EIGRP, a Cisco proprietary protocol, is also technically distance vector, but it makes use of several optimisations that allow it to overcome the traditional shortcomings of distance vector protocols. Distance vector protocols do not distribute any topology information; they simply advertise the next hop to a route, along with a cost.
Pros:
Cons:
Link state
Link-state protocols function by advertising each router's connected interfaces to every other device in the routing domain. Effectively, each device builds a database of the full network topology, and uses this database to determine the best path to each destination network.
The two major link-state protocols in use are OSPF and IS-IS; both are based around an implementation of Dijkstra's algorithm. OSPF is the more well-known of the two; IS-IS tends to be found more in service provider networks.
Pros:
Cons:
Protocol choice
In terms of which protocol type you should use, it depends on your requirements. In general, unless you are being forced to do so by a vendor, RIP should not be used. If you are running an all Cisco network, EIGRP can be brought up with very little manual configuration. If interoperability between vendors is a requirement, OSPF may be a better choice. As mentioned in another answer, if you are going to be exchanging routes with a 3rd party, BGP is the protocol of choice.
One last point: dynamic routing protocols are useful only when your topology is redundant, and you need automatic failover. If you have a single router which supports all of your LAN environments and your ISP circuit, then a default route to your ISP would be more than sufficient.
Personally I would choose your routing protocol not the way it works. Now days the right answer is practically always OSPF if its an internal network. If its an external network then the answer is probably BGP ( but you wouldn't be asking in that case ). Link state protocols have fast convergence.
OSPF is a link state protocol, an open standard.
RIP can still be used on tiny networks or to redistribute routing from simple devices to more complex devices ( or to inject default routes )
I'm no expert, but... I seem to recall this old formula for just this kind of thing:
(increasing stabilty) x (decreasing latency) = (weighted score for a route)
Just chipping in
.02
cents. Hope it will help with your considerations.I 100% agree with james -- use the routing protocol based on the requirements not based on the technology.
First -- why are you considering a routing protocol? Are you redistributing routes in a multirouter environment? Are you looking for faster convergence time in a diverse route environment?
If you need complex traffic engineering and you have a complex network with diverse routes and very different link speeds, and if you are in a 100% cisco environment, you might want to consider eigrp. Otherwise, if you have a complex network and diverse routes and you want reasonable convergence times, you really only have OSPF as a choice. I guess you could consider ISIS if you want job security...
If you just want to redistribute a bunch of directly connected routes between a bunch of routers, rip is probably fine. There are quite a few routing devices that only support RIP, such as many wireless APs and cheapo routing switches.
At no point does the actual algorithm used for determining a route or preventing loops really enter into the picture.
From this page:
And from this page: