Documentación > Instalación > Módulos del Kernel

Instalación de los Módulos del Kernel

Índice

  1. Introducción
  2. Requerimientos
    1. Kernels Válidos
    2. Paquetes básicos de compilación
    3. Encabezados del Kernel
    4. Interfaces de Red
    5. DKMS
    6. Ethtool
  3. Obtención del código
  4. Compilación e Instalación
    1. Instalación mediante DKMS
    2. Instalación mediante Kbuild

Introducción

Jool es cuatro binarios:

  1. Dos Módulos de Kernel que se ligan a Linux. Uno de ellos (jool) implementa Stateful NAT64, el otro (jool_siit) implementa SIIT.
    Son los encargados de traducir paquetes.
  2. Una aplicación de Espacio de Usuario por módulo de kernel. Nombrados de igual manera: jool y jool_siit Sirven para configurar a los respectivos módulos del kernel.

Este documento se enfocará en la instalación de los módulos del kernel. La instalación de las aplicaciones de configuración tienen su propio procedimiento.

Requerimientos

Debido a la variedad de kernels que existen, no es factible distribuir binarios de módulos de kernel, de modo que es necesario que se compilen localmente.

small_orange_diamond En segmentos de código venideros:$ indica que el comando no requiere privilegios # indica necesidad de permisos

Kernels Válidos

Jool soporta kernels de Linux a partir de la versión 3.0, y ha sido probado en varios incrementos.

El siguiente comando puede ser usado para consultar la versión del kernel actual:

$ /bin/uname -r

Paquetes básicos de compilación

Varias distribuciones ya los incluyen; omitir este paso en esos casos.

Debian CentOS Arch Linux openSUSE
# apt-get install build-essential
# yum install gcc
# pacman -S base-devel
# zypper install gcc make

Encabezados del Kernel

Son dependencia de cualquier módulo y le indican a Jool los parámetros bajo los cuales fue compilado Linux. La mayoría de las distribuciones hostean estos archivos en sus repositorios.

Ubuntu/Debian CentOS openSUSE Raspberry Pi
# apt-get install linux-headers-$(uname -r)
# yum install kernel-devel
# yum install kernel-headers
# zypper install kernel-source
$ # Ver https://github.com/NICMx/NAT64/issues/158

Interfaces de Red

Es posible traducir paquetes a través de una sola interfaz de red, pero es más intuitivo comprender SIIT y NAT64 cuando se tienen dos: Una para IPv4 y otra para IPv6.

Por lo tanto, si se están utilizando estos documentos con fines educativos, se recomienda tener al menos dos interfaces:

$ ip link show
(...)
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 08:00:27:3d:24:77 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 08:00:27:ca:18:c8 brd ff:ff:ff:ff:ff:ff

DKMS

DKMS es un framework que se encarga de administrar módulos. Este es opcional pero recomendable, la razón se discute abajo en la sección Compilación e Instalación.

# apt-get install dkms

Ethtool

Ethtool es una utilería para configurar las tarjetas Ethernet, con ella se pueden visualizar y modificar sus parámetros.

# apt-get install ethtool

Obtención del código

Existen dos opciones:

  1. Releases oficiales en la página de descarga.
    Su ventaja es que hacen más sencilla la instalación de las aplicaciones de usuario.
  2. Release en desarrollo que están en el repositorio de GitHub.
    Tiene la ventaja de que el último commit del branch master puede tener correcciones de errores menores que aún no están presentes en el último oficial.

Compilación e Instalación

Existen dos medios para instalar a Jool: Kbuild y DKMS.

Kbuild es un modo básico que simplemente se dedica a compilar e instalar el módulo para la versión actual del kernel. El Dynamic Kernel Module Support (DKMS) framework añade la posibilidad de que el módulo se adapte a actualizaciones de Linux (un módulo instalado con Kbuild requiere recompilación y reinstalación cada vez que se actualiza Linux).

Para todo propósito, ya sea para un ambiente de producción o prueba, es recomendadable preferir DKMS versus Kbuild.

Instalación mediante DKMS

Versión oficial Versión de Github
$ unzip Jool-<versión>.zip
# dkms install Jool-<versión>
$ unzip NAT64-master.zip
# dkms install NAT64-master

Instalación mediante Kbuild

Versión oficial Versión de Github
$ unzip Jool-<versión>.zip
$ cd Jool-<versión>/mod
$ make
# make install
$ unzip NAT64-master.zip
$ cd NAT64-master/mod
$ make
# make install

Notas:

Por razones de seguridad, desde el kernel 3.7 existe la opción y es una buena práctica de que los módulos instalados sean firmados.

Si el kernel no fue configurado para requerir esta característica, make install imprimirá el mensaje “Can’t read private key”, lo cual es una advertencia, no un error, y la instalación proseguirá sin cambios.

Si acaso el kernel fue compilado para solicitar firmado de módulos, se requerirá comandos adicionales que será omitidos aquí.

en | es