HOWTO du routage avancé et du contrôle de trafic sous Linux

Thomas Graf (Auteur d'une section)
Gregory Maxwell (Auteur d'une section)
Remco van Mook (Auteur d'une section)
Martijn van Oosterhout (Auteur d'une section)
Paul B. Schroeder (Auteur d'une section)
Jasper Spaans (Auteur d'une section)
Pedro Larroy (Auteur d'une section)

Laurent Foucher

Philippe Latu
Traducteur/Relecteur

Guillaume Allègre
Historique des versions
Version $Revision: 1112 $$Date: 2007-04-21 16:52:00 +0200 (sam, 21 avr 2007) $$Author: latu $
IPSEC, OSPF & BGP

Résumé

Une approche pratique d'iproute2, de la mise en forme du trafic et un peu de netfilter.


Table des matières

1. Dédicace
2. Introduction
Conditions de distribution et Mise en garde
Connaissances préalables
Ce que Linux peut faire pour vous
Notes diverses
Accès, CVS et propositions de mises à jour
Liste de diffusion
Plan du document
3. Introduction à iproute2
Pourquoi iproute2 ?
Un tour d'horizon d'iproute2
Prérequis
Explorer votre configuration courante
ip nous montre nos liens
ip nous montre nos adresses IP
ip nous montre nos routes
ARP
4. Règles - bases de données des politiques de routage
Politique de routage simple par l'adresse source
Routage avec plusieurs accès Internet/fournisseurs d'accès
Accès séparé
Balance de charge
5. GRE et autres tunnels
Quelques remarques générales à propos des tunnels :
IP dans un tunnel IP
Le tunnel GRE
Le tunnel IPv4
Le tunnel IPv6
Tunnels dans l'espace utilisateur
6. Tunnel IPv6 avec Cisco et/ou une dorsale IPv6 (6bone)
Tunnel IPv6
7. IPSEC: IP sécurisé à travers Internet
Introduction sur la gestion manuelle des clés
Gestion automatique des clés
Théorie
Exemple
Gestion automatique des clés en utilisant les certificats X.509
tunnels IPSEC
Autre logiciel IPSEC
Interopérabilité d'IPSEC avec d'autres systèmes
Windows
Check Point VPN-1 NG
8. Routage multidistribution (multicast)
9. Gestionnaires de mise en file d'attente pour l'administration de la bande passante
Explication sur les files d'attente et la gestion de la mise en file d'attente
Gestionnaires de mise en file d'attente simples, sans classes
pfifo_fast
Filtre à seau de jetons (Token Bucket Filter)
Mise en file d'attente stochastiquement équitable (Stochastic Fairness Queueing)
Conseils pour le choix de la file d'attente
terminologie
Gestionnaires de file d'attente basés sur les classes
Flux à l'intérieur des gestionnaires basés sur des classes & à l'intérieur des classes
La famille des gestionnaires de mise en file d'attente : racines, descripteurs, descendances et parents
Le gestionnaire de mise en file d'attente PRIO
Le célèbre gestionnaire de mise en file d'attente CBQ
Seau de jetons à contrôle hiérarchique (Hierarchical Token Bucket)
Classifier des paquets avec des filtres
Quelques exemples simples de filtrage
Toutes les commandes de filtres dont vous aurez normalement besoin
Le périphérique de file d'attente intermédiaire (The Intermediate queueing device (IMQ))
Configuration simple
10. Équilibrage de charge sur plusieurs interfaces
Avertissement
11. Netfilter et iproute - marquage de paquets
12. Filtres avancés pour la (re-)classification des paquets
Le classificateur u32
Le sélecteur U32
Sélecteurs généraux
Les sélecteurs spécifiques
Le classificateur route
Les filtres de réglementation (Policing filters)
Techniques de réglementation
Actions de dépassement de limite (Overlimit actions)
Exemples
Filtres hachés pour un filtrage massif très rapide
Filtrer le trafic IPv6
Comment se fait-il que ces filtres tc IPv6 ne fonctionnent pas ?
Marquer les paquets IPv6 en utilisant ip6tables
Utiliser le sélecteur u32 pour repérer le paquet IPv6
13. Paramètres réseau du noyau
Filtrage de Chemin Inverse (Reverse Path Filtering)
Configurations obscures
ipv4 générique
Configuration des périphériques
Politique de voisinage
Configuration du routage
14. Gestionnaires de mise en file d'attente avancés & moins communs
bfifo/pfifo
Paramètres & usage
Algorithme Clark-Shenker-Zhang (CSZ)
DSMARK
Introduction
A quoi DSMARK est-il relié ?
Guide des services différenciés
Travailler avec DSMARK
Comment SCH_DSMARK travaille.
Le filtre TC_INDEX
Gestionnaire de mise en file d'attente d'entrée (Ingress qdisc)
Paramètres & usage
Random Early Detection (RED)
Generic Random Early Detection
Emulation VC/ATM
Weighted Round Robin (WRR)
15. Recettes de cuisine
Faire tourner plusieurs sites avec différentes SLA (autorisations)
Protéger votre machine des inondations SYN
Limiter le débit ICMP pour empêcher les dénis de service
Donner la priorité au trafic interactif
Cache web transparent utilisant netfilter, iproute2, ipchains et squid
Schéma du trafic après l'implémentation
Circonvenir aux problèmes de la découverte du MTU de chemin en configurant un MTU par routes
Solution
Circonvenir aux problèmes de la découverte du MTU de chemin en imposant le MSS (pour les utilisateurs de l'ADSL, du câble, de PPPoE & PPtP)
Le Conditionneur de Trafic Ultime : Faible temps de latence, Téléchargement vers l'amont et l'aval rapide
Pourquoi cela ne marche t-il pas bien par défaut ?
Le script (CBQ)
Le script (HTB)
Limitation du débit pour un hôte ou un masque de sous-réseau
Exemple d'une solution de traduction d'adresse avec de la QoS
Commençons l'optimisation de cette rare bande passante
Classification des paquets
Améliorer notre configuration
Rendre tout ceci actif au démarrage
16. Construire des ponts et des pseudo ponts avec du Proxy ARP
Etat des ponts et iptables
Pont et mise en forme
Pseudo-pont avec du Proxy-ARP
ARP & Proxy-ARP
Implémentez-le
17. Routage Dynamique - OSPF et BGP
Configurer OSPF avec Zebra
Prérequis
Configurer Zebra
Exécuter Zebra
Configurer BGP4 avec Zebra
schéma réseau (Exemple)
Configuration (Exemple)
Vérification de la configuration
18. Autres possibilités
19. Lectures supplémentaires
20. Remerciements