Refactor(DIIAA): Evolución del ADN a dtic-DIIAA, renombrando scripts/ a automatizacion/ y actualizando manifiestos y URLs de servicios web
This commit is contained in:
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
# scripts/configurar_red_hibrida.sh
|
||||
# CONFIGURACIÓN DE RED HÍBRIDA (Policy Routing)
|
||||
# Objetivo:
|
||||
# - Mantener Gateway Default 10.0.10.1 (Navegación Rápida).
|
||||
# - Habilitar IP Pública 190.114.205.18 para acceso entrante.
|
||||
# - Responder tráfico entrante de 190... por su propio Gateway (190.114.205.1).
|
||||
|
||||
CON_NAME="Red LAN 10"
|
||||
IP_PUB="190.114.205.18/24"
|
||||
GW_PUB="190.114.205.1"
|
||||
TABLE_ID="190"
|
||||
TIMEOUT_SEC=300 # 5 Minutos
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${RED}Ejecutar con sudo.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${YELLOW}Configurando Red Híbrida en conexión '$CON_NAME'...${NC}"
|
||||
|
||||
# 1. Agregar IP Pública (si no existe ya)
|
||||
# Nota: nmcli es idempotente para esto si se usa correctamente, pero limpiaremos "ipv4.addresses" duplicadas si es manual.
|
||||
# Aquí simplemente agregamos.
|
||||
echo -e "[1/4] Agregando IP Pública $IP_PUB..."
|
||||
nmcli con mod "$CON_NAME" +ipv4.addresses "$IP_PUB"
|
||||
|
||||
# 2. Agregar Ruta a Tabla Secundaria
|
||||
# Sintaxis: ip/prefix next-hop priority attributes
|
||||
echo -e "[2/4] Configurando ruta de retorno (Tabla $TABLE_ID)..."
|
||||
nmcli con mod "$CON_NAME" +ipv4.routes "0.0.0.0/0 $GW_PUB 100 table=$TABLE_ID"
|
||||
|
||||
# 3. Agregar Regla de Enrutamiento
|
||||
# Sintaxis: priority from <ip> table <id>
|
||||
echo -e "[3/4] Configurando regla de política (Policy Rule)..."
|
||||
nmcli con mod "$CON_NAME" +ipv4.routing-rules "priority 30000 from ${IP_PUB%/*} table $TABLE_ID"
|
||||
|
||||
# 4. Aplicar Cambios (Temporales para validación)
|
||||
echo -e "Aplicando configuración... (Si pierdes conexión, espera $TIMEOUT_SEC segundos)"
|
||||
nmcli con mod "$CON_NAME" +ipv4.addresses "$IP_PUB"
|
||||
nmcli con mod "$CON_NAME" +ipv4.routes "0.0.0.0/0 $GW_PUB 100 table=$TABLE_ID"
|
||||
nmcli con mod "$CON_NAME" +ipv4.routing-rules "priority 30000 from ${IP_PUB%/*} table $TABLE_ID"
|
||||
nmcli con up "$CON_NAME"
|
||||
|
||||
# --- VERIFICACIÓN / ROLLBACK LOOP ---
|
||||
echo -e "\n${GREEN}*** CAMBIOS APLICADOS ***${NC}"
|
||||
echo "Verifica que tienes conectividad (tanto LAN como WAN)."
|
||||
echo "Tienes $TIMEOUT_SEC segundos para confirmar escribiendo 's' y Enter."
|
||||
|
||||
CONFIRMADO=0
|
||||
for ((i=TIMEOUT_SEC; i>0; i--)); do
|
||||
echo -ne " Tiempo restante para ROLLBACK: $i segundos \r"
|
||||
read -t 1 -n 1 key
|
||||
if [[ $key = "s" ]] || [[ $key = "S" ]]; then
|
||||
CONFIRMADO=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $CONFIRMADO -eq 1 ]; then
|
||||
echo -e "\n\n${GREEN}¡CONFIRMADO! Configuración de Red Híbrida establecida.${NC}"
|
||||
exit 0
|
||||
else
|
||||
echo -e "\n\n${RED}¡TIEMPO AGOTADO! REVIERTIENDO CAMBIOS...${NC}"
|
||||
|
||||
# Revertir (Undo)
|
||||
echo "Eliminando reglas..."
|
||||
nmcli con mod "$CON_NAME" -ipv4.addresses "$IP_PUB"
|
||||
nmcli con mod "$CON_NAME" -ipv4.routes "0.0.0.0/0 $GW_PUB 100 table=$TABLE_ID"
|
||||
nmcli con mod "$CON_NAME" -ipv4.routing-rules "priority 30000 from ${IP_PUB%/*} table $TABLE_ID"
|
||||
|
||||
echo "Recargando conexión..."
|
||||
nmcli con up "$CON_NAME"
|
||||
|
||||
echo -e "${GREEN}Sistema restaurado al estado original.${NC}"
|
||||
fi
|
||||
Reference in New Issue
Block a user