igalvit

Divagaciones de un informático loco

25 agosto 2018

Policy Based Routing en CentOS 7

por Ignacio Galván Vitas

Por defecto en los servidores CentOS con multiples interfaces de red todo el tráfico es devuelto por la interface que contenga la ruta por defecto. Este comportamiento no tiene nada de malo hasta que nos encontramos en escenarios donde es obligatorio separar el tráfico.

Escenario

En nuestro escenario partimos de la presencia de un servidor con dos interfaces de red, la primera en la red 10.0.2.0/24 que tiene la puerta de enlace por defecto en la IP 10.0.2.2, vamos a llamarla “red pública”, y la segunda en la red 192.168.56.20/24, vamos a llamarla “red de gestión”. Queremos que todo el tráfico de la red de gestión se enrute por la segunda interfaz por temas de seguridad.

[[email protected] ~]# ip addr show | grep "inet\b" | awk '{print $2" "$NF}'
127.0.0.1/8 lo
10.0.2.15/24 enp0s3
192.168.56.22/24 enp0s8
[[email protected] ~]# ip route|grep default
default via 10.0.2.2 dev enp0s3 proto static metric 100 

Instrucciones

Antes de comenzar a configurar PBR, en CentOS 7 es necesario instalar el siguiente paquete:

[[email protected] ~]# yum install -y NetworkManager-dispatcher-routing-rules

El siguiente paso es crear la entrada de la política de enrutado:

[[email protected] ~]# echo "2 mgt" >> /etc/iproute2/rt_tables

El siguiente paso es crear las reglas para la interfaz enp0s8:

[[email protected] ~]# vi /etc/sysconfig/network-scripts/rule-enp0s8
from 192.168.56.22/32 table mgt
to 192.168.56.22/32 table mgt

El siguiente paso es crear la ruta por defecto para la interfaz enp0s8:

[[email protected] ~]# vi /etc/sysconfig/network-scripts/route-enp0s8
default via 192.168.56.21 dev enp0s8 table mgt

Una vez configurado todo, tenemos que recargar la configuración para hacerla efectiva:

[[email protected] ~]# nmcli connection reload

Comrpobamos que todo está configurado según esperabamos:

[[email protected] ~]# ip rule show
0:	from all lookup local 
32764:	from all to 192.168.56.22 lookup mgt
32765:	from 192.168.56.22 lookup mgt 
32766:	from all lookup main 
32767:	from all lookup default
[[email protected] ~]# ip route show table mgt
default via 192.168.56.21 dev enp0s8 
etiquetas: CentOS - Policy Based Routing - Tutorial