Sysctl : configurer les options kernel sous Linux
Contents
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 :
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 :
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 :
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 :
/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 :
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 :
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 :
yum |
aptitude kernel-doc |
La doc se situe dans /usr/share/doc/kernel-doc*/Documentation