RARP - Reverse Address Resolution Protocol =============================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is RARP?** RARP stands for Reverse Address Resolution Protocol. It is a network protocol used by a device to discover its own IP address when it only knows its MAC (hardware) address. It’s essentially the reverse of ARP. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why is RARP useful?** * RARP was useful in early networked systems where: * Devices (like diskless workstations) did not have permanent storage to save their IP address. * They needed to request their IP address from a RARP server at boot time. * It allowed automatic IP assignment based on the device’s MAC address. * RARP is now largely obsolete and has been replaced by more flexible protocols like BOOTP and DHCP. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** * Device boots up – It knows its MAC address but not its IP address. * Sends RARP request – A broadcast message is sent asking, “What is my IP address?”. * RARP server responds – The server looks up the MAC address in a table and replies with the corresponding IP address. * Device configures itself – It uses the received IP address to join the network. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is RARP used?** * Diskless workstations – Early computers that booted over the network. * Embedded systems – Devices that needed to get an IP address without user configuration. * Legacy networks – Before DHCP became the standard. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** * It uses MAC addresses to identify devices. * It works below the IP layer, helping devices obtain their IP address. * Like ARP, it uses Ethernet frames for communication, not IP packets. * Therefore, RARP belongs to the Data Link Layer (Layer 2) of the OSI model. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RARP Version&RFC Details ` * :ref:`RARP Basic Setup on Ubuntu using IPv4 ` * :ref:`RARP Basic Setup on Ubuntu using IPv6 ` * :ref:`RARP Protocol Packet Details ` * :ref:`RARP Usecases ` * :ref:`RARP Basic Features ` * :ref:`RARP Feature : MAC to IP resolution ` * :ref:`RARP Feature : Data Link Layer ` * :ref:`RARP Feature : Statless Protocol ` * :ref:`RARP Feature : Broadcast based Req ` * :ref:`RARP Feature : Server Dependent ` * :ref:`RARP Feature : Limited to IPv4 ` * :ref:`RARP Feature : No Support for Dynamic Allocation ` * :ref:`Reference links ` .. _RARP_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _RARP_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _RARP_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _RARP_step5: .. tab-set:: .. tab-item:: RARP Version&RFC Details .. csv-table:: :file: ./RARP/rarp_rfc_details.csv :widths: 10,10,10,30 :header-rows: 1 .. _RARP_step19: .. tab-set:: .. tab-item:: RARP Basic Setup on Ubuntu using IPv4 * setup .. _RARP_step20: .. tab-set:: .. tab-item:: RARP Basic Setup on Ubuntu using IPv6 * setup .. _RARP_step6: .. tab-set:: .. tab-item:: RARP Protocol Packet Details **RARP Request Packet** .. csv-table:: :file: ./RARP/rarp_packet_details1.csv :widths: 10,20,30,10 :header-rows: 1 **RARP Reply Packet** .. csv-table:: :file: ./RARP/rarp_packet_details2.csv :widths: 10,20,30,10 :header-rows: 1 .. _RARP_step7: .. tab-set:: .. tab-item:: RARP Usecases .. csv-table:: :file: ./RARP/rarp_usecases.csv :widths: 10,20,30 :header-rows: 1 .. _RARP_step8: .. tab-set:: .. tab-item:: RARP Basic Features .. csv-table:: :file: ./RARP/rarp_features.csv :widths: 10,10,30 :header-rows: 1 .. _RARP_step9: .. tab-set:: .. tab-item:: RARP Feature : Mac to IP resolution **MAC to IP resolution - Testcases** .. csv-table:: :file: ./RARP/rarp_feature1_mac_to_ip_resolution_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step10: .. tab-set:: .. tab-item:: RARP Feature : Data Link layer **Data Link Layer - Testcases** .. csv-table:: :file: ./RARP/rarp_feature2_dll_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step11: .. tab-set:: .. tab-item:: RARP Feature : Statless Protocol **Statless Protocol - Testcases** .. csv-table:: :file: ./RARP/rarp_feature3_statless_protocol_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step12: .. tab-set:: .. tab-item:: RARP Feature : Broadcast based Req **Broadcast based Req - Testcases** .. csv-table:: :file: ./RARP/rarp_feature4_broadcast_based_req_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step13: .. tab-set:: .. tab-item:: RARP Feature : Server Dependent **Server Dependent - Testcases** .. csv-table:: :file: ./RARP/rarp_feature5_server_dependent_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step14: .. tab-set:: .. tab-item:: RARP Feature : Limited to IPv4 **Limited to IPv4 - Testcases** .. csv-table:: :file: ./RARP/rarp_feature6_limited_to_ipv4_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step15: .. tab-set:: .. tab-item:: RARP Feature : No Support for Dynamic Allocation **No Support for Dynamic Allocation - Testcases** .. csv-table:: :file: ./RARP/rarp_feature7_no_support_for_dynamic_allocation_testcases.csv :widths: 10,10,30,20 :header-rows: 1 .. _RARP_step18: .. tab-set:: .. tab-item:: Reference links * Reference links