openwisp-controller
openwisp-controller copied to clipboard
[bug] Prevent changing subnet and IP objects assigned to a VPN Server
Description
There is a need to prevent changes to the subnet and IPAdress objects when they are assigned to a VPN server. Modifying the subnet of the VPN when there are existing VPN clients creates collisions in provisioned IPs, leading to potential network issues.
Steps To Reproduce Steps to reproduce the behavior:
- Create a WireGuard VPN server and assign a subnet and IP to it.
- Create a template for this VPN and assign it to a device
- Edit the subnet object created in step 1 and change the subnet field
- Assign the VPN template to another device
Expected behavior Prevent changing subnet and IP address objects if there are existing VpnClients
Actual Behavior Both devices get IP address from different subnets
The second peer has an IP address from
System Information:
- OS: Ubuntu 24.04 LTS
- Python Version: Python 3.11.2
- Django Version: Django 5.2.x
@pandafy this may not be easy because the IPAM models are not aware of VPN servers, so how can we implement this cleanly?