# teamd.conf
Fichier de configuration de teamd
## OPTIONS
**device** Nom du périphériques du nouveau périphérique team
**debug\_level** Niveau de debug. 0 = désactivé
**hwadr** Adresse MAC souhaitée pour le nouveau périphérique
**runner.name** Nom du périphérique team:
**broadcast** transmets les paquets via tous les ports
**roundrobin** mode de transmission round-robin
**activebackup** Sélection un port actif
**loadbalance** load balancing passif, utilise une fonction de
hashage BPF pour déterminer le port pour la transmission des paquets
**lacp. Pour un load balancing actif, les hash sont placés sur
les ports disponible en tentant d'atteindre la balance parfaite**
Implément le protocole 802.3ad.
**notify\_peers.count** Nombre de NA non-solicités et ARP gratuitous
envoyés après qu'un port ait été activé/désactivé
**notify\_peers.interval** interval en ms entre les bursts de paquets
notify-peer
**mcast\_rejoin.count** Monbre de bursts de requêtes rejoin de groupe
multicast envoyés une fois qu'un port soit activé/désactivé
**mcast\_rejoin.interval** Interval en ms entre les bursts des requêtes
rejoin de groupe multicast
**link\_watch.name | ports.PORTIFNAME.link\_watch.name** Nom du
surveillant de lien à utiliser:
**ethtool** Utilise libteam pour obtenir les changements d'état
de port
**arp\_ping** Les requêtes ARP sont envoyés via un port. Si une
réponse ARP, le lien est considéré up
**nsna\_ping** Similaire, mais utilise Neighbor
Solicitation/Advertisement IPv6.
**ports** Liste des ports, périphériques réseaux, à utiliser dans le
périphérique team
**ports.PORTIFNAME.queue\_id** ID de file auquel ce port doit être
mappé
## Options spécifiques au mode active-backup
**runner.hwaddr\_policy** Définis la stratégie pour définis les adresses
hardware et les périphériques ports du périphérique team durant sa durée
de vie:
**same\_all** Tous les ports ont toujours la même adresse
hardware
**by\_active** le team adopte l'adresse hardware du port actif
**only\_active** Seul le port actif adopte de l'adresse hardware
du team
**ports.PORTIFNAME.prio** Priorité du port
**ports.PORTIFNAME.sticky** Flag indiquant sile port est sticky, ce port
n'est pas désélectionné si un autre port avec une priorité plus élevée
ou de meilleurs paramètres deviennent disponibles
## Options spécifiques au mode load-balance
**runner.tx\_hash** Liste des types de fragment qui devraient être
utilisés pour le calcul du hash Tx du paquet:
**ethtool** Utilise les adresses MAC source et destination
**vlan** Utilise l'id de vlan
**ipv4** Utilise les adresses IPv4 source et destination
**ipv6** Utilise les adresses IPv6 source et destination
**ip** Utilise les adresse IPv4 et IPv6 source et destination
**l3** idem
**tcp** Utilise les ports TCP source et destination
**udp** Utilise les ports UDP source et destination
**sctp** Utilise les ports SCTP source et destination
**l4** Utilise les ports TCP, UDP, et SCTP source et
destination
**runner.tx\_balancer.name** Nom du balancer tx actif. (actuellement
seulement 'basic')
**runner.tx\_balancer.balancing\_interval** En dixième de seconde.
Interval périodique entre le rebalancing
## Options spécifiques au mode lacp
**runner.active** Si active est true, les frames LACPDU sont envoyés
avec les liens configurés périodiquement.
**runner.fast\_rate** Spécifie le taux auquel demander au partenaire du
lien de retransmettre les paquets LACPDU. À true, les paquets sont
envoyés une fois par seconde, sinon, une fois toutes les 30 secondes
**runner.tx\_hash** Idem pour le runner load-balancer
**runner.tx\_balancer.name** idem
**runner.tx\_balancer.balancing\_interval** idem
**runner.sys\_prio** priorité système (0-65535)
**runner.min\_ports** Nombre minimum de ports qui doivent être actifs
avant d'affirmer le porteur dans l'interface maître. 1-255
**runner.agg\_select\_policy** Sélection la stratégie de séléction de
l'aggrégateur
**lacp\_prio** Aggrégrateur avec haute priorité en accord avec
le standard LACP
**lacp\_prio\_stable** Idem, mais ne remplace pas l'aggrégateur
séléctionné s'il est utilisable
**bandwidth** Aggrégateur avec la bande passante la plus
élevée
**count** Aggrégateur avec le plus grand nombre de ports
**port\_config** Aggréateur en accord avec les options prio et
sticky.
**ports.PORTIFNAME.lacp\_prio** priorité de port en accord avec le
standard LACP
**ports.PORTIFNAME.lacp\_key** Clé de port en accord avec le standard
LACP
## Options du surveillant ethtool
**link\_watch.delay\_up | ports.PORTIFNAME.link\_watch.delay\_up** délay
en ms entre le lien devenant up, et la notification au runner
**link\_watch.delay\_down | ports.PORTIFNAME.link\_watch.delay\_down**
Délai en ms entre le lien devenant down et la notification au runner
## Options du surveillant arp ping
**link\_watch.interval | ports.PORTIFNAME.link\_watch.interval**
Interval en ms entre les requêtes ARP
**link\_watch.init\_wait | ports.PORTIFNAME.link\_watch.init\_wait**
délai en ms entre l'initialisation du surveilant et le premier ARP
**link\_watch.missed\_max | ports.PORTIFNAME.link\_watch.missed\_max**
Nombre de réponse ARP non reçu max avant de reporter le lien down
**link\_watch.source\_host | ports.PORTIFNAME.link\_watch.source\_host**
hostname source pour l'envoie des requêtes ARP
**link\_watch.target\_host | ports.PORTIFNAME.link\_watch.target\_host**
hostname auquel envoyer les requêtes ARP
**link\_watch.validate\_active |
ports.PORTIFNAME.link\_watch.validate\_active** Valide les paquets arp
dans le ports actifs, sinon, tous les paquets entrants sont considéré
comme de bonnes réponses
**link\_watch.validate\_inactive |
ports.PORTIFNAME.link\_watch.validate\_inactive** Valide les paquets
reçus sur les ports inactif. Sinon, tous les paquets entrants sont
considérés comme de bonnes réponses
**link\_watch.send\_always | ports.PORTIFNAME.link\_watch.send\_always**
Permet d'envoyer des requêtes arp également sur les ports inactifs
## Options du surveillant NS/NA
**link\_watch.interval | ports.PORTIFNAME.link\_watch.interval**
Interval en ms entre les envoies de paquets NS
**link\_watch.init\_wait | ports.PORTIFNAME.link\_watch.init\_wait**
délai en ms entre l'initialisation du surveillant et le premier NS
envoyé
**link\_watch.missed\_max | ports.PORTIFNAME.link\_watch.missed\_max**
Nombre de NA manqué maximum, avant de reporter le lien down
**link\_watch.target\_host | ports.PORTIFNAME.link\_watch.target\_host**
hostname auquel envoyer les paquets
NS
## Exemples
{
"device": "team0",
"runner": {"name": "roundrobin"},
"ports": {"eth1": {}, "eth2": {}}
}
Configuration très
basique
{
"device": "team0",
"runner": {"name": "activebackup"},
"link\_watch": {"name": "ethtool"},
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
Cette configuration utilise le runner active-backup avec surveillant
ethtool. le port eth2 a la plus haute priorité, mais le flag sticky
s'assure que eth1 reste
active.
{
"device": "team0",
"runner": {"name": "activebackup"},
"link\_watch": {
"name": "ethtool",
"delay\_up": 2500,
"delay\_down": 1000
},
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
Similaire au précédent, mais les changements de lien ne sont pas
propagés au runner
immédiatement
{
"device": "team0",
"runner": {"name": "activebackup"},
"link\_watch": {
"name": "arp\_ping",
"interval": 100,
"missed\_max": 30,
"target\_host": "192.168.23.1"
},
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
Cette configuration utilise un surveillant
ARP
{
"device": "team0",
"runner": {"name": "activebackup"},
"link\_watch": \[
{
"name": "arp\_ping",
"interval": 100,
"missed\_max": 30,
"target\_host": "192.168.23.1"
},
{
"name": "arp\_ping",
"interval": 50,
"missed\_max": 20,
"target\_host": "192.168.24.1"
}
\],
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
Similaire, mais 2 surveillant sont
utilisés
{
"device": "team0",
"runner": {
"name": "loadbalance",
"tx\_hash": \["eth", "ipv4", "ipv6"\]
},
"ports": {"eth1": {}, "eth2": {}}
}
Configuration passive
hash-based
{
"device": "team0",
"runner": {
"name": "loadbalance",
"tx\_hash": \["eth", "ipv4", "ipv6"\],
"tx\_balancer": {
"name": "basic"
}
},
"ports": {"eth1": {}, "eth2": {}}
}
Configuration active
load-balancing
{
"device": "team0",
"runner": {
"name": "lacp",
"active": true,
"fast\_rate": true,
"tx\_hash": \["eth", "ipv4", "ipv6"\]
},
"link\_watch": {"name": "ethtool"},
"ports": {"eth1": {}, "eth2": {}}
}