Le noyau utilise de nombreux paramètres qui peuvent être ajustés en différentes circonstances. Bien que, comme d'habitude, les paramètres par défaut conviennent à 99% des installations, nous ne pourrions pas appeler ce document "HOWTO avancé" sans en dire un mot.
Les éléments intéressants sont dans /proc/sys/net, jetez-y un oeil. Tout ne sera pas documenté ici au départ, mais nous y travaillons.
Par défaut, les routeurs routent tout, même les paquets qui visiblement n'appartiennent pas à votre réseau. Un exemple courant est l'espace des adresses IP privées s'échappant sur Internet. Si vous avez une interface avec une route pour 195.96.96.0/24 dessus, vous ne vous attendrez pas à voir arriver des paquets venant de 212.64.94.1.
Beaucoup d'utilisateurs veulent désactiver cette fonctionnalité. Les développeurs du noyau ont permis de le faire facilement. Il y a des fichiers dans /proc où vous pouvez ordonner au noyau de le faire pour vous. La méthode est appelée "Reverse Path Filtering" (Filtrage par chemin inverse). Pour faire simple, si la réponse à ce paquet ne sort pas par l'interface par laquelle il est entré, alors c'est un paquet "bogué" et il sera ignoré.
Les instructions suivantes vont activer cela pour toutes les interfaces courantes et futures.
# for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do
> echo 2 > $i
> done
En reprenant l'exemple du début, si un paquet arrivant sur le routeur Linux par eth1 prétend venir du réseau Bureau+FAI, il sera éliminé. De même, si un paquet arrivant du réseau Bureau prétend être de quelque part à l'extérieur du pare-feu, il sera également éliminé.
Ce qui est présenté ci-dessus est le filtrage de chemin inverse complet. Le paramétrage par défaut filtre seulement sur les adresses IP des réseaux directement connectés. Ce paramétrage par défaut est utilisé parce que le filtrage complet échoue dans le cas d'un routage asymétrique (où il y a des paquets arrivant par un chemin et ressortant par un autre, comme dans le cas du trafic satellite, ou si vous avez des routes dynamiques (bgp, ospf, rip) dans votre réseau. Les données descendent vers la parabole satellite et les réponses repartent par des lignes terrestres normales).
Si cette exception s'applique dans votre cas (vous devriez être au courant), vous pouvez simplement désactiver le rp_filter sur l'interface d'arrivée des données satellite. Si vous voulez voir si des paquets sont éliminés, le fichier log_martians du même répertoire indiquera au noyau de les enregistrer dans votre syslog.
# echo 1 >/proc/sys/net/ipv4/conf/<interfacename>/log_martians
FIXME: Est-ce que la configuration des fichiers dans .../conf/{default,all} suffit ? - martijn
Bon, il y a beaucoups de paramètres qui peuvent être modifiés. Nous essayons de tous les lister. Voir aussi une documentation partielle dans Documentation/ip-sysctl.txt.
Certaines de ces configurations ont des valeurs par défaut différentes suivant que vous répondez "Yes" ou "No" à la question "Configure as router and not host" lors de la compilation du noyau.
En remarque générale, les fonctionnalités de limitation de débit ne fonctionnent pas sur loopback, donc n'essayez pas de les tester localement.
FIXME: à remplir
FIXME: à remplir
Si vous pinguez l'adresse de diffusion d'un réseau, tous les hôtes sont censés répondre. Cela permet de coquettes attaques de déni de service. Mettez cette valeur à 1 pour ignorer ces messages de diffusion.
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
Voici la célèbre cause des "étoiles Solaris" dans traceroute. Limite le nombre de messages ICMP Time Exceeded envoyés. FIXME: Unité de ces "rates" ? Soit je suis stupide, soit ça ne fonctionne pas.
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
Durée de vie (TTL) des paquets. Fixez-la à la valeur sûre de 64. Augmentez-la si vous avez un réseau immense, mais pas "pour voir" : les boucles sans fin d'un mauvais routage sont plus dangereuses si le TTL est élevé. Vous pouvez même envisager de diminuer la valeur dans certaines circonstances.
Vous aurez besoin de positionner cela si vous utilisez la connexion à la demande avec une adresse d'interface dynamique. Une fois que votre interface sera activée, tout paquet placé en file d'attente sera retraité pour avoir la bonne adresse. Cela résout le problème posé par une connexion défectueuse ayant configuré une interface, suivie par une deuxième tentative réussie (avec une adresse IP différente).
Le noyau doit-il essayer de transmettre les paquets ? Désactivé par défaut pour les hôtes, activé par défaut quand le noyau est configuré pour un routeur.
Intervalle des ports locaux pour les connections sortantes. En fait, assez petit par défaut, 1024 à 4999.
Configurez cela si vous voulez désactiver la découverte du MTU : une technique pour déterminer le plus grand MTU possible sur votre chemin.
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
Utilise un ACK sélectif qui peut être utilisé pour signifier qu'un seul paquet est manquant. Facilite ainsi une récupération rapide.
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
TCP/IP autorise normalement des fenêtres jusqu'à une taille de 65535 octets. Pour des réseaux vraiment rapides, cela peut ne pas être assez. Les options "windows scaling" autorisent des fenêtres jusqu'au gigaoctet, ce qui est bon pour les produits à grande bande passante mais fort délai.
DEV peut désigner soit une interface réelle, soit "all", soit "default". Default change également les paramètres des interfaces qui seront créées par la suite.
Si un routeur décide que vous l'utilisez à tort (c'est-à-dire qu'il a besoin de ré-envoyer votre paquet sur la même interface), il vous enverra un ICMP Redirect. Cela présente cependant un petit risque pour la sécurité, et vous pouvez le désactiver, ou utiliser les redirections sécurisées.
Plus vraiment utilisé. On l'utilisait pour être capable de donner à un paquet une liste d'adresses IP à visiter. Linux peut être configuré pour satisfaire cette option IP.
FIXME: à remplir
FIXME: à remplir
Voir la section sur le "reverse path filters"
Si vous faites de la transmission multidiffusion (multicast) sur cette interface.
FIXME: à remplir
Voir la section sur le "reverse path filters"
FIXME: à remplir
Si vous employez les redirections mentionnées ci-dessus.
FIXME: à remplir
FIXME: à remplir
DEV peut désigner soit une interface réelle, soit "all", soit "default". Default change également les paramètres des interfaces qui seront créées par la suite.
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir
FIXME: à remplir