网络team配置手册
翻译自:teamd.conf: libteam daemon configuration file - Linux Man Pages (5) (systutorials.com)
teamd.conf - Linux 手册页
teamd.conf:libteam 守护进程配置文件
在 Linux 中显示 teamd.conf 手册的命令: $ man 5 teamd.conf
姓名
teamd.conf --- libteam 守护进程配置文件
描述
teamd 使用 JSON 格式配置。
选项
设备(字符串)
新团队设备的所需名称。
debug_level (int)
调试消息的级别。它越高,打印的调试消息就越多。这与添加“-g”命令行选项相同。
默认值:0(禁用)
hwaddr(字符串)
新团队设备的所需硬件地址。接受通常的 MAC 地址格式。
runner.name(字符串)
团队设备的名称。以下跑步者可用:
broadcast --- 简单的运行器,它指示团队设备通过所有端口传输数据包。
roundrobin --- 简单的运行器,它指示团队设备以循环方式传输数据包。
activebackup --- 监视链路变化并选择用于数据传输的活动端口。
loadbalance --- 为了做被动负载平衡,runner 只设置 BPF 哈希函数,它将确定数据包传输的端口。为了进行主动负载平衡,运行程序在可用端口之间移动哈希以达到完美平衡。
lacp --- 实现 802.3ad LACP 协议。可以使用与负载平衡运行器相同的 Tx 端口选择可能性。
notify_peers.count (int)
端口开启或关闭后主动发送的 NA 和免费 ARP 报文的突发数量。
默认值:0(禁用)
activebackup 运行器的默认值:1
notify_peers.interval (int)
值是以毫秒为单位的正数。指定通知对等数据包突发之间的间隔。
默认值:0
mcast_rejoin.count (int)
启用或禁用端口后发送的组播组重新加入请求的突发数。
默认值:0(禁用)
activebackup 运行器的默认值:1
mcast_rejoin.interval (int)
值是以毫秒为单位的正数。指定多播组重新加入请求突发之间的间隔。
默认值:0
link_watch.name | ports.PORTIFNAME.link_watch.name(字符串)
要使用的链接观察者的名称。以下链接观察程序可用:
ethtool --- 使用 Libteam lib 获取端口 ethtool 状态更改。
arp_ping --- ARP 请求通过端口发送。如果收到 ARP 回复,则认为该链接已启动。
nsna_ping --- 与前面类似,不同之处在于它使用 IPv6 邻居请求/邻居广告机制。这是 arp_ping 的替代方法,在纯 IPv6 环境中变得很方便。
端口(对象)
要在团队设备中使用的端口、网络设备列表。
有关更多信息,请参阅示例。
ports.PORTIFNAME.queue_id (int)
此端口应映射到的队列 ID。
默认值:无
Active-Backup Runner 特定选项
runner.hwaddr_policy(字符串)
这定义了在组生命周期内应如何设置组设备和端口设备的硬件地址的策略。以下是可用的:
same_all --- 所有端口将始终具有与关联的团队设备相同的硬件地址。
by_active --- Team 设备采用当前活动端口的硬件地址。当端口设备无法更改其硬件地址时,这很有用。
only_active --- 只有活动端口采用组设备的硬件地址。其他人都有自己的。
默认值:same_all
端口.PORTIFNAME.prio (int)
端口优先。数字越大意味着优先级越高。
默认值:0
ports.PORTIFNAME.sticky (bool)
指示端口是否为粘性的标志。如果设置,则意味着如果另一个具有更高优先级或更好参数的端口可用,则不会取消选择该端口。
默认值:假
loadbalance运行器特定选项
runner.tx_hash(数组)
应该用于数据包 Tx 哈希计算的片段类型(字符串)列表。以下是可用的:
eth --- 使用源和目标 MAC 地址。
vlan --- 使用 VLAN id。
ipv4 --- 使用源和目标 IPv4 地址。
ipv6 --- 使用源和目标 IPv6 地址。
ip --- 使用源和目标 IPv4 和 IPv6 地址。
l3 --- 使用源和目标 IPv4 和 IPv6 地址。
tcp --- 使用源和目标 TCP 端口。
udp --- 使用源和目标 UDP 端口。
sctp --- 使用源和目标 SCTP 端口。
l4 --- 使用源和目标 TCP 和 UDP 和 SCTP 端口。
runner.tx_balancer.name(字符串)
活动 Tx 平衡器的名称。默认情况下禁用主动 Tx 平衡。唯一可用的值是基本的。
默认值:无
runner.tx_balancer.balancing_interval (int)
在十分之一秒内。再平衡之间的周期性间隔。
默认值:50
LACP Runner 特定选项
runner.active (bool)
如果 active 为 true,则 LACPDU 帧会定期沿配置的链路发送。如果不是,它充当“说话时说话”。
默认值:真
runner.fast_rate (bool)
选项指定我们的链路伙伴被要求传输 LACPDU 数据包的速率。如果这是真的,那么数据包将每秒发送一次。否则,它们将每 30 秒发送一次。
runner.tx_hash(数组)
与负载平衡运行器相同。
runner.tx_balancer.name(字符串)
与负载平衡运行器相同。
runner.tx_balancer.balancing_interval (int)
与负载平衡运行器相同。
runner.sys_prio (int)
系统优先级,取值范围为 0 - 65535。
默认值:255
runner.min_ports (int)
指定在主接口中声明运营商之前必须处于活动状态的最小端口数,值可以是 1 - 255。
默认值:0
runner.agg_select_policy(字符串)
这将选择如何选择聚合器的策略。以下是可用的:
lacp_prio --- 将选择根据 LACP 标准具有最高优先级的聚合器。聚合器优先级受每个端口选项 lacp_prio 的影响。
lacp_prio_stable --- 与前一个相同,但如果它仍然可用,则不要替换选定的聚合器。
带宽 --- 选择总带宽最高的聚合器。
count --- 选择端口数最多的聚合器。
port_options --- 根据每个端口选项 prio 和sticky 具有最高优先级的聚合器将被选中。这意味着将选择包含具有最高优先级的端口的聚合器,除非当前选择的聚合器中至少有一个端口是粘性的。
默认值:lacp_prio
ports.PORTIFNAME.lacp_prio (int)
根据 LACP 标准的端口优先级。较低的数字意味着较高的优先级。
ports.PORTIFNAME.lacp_key (int)
符合 LACP 标准的端口密钥。只能聚合具有相同密钥的端口。
默认值:0
ETHTOOL 链接观看特定选项
link_watch.delay_up | ports.PORTIFNAME.link_watch.delay_up (int)
值是以毫秒为单位的正数。这是链接出现和跑步者收到通知之间的延迟。
默认值:0
link_watch.delay_down | ports.PORTIFNAME.link_watch.delay_down (int)
值是以毫秒为单位的正数。这是链接断开和跑步者收到通知之间的延迟。
默认值:0
ARP PING 链接观看特定选项
link_watch.interval | ports.PORTIFNAME.link_watch.interval (int)
值是以毫秒为单位的正数。它是发送 ARP 请求之间的时间间隔。
link_watch.init_wait | ports.PORTIFNAME.link_watch.init_wait (int)
值是以毫秒为单位的正数。它是链路监视初始化和发送第一个 ARP 请求之间的延迟。
默认值:0
link_watch.missed_max | ports.PORTIFNAME.link_watch.missed_max (int)
错过的 ARP 回复的最大数量。如果超过此数字,则链接报告为关闭。
默认值:3
link_watch.source_host | ports.PORTIFNAME.link_watch.source_host(主机名)
主机名转换为IP地址,作为源地址填写到ARP请求中。
默认值:0.0.0.0
link_watch.target_host | ports.PORTIFNAME.link_watch.target_host(主机名)
将主机名转换为IP地址,作为目标地址填写到ARP请求中。
link_watch.validate_active | ports.PORTIFNAME.link_watch.validate_active (bool)
验证活动端口上收到的 ARP 数据包。如果没有设置,所有传入的 ARP 数据包都将被视为一个好的回复。
默认值:假
link_watch.validate_inactive | ports.PORTIFNAME.link_watch.validate_inactive (bool)
验证在非活动端口上收到的 ARP 数据包。如果没有设置,所有传入的 ARP 数据包都将被视为一个好的回复。
默认值:假
link_watch.send_always | ports.PORTIFNAME.link_watch.send_always (bool)
默认情况下,ARP 请求仅在活动端口上发送。此选项甚至允许在非活动端口上发送。
默认值:假
NS/NA PING 链接观看特定选项
link_watch.interval | ports.PORTIFNAME.link_watch.interval (int)
值是以毫秒为单位的正数。它是发送 NS 数据包之间的间隔。
link_watch.init_wait | ports.PORTIFNAME.link_watch.init_wait (int)
值是以毫秒为单位的正数。它是链路监视初始化和发送第一个 NS 数据包之间的延迟。
link_watch.missed_max | ports.PORTIFNAME.link_watch.missed_max (int)
错过的 NA 回复数据包的最大数量。如果超过此数字,则链接报告为关闭。
默认值:3
link_watch.target_host | ports.PORTIFNAME.link_watch.target_host(主机名)
主机名转换为 IPv6 地址,作为目标地址填充到 NS 数据包中。
例子
{
"device": "team0",
"runner": {"name": "roundrobin"},
"ports": {"eth1": {}, "eth2": {}}
}
很基础的配置。
{
"device": "team0",
"runner": {"name": "activebackup"},
"link_watch": {"name": "ethtool"},
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
此配置使用带有 ethtool 链接观察程序的主动备份运行程序。端口 eth2 具有更高的优先级,但粘性标志可确保如果 eth1 变为活动状态,它会在链路保持正常时保持活动状态。
{
"device": "team0",
"runner": {"name": "activebackup"},
"link_watch": {
"name": "ethtool",
"delay_up": 2500,
"delay_down": 1000
},
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
与上一个类似。唯一的区别是链接更改不会立即传播到运行器,而是应用延迟。
{
"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
}
}
}
此配置使用 ARP ping 链路监视。
{
"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
}
}
}
与上一个类似,只是这次同时使用了两个链接观察者。
{
"device": "team0",
"runner": {
"name": "loadbalance",
"tx_hash": ["eth", "ipv4", "ipv6"]
},
"ports": {"eth1": {}, "eth2": {}}
}
基于散列的被动 Tx 负载平衡的配置。
{
"device": "team0",
"runner": {
"name": "loadbalance",
"tx_hash": ["eth", "ipv4", "ipv6"],
"tx_balancer": {
"name": "basic"
}
},
"ports": {"eth1": {}, "eth2": {}}
}
使用基本负载平衡器配置主动 Tx 负载平衡。
{
"device": "team0",
"runner": {
"name": "lacp",
"active": true,
"fast_rate": true,
"tx_hash": ["eth", "ipv4", "ipv6"]
},
"link_watch": {"name": "ethtool"},
"ports": {"eth1": {}, "eth2": {}}
}
用于连接到支持 LACP 的对应方的配置。
作者
Jiri Pirko 是 libteam 的原始作者和当前维护者。