Skip to content

root-hbx/mobility-management-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mobility Management Simulator

aka. MM-Sim

  • Mobility Management
  • Mobile IP: MIPv4

Partial implementation of RFC 5944 Mobile IP framework for Linux Ubuntu 22.04LTS, written in Python 3.10.


🔥 News 🔥

  • [2025-0311] All functions (start/stop/register/deregister/status) are ready to go!
  • [2025-0310] Refactor! Refactor! Refactor!
  • [2025-0309] MM-Sim is supporting Ubuntu 22.04 LTS and Python 3.10 now

Overview

🚀 Mobile IP (MIP) framework allows transparent routing of IP packets to mobile nodes regardless of its current point of attachment in a the Internet. Thanks to MIP, mobile node is able to roam from an its home network to any foreign network, being always reachable through its home IP address.

🌟 A brief introduction of Mobile IP is provided here

🎉 Following key features are supported:

  • Mobile IP protocol (Registration Request and Reply)
  • Mobile-Home Authentication Extension (MHAE) with the 128-bit key HMAC-MD5 authentication algorithm
  • Home Agent entity
  • Mobile Node entity
  • Co-located CoA mode
  • Forward and Reverse tunneling
  • GRE encapsulation
  • Identification based on timestamp

⚠️ Following key features are not supported:

  • Agent discovery and advertisement with ICMP
  • Foreign Agent entity
  • Minimal encapsulation
  • Broadcast datagrams

Basic use case that can be achieved with this implementation of MIP is shown on figure below.

Quick Start

Create a venv

# create a venv with py3.10
python -m venv .venv
# activate
source .venv/bin/activate

Dependencies

# plz make sure you are under a python venv
pip install ntplib pyroute2 netaddr

Start for HA and MN

cd mobility-management-linux
# HOME AGENT: with sudo privilege!!!
sudo $(which python3) -m examples.home_agent examples/ha.cfg
# MOBILE NODE: with sudo privilege!!!
# start
sudo $(which python3) -m examples.mn_agent start examples/mn.cfg
# Other args like: stop / register / deregister ...

Congratulates! Now HA and MN are started 👍

More commands for exploring can be checked here.

Related Work

This repo is inspired by mkiol's Mobile IP 🫡

This project, developed by Boxuan Hu, rectifies errors in previous work and upgrades the entire project from Python 2 to Python 3, incorporating a comprehensive restructuring. 🚀

Modifications and additions are licensed under MIT-License. For details on what changes were made, please refer to the commit history.

The project is currently stable on Linux Ubuntu 22.04 LTS and supports Python 3.10. 🌟

About

MIPv4 simulator on ubuntu 22.04LTS for mobility management experiments

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages