55 lines
1.4 KiB
Django/Jinja
55 lines
1.4 KiB
Django/Jinja
#!/bin/bash
|
|
|
|
# Check if script is run as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Please run as root (with sudo)."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if action is provided
|
|
if [ $# -eq 0 ]; then
|
|
echo "Usage: $0 [create|delete]"
|
|
exit 1
|
|
fi
|
|
|
|
action=$1 # First command-line argument
|
|
|
|
# Set variables
|
|
ext_iface="{{ ext_iface }}"
|
|
vlan_base_id=1
|
|
num_vlans={{ num_vlans }}
|
|
cidr_prefix="{{ cidr_prefix }}"
|
|
|
|
if [ "$action" == "create" ]; then
|
|
# Create VLAN interfaces
|
|
ip link set dev $ext_iface up
|
|
for ((i=0; i<$num_vlans; i++)); do
|
|
vlan_id=$((vlan_base_id + i))
|
|
vlan_interface="${ext_iface}.${vlan_id}"
|
|
|
|
ip link add link $ext_iface name $vlan_interface type vlan id $vlan_id
|
|
ip link set dev $vlan_interface up
|
|
|
|
external_gateway="${cidr_prefix}.$((vlan_base_id + i)).1/24"
|
|
ip addr add $external_gateway dev $vlan_interface
|
|
|
|
echo "VLAN $vlan_id configuration completed successfully."
|
|
done
|
|
echo "All configurations completed successfully."
|
|
elif [ "$action" == "delete" ]; then
|
|
# Delete VLAN interfaces
|
|
for ((i=0; i<$num_vlans; i++)); do
|
|
vlan_id=$((vlan_base_id + i))
|
|
vlan_interface="${ext_iface}.${vlan_id}"
|
|
|
|
ip link set dev $vlan_interface down
|
|
ip link delete $vlan_interface
|
|
|
|
echo "VLAN $vlan_id removed successfully."
|
|
done
|
|
echo "Cleanup completed successfully."
|
|
else
|
|
echo "Invalid action. Please provide 'create' or 'delete' as the argument."
|
|
exit 1
|
|
fi
|