sábado, 25 de agosto de 2018

Policy Based Routing en CentOS 7

 

Por defecto en los servidores CentOS con múltiples 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.

[root@routes ~]# 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
[root@routes ~]# 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:

[root@routes ~]# yum install -y NetworkManager-dispatcher-routing-rules

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

[root@routes ~]# echo "2 mgt" >> /etc/iproute2/rt_tables

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

[root@routes ~]# 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:

[root@routes ~]# 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:

[root@routes ~]# nmcli connection reload

Comprobamos que todo está configurado según esperabamos:

[root@routes ~]# 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
[root@routes ~]# ip route show table mgt
default via 192.168.56.21 dev enp0s8 

No hay comentarios:

Publicar un comentario