Sysctl : configurer les options kernel sous Linux

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Sysctl est une interface qui permet d'examiner et de modifier dynamiquement les paramètres des systèmes d'exploitation BSD et Linux. L'implémentation en est très différente entre les deux systèmes.

Sous Linux, le mécanisme d'interface sysctl est également exporté comme une partie de procfs dans le répertoire sys. Cette différence signifie que le la vérification de la valeur de certains paramètres nécessite d'ouvrir un fichier dans le système de fichiers virtuel, de lire et d'interpréter son contenu, puis de le fermer. L'appel système sysctl existe sous Linux, mais n'est pas encapsulé par une fonction de la glibc et son usage est déconseillé.

2 Utilisation

Tout d'abord, il faut savoir qu'il existe /proc et /sys :

  • /proc : concerne la mémoire, le cpu, le réseau etc...
  • /sys : concerne les périphériques, les disques etc...

Maintenant rentrons dans le vif du sujet. Pour lire un paramètre d'un sysctl, nous allons utiliser la commande cat :

Command cat
cat /proc/sys/net/ipv4/ip_forward

2.1 /proc

/sys correspond à ce que l'on appel les sysctl.

Pour activer la persistance, après "/proc/sys/", il suffit de remplacer les "/" par des "." pour connaitre le nom du paramètre :

/proc/sys/net/ipv4/ip_forward

correspond à

net.ipv4.ip_forward

2.1.1 Appliquer les valeurs à chaud

2.1.1.1 Méthode 1

Ici la valeur par défaut est 0. Si je souhaites activer à chaud l'IP forwarding, voici comment s'y prendre :

Command echo
echo 1 > /proc/sys/net/ipv4/ip_forward

Ceci va activer la nouvelle valeur mais de façon non persistante (valeur resettée après un reboot).

2.1.1.2 Méthode 2

Pour appliquer à la volée :

Command sysctl
sysctl -w net.ipv4.ip_forward=1

2.1.2 Appliquer les valeurs de façon persistante

Il suffit donc d'ajouter ceci dans le fichier /etc/sysctl.conf :

Configuration File /etc/sysctl.conf
net.ipv4.ip_forward = 1

Si vous n'avez pas activé encore votre nouveau paramètre, vous pouvez activer à chaud tout ce que contient le fichier /etc/sysctl.conf comme ceci :

Command sysctl
sysctl -p

2.2 /sys

Pour le /sys, c'est malheureusement moins évident que pour le /proc puisqu'il n'existe qu le fichier /etc/rc.local pour faire de la persistance.

3 Documentations

3.1 Debian

Pour obtenir les documentation kernel, installez ceci :

Command aptitude
aptitude linux-doc-*

La doc se situe dans /usr/share/doc/linux-doc*/Documentation

3.2 RedHat

Pour obtenir les documentation kernel, installez ceci :

Command yum
aptitude kernel-doc

La doc se situe dans /usr/share/doc/kernel-doc*/Documentation