Saltar la navegación

Router - /etc/sysctl.conf

Una de las posibilidades que nos ofrece GNU/Linux es la de poder actuar como enrutador, es decir, recibir paquetes, decidir la ruta de estos y reenviarlos por cualquiera de las interfaces de red existentes. Para hacerlo necesitamos modificar el parámetro del kernel denominado ip_forward.

El fichero de configuración /etc/sysctl.conf se utiliza para establecer algunos parámetros del kernel y que estos se mantengan entre sucesivos arranques del sistema, es decir, que los cambios sean persistentes. Esto es equivalente a cambiar valores en los archivos del directorio virtual /proc/sys, sólo que con este último método los cambios se pierden al apagar el sistema.

El nombre completo del parámetro que debemos modificar para que el equipo funcione como router se denomina net.ipv4.ip_forward, y su valor debe ser 1. Para que este cambio se mantenga al reiniciar el sistema, editamos el fichero /etc/sysctl.conf, buscamos el parámetro, y cambiamos el valor cero por el valor uno:

net.ipv4.ip_forward = 1

Tras este cambio reiniciamos el sistema y el equipo ya funcionará a partir de ahora como router; pero podemos hacer el cambio en caliente y ahorrarnos el reinicio. Hay varias formas de hacer esto:

  • Directamente poniendo el 1 en el fichero del directorio /proc/sys que se encarga de este parámetro. La forma de descubrir el fichero relacionado con un parámetro concreto del fichero /etc/sysctl.conf es siempre la misma. Todos los ficheros están en /proc/sys, y los puntos del parámetro separan directorios hasta el último que separa el nombre del fichero, de esta manera, el fichero que buscamos es el /proc/sys/net/ipv4/ip_forward. Podemos escribir un 1 de la siguiente forma, sin necesidad de abrirlo con un editor:
# echo 1 > /proc/sys/net/ipv4/ip_forward
  • Con el comando sysctl podemos cambiar el valor de los parámetros del kernel de la siguiente manera:
# sysctl -w net.ipv4.ip_forward=1

El cambio anterior con -w no sería persistente.

  • También podemos cargar todos los parámetros del fichero /etc/sysctl.conf ejecutando:
# sysctl -p

 Otros usos del comando sysctl son los siguientes:

  • Para ver todos los parámetros
# sysctl -a
  • Para ver sólo los parámetros que contengan una expresión regular:
# sysctl -a --patter net.ipv4
  • Para ver un parámetro concreto:
# sysctl net.ipv4.ip_forward
  • Para cargar todos los parámetros del kernel que hay en un fichero distinto a /etc/sysctl.conf:
# sysctl -p fichero

 

Licencia: licencia de software libre GPL