Page suivante Page précédente Table des matières

12. Paramètres réseau du noyau

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.

12.1 Filtrage du Chemin Inverse (Reverse Path Filtering)

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

12.2 Configurations obscures

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.

ipv4 générique

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.

/proc/sys/net/ipv4/icmp_destunreach_rate

FIXME: à remplir

/proc/sys/net/ipv4/icmp_echo_ignore_all

FIXME: à remplir

/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts [Useful]

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.

/proc/sys/net/ipv4/icmp_echoreply_rate

FIXME: à remplir

/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

FIXME: à remplir

/proc/sys/net/ipv4/icmp_paramprob_rate

FIXME: à remplir

/proc/sys/net/ipv4/icmp_timeexceed_rate

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.

/proc/sys/net/ipv4/igmp_max_memberships

FIXME: à remplir

/proc/sys/net/ipv4/inet_peer_gc_maxtime

FIXME: à remplir

/proc/sys/net/ipv4/inet_peer_gc_mintime

FIXME: à remplir

/proc/sys/net/ipv4/inet_peer_maxttl

FIXME: à remplir

/proc/sys/net/ipv4/inet_peer_minttl

FIXME: à remplir

/proc/sys/net/ipv4/inet_peer_threshold

FIXME: à remplir

/proc/sys/net/ipv4/ip_autoconfig

FIXME: à remplir

/proc/sys/net/ipv4/ip_default_ttl

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.

/proc/sys/net/ipv4/ip_dynaddr

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).

/proc/sys/net/ipv4/ip_forward

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.

/proc/sys/net/ipv4/ip_local_port_range

Intervalle des ports locaux pour les connections sortantes. En fait, assez petit par défaut, 1024 à 4999.

/proc/sys/net/ipv4/ip_no_pmtu_disc

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.

/proc/sys/net/ipv4/ipfrag_high_thresh

FIXME: à remplir

/proc/sys/net/ipv4/ipfrag_low_thresh

FIXME: à remplir

/proc/sys/net/ipv4/ipfrag_time

FIXME: à remplir

/proc/sys/net/ipv4/tcp_abort_on_overflow

FIXME: à remplir

/proc/sys/net/ipv4/tcp_fin_timeout

FIXME: à remplir

/proc/sys/net/ipv4/tcp_keepalive_intvl

FIXME: à remplir

/proc/sys/net/ipv4/tcp_keepalive_probes

FIXME: à remplir

/proc/sys/net/ipv4/tcp_keepalive_time

FIXME: à remplir

/proc/sys/net/ipv4/tcp_max_orphans

FIXME: à remplir

/proc/sys/net/ipv4/tcp_max_syn_backlog

FIXME: à remplir

/proc/sys/net/ipv4/tcp_max_tw_buckets

FIXME: à remplir

/proc/sys/net/ipv4/tcp_orphan_retries

FIXME: à remplir

/proc/sys/net/ipv4/tcp_retrans_collapse

FIXME: à remplir

/proc/sys/net/ipv4/tcp_retries1

FIXME: à remplir

/proc/sys/net/ipv4/tcp_retries2

FIXME: à remplir

/proc/sys/net/ipv4/tcp_rfc1337

FIXME: à remplir

/proc/sys/net/ipv4/tcp_sack

Utilise un ACK sélectif qui peut être utilisé pour signifier qu'un seul paquet est manquant. Facilite ainsi une récupération rapide.

/proc/sys/net/ipv4/tcp_stdurg

FIXME: à remplir

/proc/sys/net/ipv4/tcp_syn_retries

FIXME: à remplir

/proc/sys/net/ipv4/tcp_synack_retries

FIXME: à remplir

/proc/sys/net/ipv4/tcp_timestamps

FIXME: à remplir

/proc/sys/net/ipv4/tcp_tw_recycle

FIXME: à remplir

/proc/sys/net/ipv4/tcp_window_scaling

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.

Configuration périphérique par périphérique

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.

/proc/sys/net/ipv4/conf/DEV/accept_redirects

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.

/proc/sys/net/ipv4/conf/DEV/accept_source_route

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.

/proc/sys/net/ipv4/conf/DEV/bootp_relay

FIXME: à remplir

/proc/sys/net/ipv4/conf/DEV/forwarding

FIXME: à remplir

/proc/sys/net/ipv4/conf/DEV/log_martians

Voir la section sur le "reverse path filters"

/proc/sys/net/ipv4/conf/DEV/mc_forwarding

Si vous faites de la transmission multidiffusion (multicast) sur cette interface.

/proc/sys/net/ipv4/conf/DEV/proxy_arp

FIXME: à remplir

/proc/sys/net/ipv4/conf/DEV/rp_filter

Voir la section sur le "reverse path filters"

/proc/sys/net/ipv4/conf/DEV/secure_redirects

FIXME: à remplir

/proc/sys/net/ipv4/conf/DEV/send_redirects

Si vous employez les redirections mentionnées ci-dessus.

/proc/sys/net/ipv4/conf/DEV/shared_media

FIXME: à remplir

/proc/sys/net/ipv4/conf/DEV/tag

FIXME: à remplir

Politique de voisinage

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.

/proc/sys/net/ipv4/neigh/DEV/anycast_delay

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/app_solicit

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/base_reachable_time

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/delay_first_probe_time

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/gc_stale_time

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/locktime

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/mcast_solicit

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/proxy_delay

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/proxy_qlen

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/retrans_time

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/ucast_solicit

FIXME: à remplir

/proc/sys/net/ipv4/neigh/DEV/unres_qlen

FIXME: à remplir

Configuration du routage

/proc/sys/net/ipv4/route/error_burst

FIXME: à remplir

/proc/sys/net/ipv4/route/error_cost

FIXME: à remplir

/proc/sys/net/ipv4/route/flush

FIXME: à remplir

/proc/sys/net/ipv4/route/gc_elasticity

FIXME: à remplir

/proc/sys/net/ipv4/route/gc_interval

FIXME: à remplir

/proc/sys/net/ipv4/route/gc_min_interval

FIXME: à remplir

/proc/sys/net/ipv4/route/gc_thresh

FIXME: à remplir

/proc/sys/net/ipv4/route/gc_timeout

FIXME: à remplir

/proc/sys/net/ipv4/route/max_delay

FIXME: à remplir

/proc/sys/net/ipv4/route/max_size

FIXME: à remplir

/proc/sys/net/ipv4/route/min_adv_mss

FIXME: à remplir

/proc/sys/net/ipv4/route/min_delay

FIXME: à remplir

/proc/sys/net/ipv4/route/min_pmtu

FIXME: à remplir

/proc/sys/net/ipv4/route/mtu_expires

FIXME: à remplir

/proc/sys/net/ipv4/route/redirect_load

FIXME: à remplir

/proc/sys/net/ipv4/route/redirect_number

FIXME: à remplir

/proc/sys/net/ipv4/route/redirect_silence

FIXME: à remplir


Page suivante Page précédente Table des matières