mobility-management-linux

Mobility Management Simulator

aka. MM-Sim

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


πŸ”₯ News πŸ”₯

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:

⚠️ Following key features are not supported:

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.

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. 🌟