STEEM Course: IPv4 Routing Primer (Part 6)

avatar
(Edited)

Hello and welcome! After a hiatus of literally being too sick to clear my head enough to post technical content, I am back at it. I am currently working on a video course regarding Routing for IP version 4, and I've decided to post my slides and scripts here on STEEM as I go along. This content in this form is a STEEM exclusive. I appreciate any feedback or suggestions, or if you are new to the world of computer networking, I hope you enjoy them! If you are brand new to the topic, I recommend that you review my previous course posted on STEEM titled IP Version 4 Addressing And Subnetting Deep Dive.

Here is part 6 of a multi-part series. In this section, we will learn about Routing Information Protocol (RIP), and have an introduction to Enhanced Interior Gateway Routing Protocol (EIGRP). How many parts will there be? I have no idea because I am posting them as I go along. This and all @steempeak initiated posts will have a 4% beneficiary set to @null to help fight inflation.


If you missed any sections, click one of the links below for your favorite front end:
PART 1:
https://steempeak.com/stem/@joshman/steem-course-ipv4-routing-primer-part-1
https://busy.org/@joshman/steem-course-ipv4-routing-primer-part-1
https://steemit.com/stem/@joshman/steem-course-ipv4-routing-primer-part-1
PART 2:
https://steempeak.com/stem/@joshman/steem-course-ipv4-routing-primer-part-2
https://busy.org/@joshman/steem-course-ipv4-routing-primer-part-2
https://steemit.com/stem/@joshman/steem-course-ipv4-routing-primer-part-2
PART 3:
https://steempeak.com/stem/@joshman/steem-course-ipv4-routing-primer-part-3
https://busy.org/@joshman/steem-course-ipv4-routing-primer-part-3
https://steemit.com/stem/@joshman/steem-course-ipv4-routing-primer-part-3
PART 4:
https://steempeak.com/stem/@joshman/steem-course-ipv4-routing-primer-part-4
https://busy.org/@joshman/steem-course-ipv4-routing-primer-part-4
https://steemit.com/stem/@joshman/steem-course-ipv4-routing-primer-part-4
PART 5:
https://steempeak.com/stem/@joshman/steem-course-ipv4-routing-primer-part-5
https://busy.org/stem/@joshman/steem-course-ipv4-routing-primer-part-5
https://steemit.com/stem/@joshman/steem-course-ipv4-routing-primer-part-5

netdivide.png

Routing Information Protocol (RIP)

IRP SEC6S1.jpg

The first distance vector routing protocol we will discuss is the Routing Information Protocol (RIP). RIP is based on the Bellman-Ford Algorithm, and is a defined standard in RFC 2453. The current version for IPv4 is RIP version 2, although a newer version exists for IPv6 called RIPng.

RIP communicates using UDP port 520 IP packets

The Bellman-Ford algorithm utilizes hop count as a metric, where a network can be a maximum of 15 hops wide, and a metric of 16 hops represents an unreachable network or infinite metric.

Advantages of RIP include:

  • Easy setup for small networks

Disadvantages include:

  • It’s a slow and inefficient protocol, and requires significant router resources
  • It has a low maximum hop count, so network size is constrained

netdivide.png

IRP SEC6S2.jpg

RIP will form neighbors with other connected neighbors also running RIP. Neighbors exchange their full RIP table every 30 seconds via an update message.

Routes not refreshed, will be declared invalid after 3 updates or 180 seconds. If invalid, they will be removed from the table after 240 seconds.

netdivide.png

IRP SEC6S3.jpg

RIP is considered a slow protocol. You can see evidence of this by examining the timers associated with RIP. Let’s go over each one.

Update timer
Every 30 seconds by default, RIP sends its entire table to its neighbors. This is the interval that new routes are added, and also serves as the mechanism to verify a neighbor is still up.

Invalid timer
If a specific route is not received within an update, this kicks off the invalid timer. If the router does not receive this route within an update before the invalid timer expires, the route is declared invalid.

Flush timer
If a route has been declared invalid, it will be removed from the RIP table after 240 seconds since it was last seen in an update.

Hold-down timer
If a new route update appears on the network for an existing route, it will not be trusted for 180 seconds after it was received. This prevents routing loops from occurring when the network is in a transitional state.

netdivide.png

IRP SEC6S4.jpg

RIP uses the concept of hop count to determine the path traffic should take through the network. A hop is simply defined as a layer 3 device such a router that exists between the source and destination.

In our example, we have 7 routers. A host on the 10.10.10.0/24 network residing on router 0 wants to reach another host on the 172.16.1.0.24 network residing on router 6. Once the packet hits router 1 there are two possible paths to reach router 6. Because the path that goes directly from router 1 to router 5 has 3 hops, it will be the path RIP chooses. The other path has a total of 5 hops, so it will not be used unless the link between routers 1 and 5 loses connectivity. In that case RIP will converge around the less optimal path.

netdivide.png

IRP SEC6S5.jpg

Two concepts I’d like to go over for RIP are route poisoning and poison reverse

Route poising occurs by default when a router has a directly connected route drop, and it in turn needs to quickly advertise the unavailability of that route. To accomplish this, the router simply advertises the route with the hop count set to 16, which we know is considered an invalid route in RIP. This system prevents loops from forming in the network.

Poison reverse is a configured feature that goes against the split horizon rule, however the route it advertizes back, has it’s hop count set to 16, which poisons the route, making it unusable. The feature is useful in cases where you want to tell the neighboring router: “you can never ever get to the route you are sending me if your route goes down.

netdivide.png

Enhanced Interior Gateway Routing Protocol (EIGRP)

IRP SEC6S6.jpg

EIGRP uses the Diffusing Update Algorithm (DUAL) in order to perform its routing decisions. It is classed as a distance vector protocol, and it does have some similar characteristics to a pure distance vector protocol, but it’s more of a quasi distance vector protocol. It is a Cisco Proprietary protocol, though parts of it were released to the public via RFC 7868. Some features were not released to the public. EIGRP uses its own IP protocol (88) for communication, putting it on par with protocols like TCP, UDP, and ICMP. EIGRP also uses multicast for communication, specifically the multicast address 224.0.0.10 representing all EIGRP routers on a network segment.

One of the advantages of EIGRP is that is has triggered updates, meaning a change in the network will result in an immediate updated being propagated throughout the network. It’s a very fast protocol that converges very rapidly with very little tuning. It’s also very easy to configure, and you can stand up a full basic EIGRP implementation with very few lines of configuration.

As stated, one disadvantage is that it is a Cisco proprietary protocol, so not all vendors support it. Cisco has submitted an RFC standard for EIGRP, but it is a stripped down implementation of the protocol.

netdivide.png

IRP SEC6S7.jpg

The diffusing update algorithm or DUAL in EIGRP is how the protocol makes decisions regarding what routes to send to the router’s routing table. To accomplish this end, it uses a complex set of metrics. By default, it uses two of the five, which are bandwidth and delay. The remaining three, reliability, load, and MTU, are only used in corner cases in modern networks.

A router participating in EIGRP will have a list of all its directly connected neighbors maintained in a neighbor table. Membership in the neighbor table is actively managed through EIGRP hello packets, and through the use of the hello, and hold timers.

EIGRP also creates its own topology table, which is separate from the router’s routing table. This topology table introduces a number of new concepts. These include:

  • Successor route (the best route)
  • Feasible successor (alternate routes)
  • Feasibility condition (The method to determine possible feasible successors)

After the DUAL process is accomplished and no successor or feasible successor is found to install into the routing table, EIGRP will perform a query process and revert to an operation similar to RIP to find the best route.

netdivide.png

IRP SEC6S8.jpg

The basic operation of EIGRP differs from RIP. Rather than maintaining a neighbor by exchanging full tables at regular intervals, an EIGRP router simply exchanges hello messages. EIGRP routers actual send routing information via an update message, and the other side will answer with an acknowledge packet.

netdivide.png

IRP SEC6S9.jpg

EIGRP operates using 5 packet types. These include:

  • Update packets used to transmit the actual routing information
  • Query packets used to search for a new route when a feasible successor does not exist
  • Reply packets used to respond to received query packets
  • Acknowledge packets used to acknowledge the receipt of updates, queries, and replies

netdivide.png

IRP SEC6S10.jpg

EIGRP is a very fast protocol. The protocol timers are focused on maintaining neighbor relationships, because the database updates are triggered instantly by network events.

EIGRP timers include the hello and hold timers. The hello timer controls the interval at which hello packets are sent between neighbors. The hold timer decides how many hello packets can be dropped before a neighbor can be declared down. By default the hold timer is three times the hello timer, meaning after three missed hellos a neighbor will be declared dead or down.

By default EIGRP creates two different hello/hold timer pairs based upon the link speed. A high speed link is considered faster than a T1 or over 1.544 Mbps, while a slow-speed link is considered a T1 or slower.

netdivide.png

Thanks for viewing! I hope this subject was of some interest to you. In the next part, we will continue to examine the features of EIGRP.



0
0
0.000
6 comments
avatar

Congratulations @joshman! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 38000 upvotes. Your next target is to reach 39000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

You can upvote this notification to help all Steem users. Learn how here!

0
0
0.000
avatar


This post has been voted on by the SteemSTEM curation team and voting trail. It is elligible for support from @curie and @minnowbooster.

If you appreciate the work we are doing, then consider supporting our witness @stem.witness. Additional witness support to the curie witness would be appreciated as well.

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Thanks for having included @steemstem in the list of beneficiaries of this post. This granted you a stronger support from SteemSTEM. Note that using the steemstem.io app could have yielded an even more important support.

0
0
0.000
avatar

Hi @joshman!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 3.728 which ranks you at #5509 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 109 contributions, your post is ranked at #12.

Evaluation of your UA score:
  • You're on the right track, try to gather more followers.
  • The readers appreciate your great work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

0
0
0.000
avatar
(Edited)

I do apologize and I did edit my comment. :(

Please remove your downvotes.

0
0
0.000
avatar

Use of the word Nazi. Kindly don't comment on my posts if it's not related to the subject. Learn how to use a memo.

0
0
0.000
avatar

I apologize again. Please remove your flags. I did change my comment. Comments are even a pain for me. I saw your downvote before I saw what it was on.

  1. more recently, it has become a slang term used to described people who are overly concerned about details (in an unhealthy way), and like to correct others on every occasion they get. Especially evident on internet forums, blogs, and youtube
    https://www.urbandictionary.com/define.php?term=nazi

It was also on Seinfeld.

0
0
0.000