This shows you the differences between two versions of the page.
— |
bsd:kernel_tuning [2010/01/12 13:29] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Il est possible sous FreeBSD, NetBSD et OpenBSD de modifier des caractéristiques système "à chaud". \\ | ||
+ | Cette fonction est similaire aux modifications de fichiers virtuels de /proc sous GNU/Linux.\\ | ||
+ | Prenons l'ultra classique example de l'activation de la fonction de passerelle ( ip forwarding ). | ||
+ | Identifions avant tout le nom du paramètre : | ||
+ | |||
+ | ( nous prendrons comme exemple FreeBSD 4.x ) | ||
+ | <code> | ||
+ | # sysctl -a|grep forward | ||
+ | net.inet.ip.forwarding: 0 | ||
+ | net.inet.ip.fastforwarding: 0 | ||
+ | net.inet6.ip6.forwarding: 0 | ||
+ | </code> | ||
+ | |||
+ | 1ere remarque, les "variables" sont identifiées de manière similaire aux MIB snmp. | ||
+ | On constate que la valeur net.inet.ip.forwarding ( qui selon toute vraisemblence, est celle que nous désirons modifier ) est placée à 0. | ||
+ | Changeons cette valeur : | ||
+ | <code> | ||
+ | # sysctl -w net.inet.ip.forwarding=1 | ||
+ | </code> | ||
+ | |||
+ | Et verifions que le changement est pris en compte : | ||
+ | <code> | ||
+ | #sysctl net.inet.ip.forwarding | ||
+ | net.inet.ip.forwarding: 1 | ||
+ | </code> | ||
+ | |||
+ | Parfait, la valeur a bien été modifiée. | ||
+ | Pour garder les valeurs au prochain démarrage, il faut créer un fichier **/etc/sysctl.conf** au format suivant : | ||
+ | |||
+ | parametre=valeur | ||
+ | |||
+ | par exemple : | ||
+ | <code> | ||
+ | kern.securelevel=2 | ||
+ | net.inet.ip.forwarding=1 | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | La commande sysctl -a vous donnera l'ensemble des variables ainsi que leurs valeurs, le plus souvent, \\ | ||
+ | leurs noms sont relativement explicites, le cas échéant, reportez vous aux fichiers /usr/include : | ||
+ | <code> | ||
+ | sys/sysctl.h | ||
+ | sys/socket.h | ||
+ | sys/gmon.h | ||
+ | vm/vm_param.h | ||
+ | netinet/in.h | ||
+ | netinet/icmp_var.h | ||
+ | et netinet/udp_var.h | ||
+ | </code> |