Skip to content
Proyectos Académicos

Digitalización: PacketRoute S.L.

VLAN Segmentation Proxmox VE PostgreSQL Triggers Ansible Playbooks Normativa APA
Publicación: Noviembre 2025 COMPLETADO
Propuesta técnica de 118 páginas para la transformación digital integral de una pyme logística. El estudio aborda desde el cableado estructurado y la segmentación de red, hasta el modelado de base de datos relacional y la automatización de la infraestructura con Ansible.

Sobre el Proyecto

El proyecto Digitalización Aplicada: PacketRoute S.L. consiste en una propuesta de transformación digital integral para una empresa de distribución local del sector logístico. El estudio aborda el rediseño completo de la infraestructura desde el nivel de hardware y cableado estructurado, pasando por la segmentación de red (VLANs), hasta el diseño del modelo de base de datos relacional y playbooks de automatización IT.

La metodología seguida se basa en el ciclo de análisis de sistemas: investigación preliminar de la infraestructura existente, modelado GAP para la identificación de ineficiencias de negocio, rediseño técnico a nivel físico y de aplicaciones bajo la norma de seguridad ISO 27001, e ingeniería de costes detallada para asegurar la viabilidad económica del proyecto.


Diagnóstico Tecnológico y Análisis DAFO

El punto de partida de PacketRoute S.L. revela una infraestructura de TI desorganizada y desactualizada. Tras auditar los sistemas y procesos de la compañía, se identifican problemas críticos de disponibilidad y seguridad informática.

Introducción al Caso de Estudio

La digitalización industrial ya no representa una ventaja competitiva opcional, sino una condición obligatoria para la supervivencia de las empresas de distribución. PacketRoute opera en un entorno logístico caracterizado por una gestión manual y descentralizada de la información (mediante hojas de cálculo dispersas), lo que provoca fallos constantes en la asignación de rutas y falta de trazabilidad de los envíos en tiempo real.

Diagnóstico Tecnológico Actual

La auditoría de sistemas revela las siguientes ineficiencias:

Red Plana e Insegura
No existe segmentación lógica de la red. Los ordenadores de administración, los lectores Wi-Fi del almacén, los teléfonos VoIP y los clientes invitados conviven en una misma subred física, facilitando el movimiento lateral de malware y comprometiendo la privacidad de los datos financieros.
Políticas de Acceso Inexistentes
Se utilizan cuentas locales sin contraseñas robustas y carpetas compartidas sin cifrado ni control de roles de usuario. No hay auditoría de accesos.
Gestión Documental Descentralizada
Almacenamiento local e individualizado en los discos de los equipos de oficina. Pérdidas recurrentes de facturas y notas de entrega por fallos de hardware.
Ausencia de Respaldos de Datos
Las copias de seguridad se realizan manualmente de forma irregular en discos duros portátiles USB sin política de retención ni cifrado.
Proceso de Entrega Analógico
Las hojas de ruta e incidencias de entrega de los conductores se registran en papel, impidiendo a los clientes monitorizar sus envíos.
Organigrama PacketRoute S.L.
Figura 1: Organigrama corporativo y operativo de la empresa logística.
Proceso operativo actual
Figura 2: Diagrama de actividades de las operaciones e ineficiencias actuales.

Análisis DAFO Estratégico

A continuación se resume la matriz de diagnóstico estratégico del estado tecnológico de la empresa:

Debilidades (Factores Internos) Fortalezas (Factores Internos)
- Red plana y vulnerable sin cortafuegos.
- Gestión de datos manual en hojas de cálculo.
- Ausencia de copias de seguridad automatizadas.
- Falta de un sistema centralizado de identidades.
- Flota de vehículos propia y optimizada en la isla.
- Personal logístico experimentado.
- Clientela local fidelizada y estable.
- Almacén en ubicación estratégica (Marratxí).
Amenazas (Factores Externos) Oportunidades (Factores Externos)
- Sanciones legales por incumplimiento del RGPD.
- Fugas de datos y ataques de Ransomware.
- Competencia de grandes operadores digitalizados.
- Pérdida de clientes por falta de tracking online.
- Acceso a subvenciones estatales de digitalización.
- Integración directa con las tiendas online de clientes.
- Reducción sustancial del consumo de papel (Green IT).
- Optimización de rutas mediante datos geográficos.

Propuesta Técnica de CPD y Arquitectura de Red

Para solucionar de raíz las carencias operativas y de seguridad, se propone una arquitectura informática centralizada construida sobre principios de virtualización, segmentación lógica y alta disponibilidad.

Arquitectura de Red Corporativa (Segmentación VLAN)

Se propone segmentar la infraestructura de red lógica mediante un cortafuegos perimetral pfSense conectado a un switch gestionable de Capa 3. La segmentación se distribuye en las siguientes 5 VLANs independientes:

VLAN Nombre Subred Rango de Red Propósito de Seguridad
VLAN 10 Administración y Oficina 192.168.10.0/24 Equipos de administración, facturación y dirección comercial. Acceso restringido.
VLAN 20 Servidores corporativos 192.168.20.0/24 Máquinas virtuales (Proxmox), bases de datos y NAS. Acceso solo por puertos específicos.
VLAN 30 Almacén y Lectoras 192.168.30.0/24 Pistolas PDA de lectura de códigos de barras en almacén. Red aislada de internet.
VLAN 40 Reparto y Flota Móvil 192.168.40.0/24 Dispositivos móviles de conductores. Acceso exclusivo al backend del ERP.
VLAN 50 Invitados y Clientes 192.168.50.0/24 Red abierta aislada con salida directa a Internet. Prohibido acceso a recursos locales.
Arquitectura de red propuesta
Figura 3: Segmentación de red lógica mediante VLANs y Firewall perimetral pfSense.

Infraestructura CPD e Hipervisor Virtual

Se proyecta un rack de servidores cerrado y climatizado en la central, equipado con un servidor central de última generación, un NAS redundante para almacenamiento masivo de backups, y un Sistema de Alimentación Ininterrumpida (SAI) inteligente de 1500VA.

El servidor principal ejecutará el hipervisor bare-metal Proxmox VE, alojando la infraestructura virtualizada en servidores virtuales aislados:

VM1 — Control de Dominio (Samba AD / LDAP)
Gestión centralizada de identidades de usuarios, permisos NTFS en red y despliegue de políticas GPO para todos los departamentos de la empresa.
VM2 — Servidor ERP (Odoo Enterprise)
Automatización de flujos de picking, compras, facturación y módulo de gestión de la flota y rutas de entrega. Punto central de la operativa digitalizada.
VM3 — Servidor Base de Datos (PostgreSQL)
Almacén de persistencia de datos relacional para el ERP corporativo. Incluye triggers de auditoría y procedimientos almacenados para la integridad de datos.
VM4 — Monitorización y Alertas (Zabbix & Grafana)
Recopilación en tiempo real de métricas del hardware físico, tráfico de red, memoria, y alertas de fallos por correo electrónico al equipo de sistemas.
Seguridad interna y Proxmox
Figura 4: Entorno de virtualización en CPD central con Proxmox, Active Directory y copias de seguridad.

Modelo Relacional de Datos y Scripts de Automatización

Para dar soporte informático a la trazabilidad logística de PacketRoute, se diseña un modelo de base de datos relacional robusto y normalizado en PostgreSQL, acompañado de automatizaciones a nivel de sistema operativo e infraestructura.

Modelo Entidad-Relación BBDD
Figura 5: Diagrama Entidad-Relación para el ERP y auditorías en PostgreSQL.
Flujo de automatización operativa
Figura 6: Diagrama del flujo de backups, actualizaciones de Ansible y chequeos Zabbix.

Estructura de Archivos del Sistema

      • schema.sql - Estructura de tablas y DDL
      • triggers.sql - Triggers de auditoría automática
      • procedures.sql - Procedimientos de devolución de pedidos
      • backup.sh - Script de copia de seguridad diario
      • deploy_playbook.yml - Playbook de Ansible para parches

Códigos y Scripts del Proyecto

A continuación, puedes desplegar cada uno de los archivos técnicos de base de datos y automatización de sistemas implementados en el proyecto:

Script 1 — Modelo SQL DDL (schema.sql)
-- Creación del esquema relacional en PostgreSQL para PacketRoute S.L.

CREATE TABLE cliente (
    id_cliente SERIAL PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    cif_nif VARCHAR(20) UNIQUE NOT NULL,
    direccion VARCHAR(200) NOT NULL,
    telefono VARCHAR(15),
    email VARCHAR(100) UNIQUE,
    activo BOOLEAN DEFAULT TRUE
);

CREATE TABLE empleado (
    id_empleado SERIAL PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    cargo VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    id_dominio_ad VARCHAR(50) UNIQUE -- Vinculación con Samba AD
);

CREATE TABLE producto (
    id_producto SERIAL PRIMARY KEY,
    codigo_barras VARCHAR(50) UNIQUE NOT NULL,
    descripcion VARCHAR(150) NOT NULL,
    stock_actual INT CHECK (stock_actual >= 0),
    stock_minimo INT DEFAULT 5 CHECK (stock_minimo >= 0)
);

CREATE TABLE pedido (
    id_pedido SERIAL PRIMARY KEY,
    id_cliente INT REFERENCES cliente(id_cliente),
    fecha_pedido TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    estado VARCHAR(30) DEFAULT 'Pendiente' CHECK (estado IN ('Pendiente', 'Preparando', 'En Ruta', 'Entregado', 'Devuelto'))
);

CREATE TABLE item_pedido (
    id_item SERIAL PRIMARY KEY,
    id_pedido INT REFERENCES pedido(id_pedido) ON DELETE CASCADE,
    id_producto INT REFERENCES producto(id_producto),
    cantidad INT CHECK (cantidad > 0)
);

CREATE TABLE registro_auditoria (
    id_auditoria SERIAL PRIMARY KEY,
    tabla_afectada VARCHAR(50) NOT NULL,
    operacion VARCHAR(10) NOT NULL,
    usuario_db VARCHAR(50) DEFAULT CURRENT_USER,
    fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    valores_anteriores JSONB,
    valores_nuevos JSONB
);
Script 2 — Trigger de Auditoría (triggers.sql)
-- Trigger para auditoría automática de cambios en la tabla 'cliente'

CREATE OR REPLACE FUNCTION procesar_auditoria_clientes()
RETURNS TRIGGER AS $$
BEGIN
    IF (TG_OP = 'UPDATE') THEN
        INSERT INTO registro_auditoria (tabla_afectada, operacion, valores_anteriores, valores_nuevos)
        VALUES ('cliente', TG_OP, row_to_json(OLD)::jsonb, row_to_json(NEW)::jsonb);
        RETURN NEW;
    ELSIF (TG_OP = 'DELETE') THEN
        INSERT INTO registro_auditoria (tabla_afectada, operacion, valores_anteriores)
        VALUES ('cliente', TG_OP, row_to_json(OLD)::jsonb);
        RETURN OLD;
    ELSIF (TG_OP = 'INSERT') THEN
        INSERT INTO registro_auditoria (tabla_afectada, operacion, valores_nuevos)
        VALUES ('cliente', TG_OP, row_to_json(NEW)::jsonb);
        RETURN NEW;
    END IF;
    RETURN NULL;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER trigger_auditoria_cliente
AFTER INSERT OR UPDATE OR DELETE ON cliente
FOR EACH ROW EXECUTE FUNCTION procesar_auditoria_clientes();
Script 3 — Procedimiento Almacenado (procedures.sql)
-- Procedimiento almacenado para gestionar devoluciones de pedidos de forma íntegra

CREATE OR REPLACE PROCEDURE procesar_devolucion_pedido(
    p_id_pedido INT,
    p_motivo_devolucion TEXT
) AS $$
DECLARE
    r_item RECORD;
BEGIN
    -- Validar que el pedido exista y esté Entregado o En Ruta
    IF NOT EXISTS (SELECT 1 FROM pedido WHERE id_pedido = p_id_pedido) THEN
        RAISE EXCEPTION 'El pedido con ID % no existe.', p_id_pedido;
    END IF;

    -- Cambiar estado del pedido a Devuelto
    UPDATE pedido 
    SET estado = 'Devuelto' 
    WHERE id_pedido = p_id_pedido;

    -- Devolver stock de cada ítem del pedido al inventario de productos
    FOR r_item IN 
        SELECT id_producto, cantidad 
        FROM item_pedido 
        WHERE id_pedido = p_id_pedido
    LOOP
        UPDATE producto 
        SET stock_actual = stock_actual + r_item.cantidad 
        WHERE id_producto = r_item.id_producto;
    END LOOP;

    RAISE NOTICE 'Devolución procesada con éxito para el pedido %. Inventario reabastecido.', p_id_pedido;
END;
$$ LANGUAGE plpgsql;
Script 4 — Script Backup Bash (backup.sh)
#!/bin/bash
# Script de Backup Nocturno de Base de Datos para PacketRoute S.L.
# Rotación de copias de seguridad de 7 días hacia el almacenamiento NAS

BACKUP_DIR="/mnt/nas/backups/postgresql"
DB_NAME="packetroute_db"
DB_USER="postgres"
DATE=$(date +%Y-%m-%d_%H%M%S)
LOG_FILE="/var/log/db_backup.log"

# Asegurar que el directorio de backups existe
mkdir -p "$BACKUP_DIR"

echo "[$DATE] Iniciando copia de seguridad de $DB_NAME..." >> "$LOG_FILE"

# Generar volcado comprimido de la base de datos
pg_dump -U "$DB_USER" "$DB_NAME" | gzip > "$BACKUP_DIR/db_backup_${DB_NAME}_${DATE}.sql.gz"

if [ $? -eq 0 ]; then
    echo "[$DATE] Copia de seguridad generada con éxito en $BACKUP_DIR" >> "$LOG_FILE"
else
    echo "[$DATE] ERROR al generar la copia de seguridad" >> "$LOG_FILE"
    exit 1
fi

# Eliminar copias de seguridad con más de 7 días (rotación de backup)
find "$BACKUP_DIR" -name "db_backup_${DB_NAME}_*" -mtime +7 -delete

echo "[$DATE] Proceso de backup nocturno y rotación finalizado." >> "$LOG_FILE"
Script 5 — Playbook Ansible (deploy_playbook.yml)
# Playbook de Ansible para mantenimiento de seguridad y actualizaciones de software
# Se ejecuta mensualmente para asegurar el parcheo de todos los servidores

- name: Actualización de seguridad de infraestructura PacketRoute
  hosts: servidores_internos
  become: yes
  tasks:
    - name: Actualizar caché de paquetes APT (Debian/Ubuntu)
      apt:
        update_cache: yes
        cache_valid_time: 3600

    - name: Aplicar actualizaciones de seguridad del sistema operativo
      apt:
        upgrade: safe
        autoremove: yes
        autoclean: yes

    - name: Comprobar si se requiere reiniciar después del parcheo
      stat:
        path: /var/run/reboot-required
      register: reboot_required_file

    - name: Reiniciar el servidor si es necesario
      reboot:
        msg: "Reinicio del sistema requerido por actualizaciones de seguridad"
        connect_timeout: 5
        reboot_timeout: 300
        pre_reboot_delay: 0
      when: reboot_required_file.stat.exists

Plan de Implantación y Estimación Financiera

Para llevar a la práctica la propuesta de PacketRoute S.L. de forma ordenada, se diseña un cronograma detallado de actividades y se realiza un análisis de presupuesto y retorno de inversión.

Cronograma de Fases (12 semanas)

### Fase 1: Infraestructura de Red Física (Semanas 1-2) Instalación del armario rack, tendido de cableado estructurado Categoría 6, certificación de tomas de datos RJ45 e instalación del SAI.

Fase 2: Conectividad y Perímetro (Semanas 3-4)

Configuración inicial de pfSense, definición de rutas estáticas, creación de las VLANs, asignación de puertos en el Switch y configuración del punto de acceso Wi-Fi del almacén con control de accesos.

Fase 3: Hipervisor y Servidores Virtuales (Semanas 5-6)

Instalación de Proxmox VE, despliegue y hardening de las cuatro máquinas virtuales Debian, configuración de Samba Active Directory y creación de GPOs para los usuarios de oficina.

Fase 4: Base de Datos y Despliegue de ERP (Semanas 7-8)

Inicialización de PostgreSQL, creación del esquema relacional e instalación de Odoo ERP Módulos Compras, Almacén, Ventas y Facturación. Migración de clientes e inventario desde Excel.

Fase 5: Pruebas, Monitorización y Formación (Semanas 9-10)

Pruebas unitarias de triggers, simulación de cortes de red y fallos de alimentación (SAI), configuración de alertas de Zabbix y formación del personal técnico y comercial.

Fase 6: Despliegue en Producción y Soporte (Semanas 11-12)

Apagado del sistema manual analógico, arranque definitivo en producción y soporte in-situ durante las primeras dos semanas de operaciones digitales.

Cronograma de implantación Gantt
Figura 7: Cronograma de 12 semanas para la implantación del plan de digitalización.

Estimación Económica del Proyecto

A continuación se expone el desglose de costes necesarios para la implantación del plan de transformación digital:

Concepto de Inversión Detalle de Componentes / Servicios Coste Estimado
Hardware Central (CAPEX) Servidor Dell PowerEdge Rack Xeon 32GB RAM + NAS Synology 8TB + SAI APC 1500VA 3.450 €
Electrónica de Red (CAPEX) Cortafuegos Netgate pfSense + Switch Capa 3 TP-Link 24p + AP Wi-Fi Profesional 1.150 €
Cableado e Instalación (CAPEX) Armario Rack 12U + Cable UTP Cat6 + Tomas de pared + Mano de obra técnica de red 1.800 €
Licencias de Software (OPEX) Suscripción Odoo Enterprise (35 usuarios) - Coste Anual 3.200 € / año
Mano de Obra e Implantación Consultoría de sistemas, migración de datos, configuración de base de datos y formación 4.500 €
Total Presupuesto Inicial Inversión de Capital Inicial (CAPEX) + Mano de Obra 10.900 €

Objetivos del Proyecto

Este proyecto no se limita a una propuesta teórica. El informe documenta decisiones técnicas reales y justificadas, respaldadas por diagramas profesionales, esquemas relacionales completos y scripts funcionales que demuestran la viabilidad operativa del plan de digitalización.
  • Objetivo General: Diseñar un plan integral de digitalización técnica y operativa para PacketRoute S.L., dotando a la empresa de una arquitectura informática moderna, segura, y escalable que optimice sus procesos de picking, almacenamiento y entrega.
  • Objetivos Específicos:
    • Diseñar una red física y lógica segmentada en VLANs mediante switches de Capa 3 y un cortafuegos perimetral pfSense.
    • Definir la arquitectura de servidores corporativos en Proxmox VE con gestión de identidades integrada en un dominio Active Directory (Samba AD).
    • Modelar una base de datos corporativa normalizada en PostgreSQL que resuelva la trazabilidad de los envíos y de las auditorías de datos mediante triggers avanzados.
    • Automatizar el mantenimiento del entorno con playbooks de Ansible y un sistema robusto de copias de seguridad de datos redundantes (locales y cloud).
    • Estructurar el plan financiero y el calendario de implantación del proyecto en 12 semanas.