Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.4. Comprendre le démon de Network Teaming et les "Runners"

Le démon de Team, teamd, utilise libteam pour contrôler une instance du pilote de team. Cette instance du pilote team ajoute des instances d'un pilote de périphérique de matériel pour former un « groupement » (team) de liaisons réseau. Le pilote de team présente une interface réseau, team0 par exemple, pour les autres parties du noyau. Les interfaces créées par les instances du pilote de team reçoivent des noms comme team0, team1 et ainsi de suite, dans la documentation. C'est pour la facilité de compréhension et d'autres noms peuvent être utilisés. La logique commune à toutes ces méthodes de regroupement (teaming) est implémentée par teamd ; ces fonctions qui sont uniques aux différentes méthodes de sauvegarde et de répartition de charges, comme round-robin, sont activées par des entités de code dénommées « runners ». Comme les mots « module » et « mode » ont déjà des significations spécifiques en ce qui concerne le noyau, le mot « runner » a été choisi pour faire référence à ces unités de code. L'utilisateur spécifie le runner dans le fichier de configuration au format JSON, et le code est ensuite compilé en une instance de teamd lorsque l'instance est créée. Un runner n'est pas un plug-in car le code d'un runner est compilé en une instance de teamd alors qu'il est créé. Le code pourrait être créé comme un plug-in pour teamd si le besoin se présentait.
Le runners suivants sont disponibles au moment de la rédaction.
  • broadcast (les données sont diffusées sur tous les ports)
  • round-robin (les données sont transmises à travers tous les ports chacun son tour)
  • active-backup (un port ou un lien est utilisé tandis que les autres sont conservés en sauvegarde)
  • loadbalance (avec équilibrage des charges tx et sélecteurs de port Tx basé BPF)
  • lacp (implémentre le protocole 802.3ad Link Aggregation Control Protocol)
De plus, les link-watchers suivants sont disponibles :
  • ethtool (lib de Libteam utilise ethtool pour surveiller les changements d'état de liens). C'est la valeur par défaut si aucun autre link-watcher n'est spécifié dans le fichier de configuration
  • arp_ping (L'utilitaire arp_ping est utilisé pour surveiller la présence de l'adresse de matériel distant par les paquets ARP)
  • nsna_ping (de l'anglais Neighbor Advertisements and Neighbor Solicitation d'IPv6 Les protocoles Neighbor Discovery sont utilisés pour surveiller la présence d'une interface voisine)
Il n'y a aucune restriction niveau code pour empêcher un link-watcher particulier d'être utilisé avec un runner particulier, mais quand on utilise le runner lacp, ethtool est le seul link-watcher recommandé.