Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
26 mai 2017

réseaux Linux           Configuration réseaux


teamd.conf

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": {}}
}