December 1, 2013

RIP: Routing Information Protocol


A Routing Protocol Based on the Distance-Vector Algorithm
Objective
The objective of this lab is to configure and analyze the performance of the Routing Information Protocol (RIP) model.
Overview
A router in the network needs to be able to look at a packet’s destination address and then determine which of the output ports is the best choice to get the packet to that address. The router makes this decision by consulting a forwarding table. The fundamental problem of routing is: How do routers acquire the information in their forwarding tables?
Routing algorithms are required to build the routing tables and hence forwarding tables. The basic problem of routing is to find the lowest-cost path between any two nodes, where the cost of a path equals the sum of the costs of all the edges that make up the path. Routing is achieved in most practical networks by running routing protocols among the nodes. The protocols provide a distributed, dynamic way to solve the problem of finding the lowest-cost path in the presence of link and node failures and changing edge costs.
One of the main classes of routing algorithms is the distance-vector algorithm. Each node constructs a vector containing the distances (costs) to all other nodes and distributes that vector to its immediate neighbors. RIP is the canonical example of a routing protocol built on the distance-vector algorithm. Routers running RIP send their advertisements regularly (e.g., every 30 seconds). A router also sends an update message whenever a triggered update from another router causes it to change its routing table.
In this lab you will set up a network that utilizes RIP as its routing protocol. You will analyze the routing tables generated in the routers, and you will observe how RIP is affected by link failures.
Procedure
Create a New Project
1. Start OPNET IT Guru Academic Edition ⇒ Choose New from the File menu.
2. Select Project and click OK ⇒ Name the project <your initials>_RIP, and the scenario NO_Failure ⇒ Click OK.
3. In the Startup Wizard: Initial Topology dialog box, make sure that Create Empty Scenario is selected Click Next Select Campus from the Network Scale list ⇒ Click Next three times ⇒ Click OK.
Create and Configure the Network
The ethernet4_slip8_ gtwy node model represents an IP-based gateway supporting four Ethernet hub interfaces and eight serial line interfaces. IP packets arriving on any interface are routed to the appropriate output interface based on their destination IP address. The Routing Information Protocol (RIP) or the Open Shortest Path First (OSPF) protocol may be used to dynamically and automatically create the gateway's routing tables and select routes in an adaptive manner.
Initialize the Network:
  1. The Object Palette dialog box should now be on top of your project workspace. If it is not there, open it by clicking clip_image004. Make sure that the internet_toolbox is selected from the pull-down menu on the object palette.
  1. Add to the project workspace the following objects from the palette: one ethernet4_slip8_gtwy router and two 100BaseT_LAN objects.
a. To add an object from a palette, click its icon in the object palette ⇒ Move your mouse to the workspace ⇒ Click to place the object ⇒ Right-click to stop creating objects of that type.
  1. Use bidirectional 100BaseT links to connect the objects you just added as in the following figure. Also, rename the objects as shown (right-click on the node ⇒ Set Name).
  1. Close the Object Palette dialog box.
  1. Save your project.
clip_image006
Configure the Router:
  1. Right-click on Router1Edit Attributes ⇒ Expand the IP Routing Parameters hierarchy and set the following:
i. Routing Table Export = Once at End of Simulation. This asks the router to export its routing table at the end of the simulation to the simulation log.
  1. Click OK and then save your project.
Add the Remaining LANs:
The PPP_DS3 link has a data rate of 44.736 Mbps.
1. Highlight or select simultaneously (using shift and left-click) all five objects that you currently have in the project workspace (one router, two LANs, and two links). You can click-and-drag a box around the objects to do this.
2. Press Ctrl+C to copy the selected objects and then press Ctrl+V to paste them.
3. Repeat step 2 three times to generate three new copies of the objects and arrange them in a way similar to the following figure. Rename all objects as shown.
4. Connect routers, as shown, using PPP_DS3 links.
clip_image008

Choose the Statistics
RIP traffic is the total amount of RIP update traffic (in bits) sent/received per second by all the nodes using RIP as the routing protocol in the IP interfaces in the node.
Total Number of Updates is the number of times the routing table at this node gets updated (e.g., due to a new route addition, an existing route deletion, and/or a next hop update).
To test the performance of the RIP protocol, we will collect the following statistics:
  1. Right-click anywhere in the project workspace and select Choose Individual Statistics from the pop-up menu.
  1. In the Choose Results dialog box, check the following statistics:
    1. Global Statistics RIP Traffic Sent (bits/sec).
    1. Global Statistics RIP Traffic Received (bits/sec).
    1. Nodes Statistics Route Table Total Number of Updates.
  1. Click OK and then save your project.
Configure the Simulation
Auto Addressed means that all IP interfaces are assigned IP addresses automatically during simulation. The class of address (e.g., A, B, or C) is determined based on the number of hosts in the designed network. Subnet masks assigned to these interfaces are the default subnet masks for that class.
Export causes the auto-assigned IP interface to be exported to a file (name of the file is <net_name>-ip_addresses.gdf and gets saved in the primary model directory).
Here we need to configure some of the simulation parameters:
1. Click on clip_image010 and the Configure Simulation window should appear.
2. Set the duration to be 10.0 minutes.
3. Click on the Global Attributes tab and change the following attributes:
a. IP Dynamic Routing Protocol = RIP. This sets the RIP protocol to be the routing protocol of all routers in the network.
b. IP Interface Addressing Mode = Auto Addressed/Export.
c. RIP Sim Efficiency = Disabled. If this attribute is enabled, RIP will stop after the "RIP Stop Time." But we need the RIP to keep updating the routing table in case there is any change in the network (as we will see in the second scenario).
4. Click OK and then save the project.
clip_image012

Duplicate the Scenario
In the network we just created, the routers will build their routing tables, and then they will not need to update them further because we didn’t simulate any node or link failures. In this scenario we will simulate failures so that we can compare the behavior of the routers in both cases.
1. Select Duplicate Scenario from the Scenarios menu and name it Failure
Click OK.
2. Open Object Palette by clicking clip_image004[1]. Select the Utilities palette from the drop-down menu.
4
3. Add a Failure Recovery object to your workspace and name it Failure as shown ⇒ Close the Object Palette dialog box.
clip_image014

4. Right-click on the Failure object ⇒ Edit Attributes ⇒ Expand the Link Failure/Recovery Specification hierarchy Set rows to 1 Set the attributes of the added row, row 0, as follows:
clip_image016

This will “fail” the link between Router1 and Router2 200 seconds into the simulation.
5. Click OK and then save the project.
Run the Simulation
To run the simulation for both scenarios simultaneously:
1. Go to the Scenarios menu ⇒ Select Manage Scenarios.
2. Change the values under the Results column to <collect> (or <recollect>) for both scenarios. Compare to the following figure.
clip_image018

3. Click OK to run the two simulations. Depending on the speed of your processor, this may take several seconds to complete.
4. After the two simulation runs complete, one for each scenario, click Close ⇒ Save your project.
View the Results
Compare the Number of Updates:
1. Select Compare Results from the Results menu.
2. Change the drop-down menu in the right-lower part of the Compare Results dialog box to Stacked Statistics as shown.
clip_image020
3. Select the Total Number of Updates statistic for Router1 and click Show.
4. You should get two graphs, one for each scenario. Right-click on each graph and select Draw StyleBar.
5. The resulting graphs should resemble the following (you can zoom in on the graphs by clicking-and-dragging a box over the region of interest):
clip_image022
Obtain the IP Addresses of the Interface:
Before checking the contents of the routing tables, we need to determine the IP address information for all interfaces in the current network. Recall that these IP addresses are assigned automatically during simulation, and we set the global attribute IP Interface Addressing Mode to export this information to a file.
1. From the File menu choose Model FilesRefresh Model Directories. This causes OPNET IT Guru to search the model directories and update its list of files.
  1. From the File menu choose Open ⇒ From the drop-down menu choose Generic Data File Select the <your initials>_RIP-NO_Failure-ip_addresses file (the other file created from the Failure scenario should contain the same information) ⇒ Click OK.
clip_image024


  1. The following is a part of the gdf file content. It shows the IP addresses assigned to the interfaces of Router1 in our network. For example the interface of Router1 that is connected to Net11 has the IP address 192.0.0.1 (Note: Your result may vary due to different nodes placement.) The Subnet Mask associated with that interface indicates that the address of the subnetwork, to which the interface is connected, is 192.0.0.0 (i.e., the logical AND of the interface IP address and the subnet mask).
clip_image026
  1. Print out the layout of the network you implemented in this lab. On this layout, from the information included in the gdf file, write down the IP addresses associated with Router1 as well as the addresses assigned to each subnetwork as shown in the following two figures (Note: Your IP addresses may vary due to different nodes placement.)
clip_image028


Compare the Routing Tables Content:
  1. To check the content of the routing tables in Router1 for both scenarios:
i. Go to the Results menu ⇒ Open Simulation Log ⇒ Expand the hierarchy on the left as shown below ⇒ Click on the field COMMON ROUTE TABLE.
clip_image030
2. Carry out the previous step for both scenarios. The following are partial contents of Router1’s routing table for both scenarios (Note: Your results may vary due to different nodes placement):
Routing table of Router1 (NO_Failure scenario):
clip_image032

Loopback interface allows a client and a server on the same host to communicate with each other using
TCP/IP.
Routing table of Router1 (Failure scenario):
clip_image034

4 comments:

C program to Read From a File

#include <stdio.h> #include <stdlib.h> void main() {     FILE *fptr;     char filename[15];     char ch;   ...