Building AWS VPC functionality from scratch using Linux networking primitives.
- ✅ Create isolated VPCs with custom CIDR blocks
- ✅ Multiple subnets (public and private) per VPC
- ✅ NAT gateway for internet access
- ✅ VPC-level isolation
- ✅ Security groups (firewall rules)
- ✅ Complete lifecycle management
- Linux system (tested on Ubuntu/WSL2)
- Root/sudo access
- Python 3.x
- iproute2, iptables, bridge-utils
# Create a VPC
sudo ./vpcctl create-vpc myvpc 10.0.0.0/16
# Add public subnet (with NAT)
sudo ./vpcctl add-subnet myvpc web 10.0.1.0/24 --type public
# Add private subnet (no internet)
sudo ./vpcctl add-subnet myvpc db 10.0.2.0/24 --type private
# List VPCs
sudo ./vpcctl list
# Delete VPC
sudo ./vpcctl delete-vpc myvpcVPC (10.0.0.0/16)
├── Bridge (br-myvpc) - 10.0.0.1/16
│ ├── Public Subnet (10.0.1.0/24) → NAT → Internet
│ └── Private Subnet (10.0.2.0/24) → Isolated
Run the complete test suite:
sudo ./quick-test.shsudo ./cleanup.shNweke Henry Chukwudi