rsz_ip_forwarding_example111

IP Forwarding 

 

ip forwarding

 

IP Forwarding and Packet Forwarding

The following post discusses IP forwarding and includes an IP forwarding example. IP forwarding is a networking feature that allows a device, such as a router or a computer, to forward IP packets from one network to another. It plays a crucial role in ensuring the smooth flow of data between different networks.

When a device receives an IP packet, it examines the destination IP address to determine the next hop for forwarding it. The forwarding decision is based on the device’s routing table, which contains information about network destinations and their associated next hops.

IP forwarding is essential in scenarios where multiple networks need to be interconnected. For example, in a typical home network setup, a router acts as the gateway between the local network and the internet. When a device within the local network wants to communicate with a destination on the internet, the router forwards the IP packets to the appropriate next hop, which could be another router or an internet service provider’s network.

Highlights: IP Forwarding

  • IP Forwarding and NAT

In addition to interconnecting networks, IP forwarding enables network address translation (NAT). NAT allows multiple devices within a private network to share a single public IP address. When a device from the private network sends an IP packet to the internet, the router performing NAT modifies the packet’s source IP address to the public IP address before forwarding it. This allows the device to communicate with the internet using a single public IP address, effectively hiding the internal network structure.

  • Terminology clarification

How does a router forward ( IP forwarding ) IP Datagrams? Firstly, let us clarify some terminology. The term routing describes the functionality performed by the control software of routers. This includes routing table maintenance, static route processing, dynamic routing protocols, etc. The process of IP forwarding involves moving transit packets between interfaces. During the forwarding process, packets are examined in the forwarding table, a forwarding decision is made, and the packet is sent out of the interface.

  • Datagram networks

Datagram networks are similar to postal networks. Letters sent between people do not require a connection beforehand. Instead, they can provide their address information by dropping the note off at the local post office. A letter is sent to another post office closer to the destination by the post office. The letter traverses a set of post offices to reach the local post office.

The source and destination addresses are included in a packet in a datagram network. Packets are sent to the nearest network device, which passes them on to a device closer to the destination. Network devices make routing decisions, also known as forwarding decisions, when they receive packets. This can be determined using the packet’s destination address and routing table. Each intermediate device decides for each packet.

 

Related: Before you proceed, you may find the following post helpful for pre-information:

  1. OpenFlow protocol
  2. What is OpenFlow
  3. Data Center Performance
  4. Dead Peer Detection
  5. Network Connectivity
  6. Computer Networking

 



IP Forwarding Example.

Key What is IP Forwarding Discussion points:


  • Discussion on packet forwarding.

  • IP forwarding example.

  • The CEF process.

  • TCP performance.

  • A final note on security concerns.

 

  • A key point – Video 1: IP Forwarding 

The following video discusses the role of IP forwarding in networking. We will start by discussing switches and VLANs and then move to the basics of IP forwarding. So we have networks that are broken down into different VLANs.

So, we will have a group of switches linked together via trunk ports that provide connectivity for VLANs across different physical distances. The routers are used to route between different subnets. We will also go into the details of the role of the forwarding table within a router.

 

 

Basics of IP forwarding with an IP Forwarding example

IP routing is the process by which routers forward IP packets. Routers have to take different steps when forwarding IP packets from one interface to another, which has nothing to do with the “learning” of network routes via static or dynamic routing protocols.

Key Points on Default Gateway
Default gateways are used by hosts to reach destinations outside their networks. Default gateways are routers or multilayer switches (switches that can do routing).

A host checks if the destination is within or outside its network when it wants to send something to another host. It uses ARP to determine the destination’s MAC address when it is in the same network and can then send IP packets. What is the host’s method for checking whether the destination belongs to the same network? Subnet masks are used for this purpose.

 

IP Forwarding

Before you get into the details, let me cover the basics. A router receives a packet on one of its interfaces and then forwards the packet out of another based on the contents found in the IP header. For example, if the packet were part of a video stream ( Multicast / multi-destination), it would be forwarded to multiple interfaces. If the packet were part of a typical banking transaction ( Unicast ), it would be forwarded to one of its interfaces.

As each routing device forwards the packet in a hop-by-hop fashion, the packet’s IP header remains relatively unchanged, containing complete instructions for forwarding the packet. However, the data link headers ( the layer directly below ) may change radically at each hop to match the changing media types. 

For example, the router receives a packet on one of its attached Ethernet Segments. The routers will first look at the packet’s data-link header, which is Ethernet. If the Ether type is set to (0x800 ), indicating an IP packet ( A unicast MPLS packet has an Ethertype value of 0x8847 ), the Ethernet header is stripped from the packet, and the IP header is examined.

IP forward
Diagram: IP forward. The source is WordPress Site.

 

The following lab guide will look at an IP forwarding example. The forwarding of IP packets has nothing to do with the “learning” of network routes. The learning of routes is carried out through either static or dynamic routing protocols. Instead, IP forwarding has everything to do with routers’ steps when they forward an IP packet from one interface to another.

In our network topology, we have two host computers and two routers. Host1, on the left, will send an IP packet to Host2, which is on the right. This IP packet has to be routed by R0 and R1. Host 1 is on 192.168.1.0/24, and Host 2 is on 192.168.2.0/24

Let’s start with Host1, which creates an IP packet with its IP address (192.168.1.1) as the source and Host 2 (192.168.2.1) as the destination. So the first question that Host1 will need to determine:

  • Question: Is the destination I am trying to reach either local or remote?

To get the answers to this question, look at its IP address, subnet mask, and destination IP address.

 

Lab guide on IP Forwarding

Our network has Host1, which is in network 192.168.1.0/24. As a result, all IP addresses in the 192.168.1.1 – 254 range are local. Unfortunately, our destination (192.168.2.1, which is the remote Host) is outside the local subnet, so we must use the default gateway. In our case, the default gateway is the connected router.

Therefore, Host 1 will build an Ethernet frame and enter its source MAC address. Host 1 then has to ask itself another question. What is the destination MAC address of the default gateway, the connected router?

Analysis:

To determine this, the Host checks its ARP table to find the answer. In our case, Host1 has an ARP entry for 192.168.1.2, the default gateway. It has an ARP entry, as I did a quick testing ping before I took the screenshot. It is a dynamic entry, not a static one, as I did not manually enter this MAC address. If the Host did not have an APR entry, it would have sent an ARP request.

So, with ARP, I have the IP address, and I want to find out the MAC address as we move down the OSI model’s layers so bits can be forwarded on the wire. At this stage, the Ethernet frame carries an IP packet. Then, the frame will be on its way to the directly connected router.

This Ethernet frame makes it to R0. So, as this is a Layer 3 router and not a Host or Layer 2 switch, it has more work. So the first thing it does is check if the FCS (Frame Check Sequence) of the Ethernet frame is correct or not:

If the FCS is incorrect, the frame is dropped right away. Unfortunately, Ethernet has no error recovery; this is done by protocols on upper layers, like TCP on the transport layer.

If the FCS is correct, we will process the frame if:

  • The destination MAC address is the address of the interface of the router.
  • The destination MAC address is the subnet’s broadcast address to which the router interface is connected.
  • The destination MAC address is a multicast address that the router listens to.

Note:

In our case, the destination MAC address matches the MAC address of R0’s GigabitEthernet 0/0 interface. Therefore, the router will process it. But, first, we de-encapsulate ( which means we will extract) the IP packet out of the Ethernet frame, which is then discarded:

The router, R0, will now look at the IP packet, and the first thing it does is check if the header checksum is OK. Remember that there is also no error recovery on the Layer 3 network layer; we rely on the upper layers. Then R0 checks its routing table to see if there is a match:

Above, you can see that R0 knows how to reach the 192.168.2.0/24 network. This is because the destination address has a next-hop IP address, 192.168.10.2, which is the connecting Router – R1. It will now do a second routing table lookup to see if it can reach 192.168.10.2. This is called recursive routing. The Recursive Route Lookup follows the same logic of dividing a task into subtasks of the same type. The device repeatedly performs its routing table lookup until it finds the ongoing interface to reach a particular network.

As you can see above, there is an entry for 192.168.10.0/24 with GigabitEthernet 0/1 as the interface. Once this is done, R0 checks its local ARP table to determine if there is an entry for 192.168.10.2. Similar to the sending Host, if there were no ARP entries, R0 would have to send an ARP request to find the MAC address of 192.168.10.2. 

The next stage is that R0 builds a new Ethernet frame with its MAC address of the GigabitEthernet 0/1 interface and R1 as the destination. The IP packet is then encapsulated in this new Ethernet frame.

In the routing table, we find this:

Network 192.168.2.0/24 directly connects to R1 on its GigabitEthernet 0/1 interface. R1 will now reduce the TTL of the IP packet from 254 to 253, recalculate the IP header checksum, and check its ARP table to see if it knows how to reach 192.168.2.1. There is an ARP entry there. The new Ethernet frame is created, and the IP packet is encapsulated. Host2 then looks for the protocol field to determine what transport layer protocol we are dealing with; what happens next depends on the protocol used. 

 

Inter-network packet transfer

IP forwarding is used for inter-network packet transfer and not for inter-interface transfers. Therefore, if two interfaces are on the same network, we don’t need to enable IP forwarding.

Let us look at an IP forwarding example; consider a server with two physical ethernet ports, let’s say, your internal network and the outside world as provided by a DSL modem. The system can communicate on either network if you connect and configure those two interfaces. However, packets from one network cannot travel to another if forwarding is not enabled.

IP forwarding determines which path a packet or datagram can be sent. The process uses routing information to make decisions and is designed to send a packet over multiple networks. Generally, networks are separated from each other by routers.

IP Forwarding Example
Diagram: IP Forwarding Example.

 

IP Forwarding Example: Verifying the IP Header

The router then verifies the IP header’s contents by checking several fields to validate it. In addition, the router should check that the entire packet has been received by checking the IP length against the size of the received Ethernet packet. If these basic checks fail, the packet is deemed malformed and discarded.

Next, the router verifies the TTL field in the IP header and determines that it is greater than 1. The Time-To-Live field ( TTL ) specifies how long the packet should live, which is counted in terms of the number of routers the packet ( technically a datagram ) has traversed ( hop count ).

 IP Forwarding Example: The TTL values

The source host selects the initial TTL value and is recommended to use 64. In specific scenarios, other values are set to limit the time, in hops, that the packet should live. The TTL aims to ensure the packet does not circulate forever when there are routing loops. Each router in the path decrements the TTL field by 1 when it forwards the packet out of its interface (s). When the TTL field is decremented to 0, the packet is discarded, and a message known as an ICMP ( Internet Control Message Protocol ) TTL Exceeded is sent back to the host.

 IP Forwarding Example: Checking the Destination

For IP forwarding, the router then looks at the destination IP address, which can be either a destination host ( Unicast ), a group of destination hosts ( multicast ), or all hosts on the segment ( broadcast ). As mentioned previously, the router has what is known as a routing table, which tells it how to forward a packet, and the destination IP address is a crucial component for the routing table lookup.

Forwarding is done on a destination base; if I want to get to destination X, I must go to Y ( the source routing concept is not in this article’s scope). The contents of the router routing table are parsed, and the best-matching routing table entry is returned, indicating whether to forward the packet and, if so, the interface to forward the packet out of and the IP address of the following IP router ( if any ) in the packet’s path.

 

The CEF process

CEFs (Cisco Express Forwarding) is a packet-switching technology in Cisco routers. It is designed to enhance the performance of network forwarding by reducing the overhead associated with Layer 3 forwarding. CEF utilizes a Forwarding Information Base (FIB) and an adjacency table to forward packets to their destinations quickly.

The FIB Table

The FIB maintains a list of all known IP prefixes and their associated next-hop addresses. The adjacency table maintains information about the Layer 2 addresses of directly connected neighbors. When a packet arrives at a router, the CEF algorithm consults the FIB to determine the appropriate next-hop address. Then it uses the adjacency table to forward the packet to the correct interface.

On a Cisco device, the actual moving of the packet from the inbound interface to the outbound interface is carried out by a process known as CEF ( Cisco Express Forwarding ). CEF is a mirror image of the routing table, and any changes in the routing table are reflected in the CEF table. It has a structure different from the routing table, allowing fast lookups.

If you want to parse the routing table, you have to start at the top and work your way down; this can be time-consuming and resource-intensive, especially if your match is the last entry in the routing table. CEF structures let you search on the bit boundary and optimize the routing process with the adjacency table.

 

IP forwarding in router
Diagram: IP forwarding in router. Source is IPwithease

 

Understanding the MTU

Suppose a router receives a unicast packet too large to be sent out in one piece as its length exceeds the outgoing interface’s Maximum Transmission Unit ( MTU ). In that case, the router attempts to split the packet into several smaller pieces called fragments. The difference between IPv4 and IPv6 fragmentation is considerable. The slicing of packets into smaller packets affects performance adversely and should be avoided.

One way to avoid fragmentation is to have the exact MTU on all links and have the hosts send a packet with an MTU within this range. However, this may not be possible due to the variety of mediums and administrative domains a packet may take from source to destination. Path MTU discovery ( PMTUD ) is the mechanism used to determine the maximum size of the MTU in the path between two end nodes ( source and destination ).

IPv6 fragmentation example
Diagram: IPv6 fragmentation example
  • A key point: PMTUD

PMTUD dynamically figures out the lowest MTU of any link on the path between the end nodes. A host sends an initial packet ( datagram ) with the size of an MTU for that interface with the DF ( don’t fragment ) bit set.

Any router in the path with a lower MTU discards the packet and returns an ICMP ( Type 4 – fragmentation needed and DF set) to the source. This message is also known as a “packet too big” message. The sender estimates a new size for the packet, and the process takes place until the PMTU is found.

 

IP Forwarding Example: Modifying the IP Forwarding

The basics of IP forwarding can be modified in several ways, resulting in data packets taking different paths through the network, some of which are triggered by routing convergence. In previous examples, we discussed routers consulting their routing tables to determine the next hop and single exit interface to send a packet to its destination – “destination-based forwarding. ” However, a router may have multiple paths ( exit interface ) to reach a destination.

These paths can then spread traffic to a destination prefix across alternative links, called multipath routing or load balancing, resulting in more bandwidth available for traffic to that destination.

In a layer three environment, links with the exact cost are considered for equal-cost multipathing and can load balance traffic across those links. You can, however, have unequal cost links ( links with different costs ) used for multipathing, but this needs to be supported in the forwarding routing protocol, e.g., EIGRP.

However, the method used equal or unequal cost multipathing when multiple paths to a destination prefix; the router routing table lookup will return numerous next hops. We have the underlay and overlay concept for additional abstracts using the virtual overlay network. Commonly seen in the Layer-3 data center.

IP Forwarding Example: TCP performance

Generally, routers want to guarantee that packets belonging to a given TCP connection always travel the same path. Reordering the TCP packets would reduce TCP performance and increase CPU cycles if done in software. For this reason, routers use a hash function of some TCP connection identifiers ( source and destination IP address ) to choose among the multiple next hops. A TCP connection is identified by a 5-tuple, which refers to a set of five values that comprise a TCP/IP connection.

It includes a source IP address/port range, destination IP address/port number, and the protocol in use. A router can load on any of these. In addition, recent availing technologies let L2 load balance ( ECMP ), such as THRILL and Cisco FabricPath, allow you to build massive data center topologies with Layer 2 multipathing. These data centers often operate under a spine-leaf architecture.

 

  • A key point – Video 1:TCP performance  and congestion control

In the following video, we will address TCP performance and congestion control. The discrepancy and uneven bandwidth allocation for flow boil down to the natural behavior of how TCP reacts and interacts with insufficient packet buffers and the resulting packet drops. The behavior is known as the TCP/IP bandwidth capture effect.

 

 

IP options

An application can also modify the handling of its packets by extending the IP headers with one or more IP options. IP options are generally used to aid in statistic collection (route record and timestamp) and not to influence path determination as they offer a performance hit. The Internet routers are already optimized for packet forwarding without additional options.

Security devices or filters implemented on routers generally block strict-source and loose-source routes that can be used to control the path packets take. The router then prepends the appropriate data-link header for its outgoing interface. The ARP process then resolves the next-hop IP to the data-link address ( MAC address ), and the router sends the packet to the next hop, where the process is repeated.

 

A keynote: Ethernet frames have an L2 identifier known as a MAC address with 6 bytes for the destination address and 6 for the source address.

 

The ARP Process

The ARP process is straightforward, translating the IP address ( L3 ) into the associated MAC addresses ( L2 ). Consider the communication between two hosts on an Ethernet Segment – host 1 has an IP address of 10.10.10.1, and host 2 has an IP address of 10.10.10.2.

For these hosts to communicate, they must build frames at L2 with source and destination hardware MAC addresses. Host 1 opens a web browser and tries to connect to a service on host 2, which has a destination of 10.10.10.2. Host 1 uses ARP to map the IP address to the MAC address of the destination host.

  • Host 1 sends a broadcast ARP request on the Ethernet LAN segment, which contains the IP address of the destination host ( 10.10.10.2 )

  • As this message is a broadcast, all the hosts on the segment receive the ARP broadcast request and examine the IP field of the request

  • Hosts 2 identifies its IP in the request and sends an ARP response with the information about its MAC address. The ARP response is a unicast (single network destination identified by a unique address ) to the host that generated the request

  • The hosts will now cache the ARP requests and response information results into a cache table known as the ARP table

 

The ARP Table

The ARP tables optimize communications between directly connected devices. Upon receiving an ARP response, devices keep the IP-to-MAC address mapping for some time, usually up to 4 hours. This means a router does not need to send an ARP request for any IP address previously learned. ARP tables may also be updated by what is known as a gratuitous ARP. A gratuitous ARP is an ARP request that a host sends to itself to update its neighbors’ ARP tables.

An example of this would be when a VM is moved from one ESX host to another, and for the other devices to know that it has moved, it sends a gratuitous ARP. This process updates the router’s ARP table. Due to ARP’s simplistic approach to the operation, Layer 2 attacks can exploit its vulnerability.

 

ARP Security Concerns

One of the leading security drawbacks of ARP is that it does not provide any control that proves that a particular MAC address corresponds to a given IP address. An attacker can exploit this by sending a forged ARP reply with its MAC address and the IP address of a default gateway.

When victims update their ARP table with this new entry, they send packets to the attacker’s host instead of the intended gateway. The attacker can then monitor all traffic destined for the default gateway. This is known as ARP spoofing.

While IP forwarding is a fundamental network connectivity component, it also introduces potential security risks. Unauthorized access to an IP forwarding-enabled device can result in traffic interception, redirection, or even denial of service attacks. Therefore, it is crucial to implement proper security measures, such as access control lists (ACLs) and firewalls, to protect against potential threats.




Key IP Forwarding Summary Points:

Main Checklist Points To Consider

  • Forwarding IP packets is based on the contents found in the IP header.

  • Packets will typically exit one interface. However, in the case of multicast traffic, packets can exit many interfaces.

  •  Routers perform several verifications, such as the TTL field in the IP header.

  • The CEF process moves the packets from one interface to the other.

  • Avoid MTU issues with PMTU. 

 

Lab Guide on EIGRP Authentication

Routing Protocol Security 

EIGRP authentication is a feature that adds an extra layer of security to network communication. It allows routers to validate the authenticity of the neighboring routers before exchanging routing information. By implementing EIGRP authentication, you can prevent unauthorized devices from participating in the routing process and ensure the integrity of your network.

Note:

To implement EIGRP authentication, two main components are required: a key chain and an authentication algorithm. The key chain contains one or more keys, each with a unique key ID and a corresponding key string. The authentication algorithm, such as MD5 or SHA, generates a message digest based on the key string.

EIGRP Authentication

How does authentication benefit us?

  • Every routing update packet you receive from your router will be authenticated.
  • By preventing false routing updates from unapproved sources, false routing updates can be prevented.
  • Malicious routing updates should be ignored.

A potential hacker could attempt the following things sitting on your network with a laptop:

  • Advertise junk routes in your neighbor adjacency.
  • Test whether you can drop the neighbor adjacency of one of your authorized routers by sending malicious packets.

EIGRP keychain

Analysis:

To ensure the success of EIGRP authentication, it is crucial to follow some best practices. These include regularly changing passwords, using complex and unique shared secrets, enabling encryption for password transmission, and monitoring authentication logs for suspicious activity.

Conclusion: EIGRP authentication is an effective means of securing network communication within an enterprise environment. By implementing authentication mechanisms such as simple password authentication or message digest authentication, network administrators can mitigate the risk of unauthorized access and malicious routing information. Remember to carefully configure and manage authentication settings to maintain a robust and secure network infrastructure.

Route Summarization

Route summarization involves creating one summary route that represents multiple networks/subnets. Supernetting is also known as route aggregation.

There are several advantages to summarizing:

  • Reduces memory requirements by shrinking routing tables.
  • We save bandwidth by advertising fewer routes.
  • Processing fewer packets and maintaining smaller routing tables saves CPU cycles.
  • A flapping network can cause routing tables to become unstable.

Summarizing has some disadvantages as well:

  • A router will drop traffic for unused networks without an appropriate destination in the routing table. The summary route may include networks not in use when we use summarization. Routers that have summary routes forward them to routers that advertise summary routes.
  • The router prefers the path with the longest prefix match. When you use summaries, your router may choose another path where it has learned a more specific network. There is also a single metric for the summary route.

Administrative Distance

Suppose a network runs two routing protocols at once, OSPF and EIGRP. R1 receives information from both routing protocols.

  • The router should send IP packets using the top path according to EIGRP.
  • The router should use the bottom path to send IP packets in OSPF.

We are going to use what routing information? Which one? Do you use OSPF or EIGRP?

We must make a choice when two routing protocols provide information about the same destination network…you can’t go left and right at the same time. AD or administrative distance is what we need to consider.

Administrative distance should be as low as possible. Directly connected routes have an AD of 0. Directly connecting it to your router makes sense since nothing is better. Because static routes are configured manually, they have a very low administrative distance of 1. You can sometimes override a routing protocol’s decision with a static route.

Since EIGRP is a Cisco routing protocol, its administrative distance is 90. RIP has 120, while OSPF has 110. Because EIGRP’s AD of 90 is lower than OSPF’s 110, we will use the information EIGRP tells us in the routing table.

 

Recap on IP Forwarding

IP forwarding is crucial in ensuring efficient and reliable data transmission in networking. As a fundamental component of network routing, IP forwarding enables packets of data to be forwarded from one network interface to another, ultimately reaching their intended destination. In this blog post, we delved deeper into IP forwarding, its significance, and its implementation in modern network infrastructures.

IP forwarding, or packet forwarding, refers to direct data packets from one network interface to another based on their destination IP addresses. It is the backbone of network routing, enabling seamless data flow across different networks. IP forwarding is typically performed by routers, specialized network devices designed to route packets between networks efficiently.

IP forwarding is essential in enabling effective communication between devices on different networks. By forwarding packets based on their destination IP addresses, IP forwarding allows data to traverse multiple networks, reaching its intended recipient. This capability is particularly critical in large-scale networks, such as the Internet, where data needs to traverse numerous routers before reaching its final destination.

Implementation of IP Forwarding:

Routers use routing tables to determine the best path for forwarding packets to implement IP forwarding. These routing tables contain a list of network destinations and associated next-hop router addresses. When a router receives a packet, it examines the destination IP address and consults its routing table to determine the appropriate next-hop router for forwarding the packet. This process continues until the packet reaches its final destination.

IP forwarding relies on routing protocols, such as Border Gateway Protocol (BGP) or Open Shortest Path First (OSPF), to exchange routing information between routers. These protocols enable routers to dynamically update their routing tables based on changing network conditions, ensuring packets are forwarded along the most optimal paths.

 

packet forwarding

Matt Conran
Latest posts by Matt Conran (see all)

Comments are closed.