How to Start EGP Protocol Projects Using OMNeT++

To create a project has including the EGP (Exterior Gateway Protocol) in OMNeT++, we require to build a replication of environment in which the external routing protocols like EGP (typically used for inter-domain routing) can be estimated or replicated. EGP protocols are important for handling the routing among multiple autonomous systems (ASes), and BGP (Border Gateway Protocol) is the most widely utilized their EGP today. However, execution or replicating the EGP protocol for sample or a BGP-like protocol needs some setting steps in OMNeT++, and it can be complete using the INET Framework, that involves the IP and routing protocols.

Steps to Start EGP Protocol Projects Using OMNeT++

  1. Install OMNeT++ and INET Framework

The first step is to install OMNeT++ and the INET Framework. OMNeT++ is the replication the platform and INET offers a set of modules we replicate the networking protocols has involves the routing protocols.

Steps to install:

  • Download OMNeT++: Install OMNeT++ from the official OMNeT++ website.
  • Install INET Framework: The INET Framework is an open-source module which extends the OMNeT++ through networking protocols and components:

git clone https://github.com/inet-framework/inet.git

Follow the INET installation guide to integrate it into OMNeT++.

  1. Create a New OMNeT++ Project

Once OMNeT++ and INET are installed, you can create a new project:

  1. Open OMNeT++ IDE.
  2. Go to File > New > OMNeT++ Project.
  3. Name your project for sample EGP_Simulation.
  4. Improve the INET Framework to your project if it’s not already included during the project generation process.
  1. Design the Network Topology (NED File)

In OMNeT++, the network topology is described utilized the NED files. Designed for EGP replication the topology might consist of multiple autonomous systems (ASes) linked by external links such as inter-domain links. Every AS will process the instance of the EGP protocol, that will handle the routing among these ASes.

Example of a simple EGP topology in NED:

network EGPNetwork

{

submodules:

as1: AutonomousSystem {

@display(“p=100,100”);

}

as2: AutonomousSystem {

@display(“p=300,100”);

}

as3: AutonomousSystem {

@display(“p=500,100”);

}

router1: Router {

@display(“p=100,200”);

}

router2: Router {

@display(“p=300,200”);

}

router3: Router {

@display(“p=500,200”);

}

connections:

as1.router <–> router1;

router1 <–> router2;

router2 <–> router3;

router3 <–> as3.router;

as2.router <–> router2;

}

  • In this Sample, three autonomous systems (as1, as2, and as3) are connected to routers (router1, router2, router3).
  • This router forms a simple EGP network, and routing among this ASes is maintain through an EGP protocol such as BGP.
  1. Select or Implement the EGP Protocol

OMNeT++ does not natively has involves the EGP protocol (like BGP), nonetheless it offers the different routing protocols and can be extended to helps the EGP-like protocols.

  1. Use Existing Routing Protocols: OMNeT++ and the INET Framework has involves the several interior gateway protocols (IGPs) such as OSPF and RIP. If we need to replicate the more basic routing scenario, we can use the BGP-like extensions or other routing protocols for inter-domain routing.
  2. Implement BGP or EGP: If we require the more accurate replication of BGP such as which is the most widely used EGP, we will have to execute the yourself or extend the INET Framework the helps for it.
    • We can execute the BGP protocol (or a custom EGP) through generating a new modules in OMNeT++ and utilized their Routing Protocols module in the INET framework.
  1. Implementing BGP (or Custom EGP Protocol)

If we need to replicate the BGP as part of the EGP protocol we can be generate the own BGP module in OMNeT++ or familiarize the previous routing protocols.

Basic Steps for Implementing a BGP-like Protocol:

  1. Define the Module: We require to build a module for the BGP protocol or any alter EGP protocol.
    • The module should has involved the components such as BGP neighbours, BGP routing tables, and the logic for modifying the BGP updates among routers in various the ASes.
    • Execute the message kinds such as BGP update messages, BGP route advertisements, and route withdrawals.
  2. Message Handling: Execute the message processing we maintain the BGP bring up-to-date messages that advertise routes among the various autonomous systems.

Example of defining a BGP-like module in C++:

class BGPProtocol : public cSimpleModule

{

protected:

virtual void initialize() override;

virtual void handleMessage(cMessage *msg) override;

virtual void handleBGPUpdate(cMessage *msg);

virtual void updateRoutingTable(cMessage *msg);

};

  1. Route Advertisement: Execute the logic to advertise the routing information among the ASes. In BGP, routers alter the prefixes and attributes for routes.
  2. Path Selection: Estimate the logic for path selection in BGP, in which the routers decide that path to used according on policies such as AS path, local preference, and next-hop IP.
  3. Routing Table Management: Every router requires a BGP routing table in which it stores the best routes for reaching the external networks.

Example of BGP message definition:

class BGPUpdateMessage : public cMessage

{

public:

std::vector<std::string> prefixes;

std::vector<std::string> withdrawnRoutes;

};

  1. Configure Routing Parameters in omnetpp.ini

Once you have executed the EGP protocol such as BGP, we can setting it in the omnetpp.ini file to set up your replication for parameters.

Example configuration for BGP (assuming you’ve implemented BGP):

[General]

network = EGPNetwork

sim-time-limit = 100s

**.router1.routingProtocol = “BGPProtocol”

**.router2.routingProtocol = “BGPProtocol”

**.router3.routingProtocol = “BGPProtocol”

  1. Add Traffic and Application Layer (Optional)

For a complete replication, we can build a traffic and execute the applications which transmit packets according on the routing decisions complete through the EGP protocol. We can setting the traffic sources such as FTP, HTTP, or UDP we replicate the flow of data among hosts connected to various autonomous systems.

  1. Run the Simulation

Later the setting up the topology, protocol, and setting, you can process the replication:

  • Click Run in OMNeT++ to initializes the replication.
  • OMNeT++ will process the replication and we can follow the EGP protocol behaviour, like as the modify the routing updates among ASes and the flow the packets according on the routing tables.
  1. Analyze Results

Next process the replication, we can analyse the performance of the EGP protocol:

  • Route Convergence Time: Calculate on how quickly the protocol converges next modification the topology such as when a route is withdrawn or a new path is available.
  • Packet Delivery Ratio: Checked if packets are reaching their destinations successfully for PDR.
  • Path Selection Behavior: Track on how the routers choose the paths among ASes and how on routing decisions are create.

OMNeT++ provides the brief scalar and vector results that can be analysed for performance metrics.

Example to Output Results in omnetpp.ini:

[General]

output-scalar-file = “bgp_results.sca”

output-vector-file = “bgp_results.vec”

  1. Extend the Simulation
  • Scalability Testing: Maximize the number of routers and autonomous systems we validate on how well the EGP protocol scales in a larger network.
  • Compare with Other Protocols: Compared your EGP (BGP) execution with existing protocols such as OSPF, RIP, or even other EGP replication.
  • Advanced Scenarios: Replicate the network failures, changes in AS topology, or traffic engineering to discover the robustness and efficiency of your EGP protocol.

Resources:

  • OMNeT++ Documentation: OMNeT++ Docs
  • INET Framework Documentation: INET Docs
  • BGP Protocol in OMNeT++: While OMNeT++ does not involves the BGP out of the box there are some external contributions for BGP in OMNeT++, like the BGP++ module: BGP++ OMNeT++.

By following these steps, you can start simulating EGP protocols (e.g., BGP)

Overall, we had implemented the EGP (Exterior Gateway Protocol) to analyse their performance in OMNeT++,   implementation tool for further clarification, check the additional manual to be provided.

EGP Protocol Projects Using OMNeT++ toics and project ideas are offered by us, stay in touch with phdprojects.org .we assure you with on time results with explanation .