Skip to main content

Reglas-Rutas-Red

Primero comprobamos el estado del demonio que configura la red.

root@vader:~# sudo systemctl status route-rules.service
● route-rules.service - Configurar reglas de enrutamiento
     Loaded: loaded (/etc/systemd/system/route-rules.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2024-10-18 19:55:21 CEST; 2s ago
    Process: 830285 ExecStart=/usr/local/bin/route-rules.sh (code=exited, status=0/SUCCESS)
   Main PID: 830285 (code=exited, status=0/SUCCESS)
        CPU: 15ms

oct 18 19:55:21 vader systemd[1]: Starting Configurar reglas de enrutamiento...
oct 18 19:55:21 vader route-rules.sh[830286]: RTNETLINK answers: File exists
oct 18 19:55:21 vader route-rules.sh[830287]: RTNETLINK answers: File exists
oct 18 19:55:21 vader route-rules.sh[830288]: RTNETLINK answers: File exists
oct 18 19:55:21 vader route-rules.sh[830289]: RTNETLINK answers: File exists
oct 18 19:55:21 vader systemd[1]: Finished Configurar reglas de enrutamiento.
root@vader:~#

 

Comprobamos la existencia del script.

 sudo nano /usr/local/bin/route-rules.sh

ls -l  /usr/local/bin/route-rules.sh

Y si existe el script pero el demonio no existe hay que crearlo y activarlo.

Modificamos permisos del script.

sudo chmod +x /usr/local/bin/route-rules.sh

Creamos el servicio.

sudo nano /etc/systemd/system/route-rules.service

Añadimos lo siguiente.

[Unit]
Description=Configurar reglas de enrutamiento
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/route-rules.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Y activamos el servicio e iniciamos el servicio.

sudo systemctl enable route-rules.service

sudo systemctl start route-rules.service

Comprobamos que este todo correcto.

sudo systemctl status route-rules.service

SI NADA FUNCIONA HACED LO SIGUIENTE

Editar archivo rt_tables y añadir las tablas table_1 y table_2 al final del archivo.

nano /etc/iproute/rt_tables

200 table_1
201 table_2

Aplicamos rutas a las tablas.

ip route add 192.168.1.0/24 dev enp7s0 src 192.168.1.13 table table_1
ip route add default via 192.168.1.1 dev enp7s0 table table_1

ip route add 192.168.2.0/24 dev ens6 src 192.168.2.14 table table_2
ip route add default via 192.168.2.1 dev ens6 table table_2

Aplicamos reglas de enrutamiento

ip rule add from 192.168.1.0/24 table table_1
ip rule add from 192.168.2.0/24 table table_2

VERIFICAMOS LA CONFIGURACIÓN

ip rule show
ip route show table table_1
ip route show table table_2

Creamos script 

sudo nano /usr/local/bin/route-rules.sh

#!/bin/bash

# Rutas para la red 192.168.1.0/24
ip route add 192.168.1.0/24 dev enp7s0 src 192.168.1.13 table table_1
ip route add default via 192.168.1.1 dev enp7s0 table table_1

# Rutas para la red 192.168.2.0/24
ip route add 192.168.2.0/24 dev ens6 src 192.168.2.14 table table_2
ip route add default via 192.168.2.1 dev ens6 table table_2

# Reglas de enrutamiento basadas en origen
ip rule add from 192.168.1.0/24 table table_1
ip rule add from 192.168.2.0/24 table table_2

Modificamos permisos del script.

sudo chmod +x /usr/local/bin/route-rules.sh

Creamos el servicio.

sudo nano /etc/systemd/system/route-rules.service

Añadimos lo siguiente.

[Unit]
Description=Configurar reglas de enrutamiento
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/route-rules.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Y activamos el servicio e iniciamos el servicio.

sudo systemctl enable route-rules.service

sudo systemctl start route-rules.service

Comprobamos que este todo correcto.

sudo systemctl status route-rules.service