This project combines network configuration using Mininet with the development of a TLS-enabled group chat system.
- Custom Mininet Topology: Subnetted, multi-router network setup using
legacy_network.py
. - TLS-Enabled Chat Service: A multi-client server built from the TCP chat service in Assignment 3.
- Certificate Generation: OpenSSL-driven, auto-signed server certificate using
certificate_generation.py
.
This project is intended to run inside an Oracle VirtualBox VM with a Ubuntu-based Linux OS.
- OS: Ubuntu 20.04+
- Memory: 2 GB+
- Disk: 10 GB+
- Root Access: Required
Install the following inside your VM:
sudo apt-get update
sudo apt-get install mininet xterm openssl python3-pip
Run this before launching Mininet:
sudo -E python3 certificate_generation.py
- Common name:
tpa4.chat.test
- Passphrase:
CST311
- This updates
/etc/hosts
and createsserver-key.pem
andserver-cert.pem
.
Start the Mininet topology and open chat terminals:
sudo -E python3 legacy_network.py
This script will:
- Configure all hosts and routers
- Assign IP addresses and static routes
- Auto-launch:
tpa4_chat_server.py
onh4
tpa4_chat_client.py
onh1
,h2
, andh3
viaxterm
In the Mininet CLI, run:
pingall
✅ All hosts should successfully reach each other.
- Server: Runs on
h4
(10.0.1.2
) and listens on port12000
- Clients: Run on
h1
,h2
, andh3
, each in its own terminal - Communication: Encrypted using TLS with a self-signed certificate
- Termination: Typing
bye
closes the client session