systemd.netdev 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 . 指令索引systemd-235

名称

systemd.netdev — 虚拟网络设备配置

大纲

netdev.netdev

描述

创建虚拟网络设备的操作实际由 systemd-networkd.service(8) 执行。

注意,虚拟网络设备的Netdev文件必须以 .netdev 作为后缀名,否则将被忽略。 systemd-networkd.service 服务将在启动后根据 .netdev 配置文件自动创建所有的虚拟网络设备。 如果将要创建的虚拟设备已经存在(以设备名为准),那么直接按现状使用已经存在的虚拟设备,而不是重新创建它。 特别需要注意的是,已经存在的虚拟设备的各项设置都将保持原样(不做任何更改)。

Netdev文件分别位于: 系统网络目录(/usr/lib/systemd/network)、 运行时网络目录(/run/systemd/network)、 本机网络目录(/etc/systemd/network)。 所有的Netdev文件(无论位于哪个目录中),统一按照文件名的字典顺序处理。 对于不同目录下的同名Netdev文件,仅以优先级最高的目录中的那一个为准。 具体说来就是:/etc/ 的优先级最高、/run/ 的优先级居中、/usr/lib/ 的优先级最低。 如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个Netdev文件, 那么最佳做法是在 /etc/ 目录中创建一个指向 /dev/null 的同名符号链接, 即可彻底屏蔽 /usr/lib/ 目录中的同名文件。

对于例如 foo.netdev 这样的Netdev文件,可以同时存在对应的 foo.netdev.d/ 目录,当解析完Netdev文件之后,目录中所有以 ".conf" 结尾的文件,都会被按照文件名的字典顺序,依次解析(相当于依次附加到Netdev文件的末尾)。 这样就可以方便的修改Netdev文件,或者为Netdev文件添加额外的设置,而无需修改Netdev文件本身。 注意,所有配置片段(".conf" 文件)必须包含明确的小节头(例如 "[Match]" 之类)。

".d" 目录除了可以放置在 /etc/systemd/network 目录中, 还可以放置在 /usr/lib/systemd/network/run/systemd/network 目录中。 所有 ".d/" 目录中的配置片段都会覆盖Netdev文件的设置(无论Netdev文件位于哪个目录)。 虽然在优先级上,/etc 中的配置片段优先级最高、 /run 中的配置片段优先级居中、/usr/lib 中的配置片段优先级最低。 但是由于 /run 是临时目录,而 /usr/lib 仅供软件包使用, 所以在实践中,".d/" 目录仅会放置在 /etc/systemd/network 目录中。

支持的虚拟网络设备类型

可以通过 .netdev 文件 配置下列类型的虚拟网络设备:

表 1. 支持的虚拟网络设备类型

类型描述
bond将多个网卡(slave)聚合为同一个绑定网卡。详见 Linux Ethernet Bonding Driver HOWTO 文档。
bridge网桥是一个软交换机,每个 slave 以及 bridge 自身都是交换机的一个端口,端口之间能够互相转发数据包。
dummy哑网卡只会简单的直接丢弃所有发送给它的数据包。
gre跑在IPv4上的3层GRE隧道。详见 RFC 2784
gretap跑在IPv4上的2层GRE隧道。
ip6gre跑在IPv6上的3层GRE隧道。
ip6tnl跑在IPv6上的IPv4或IPv6隧道
ip6gretap跑在IPv6上的2层GRE隧道。
ipip跑在IPv4上的IPv4隧道
ipvlan基于IP地址过滤规则从底层设备接收数据包的栈设备
macvlan基于MAC地址过滤规则从底层设备接收数据包的栈设备
macvtap基于MAC地址过滤规则从底层设备接收数据包的栈设备
sit跑在IPv4上的IPv6隧道
tap在一个网卡与另一个设备节点之间的持久2层隧道
tun在一个网卡与另一个设备节点之间的持久3层隧道
veth在一对网卡之间的以太网隧道
vlan基于VLAN标签过滤规则从底层设备接收数据包的栈设备。详见 IEEE 802.1Q
vti跑在IPSec上的IPv4隧道
vti6跑在IPSec上的IPv6隧道
vxlan虚拟可扩展局域网(virtual extensible LAN)用于云计算部署
geneve通用网络虚拟化封装(GEneric NEtwork Virtualization Encapsulation)设备
vrf虚拟路由与转发(VRF)接口用于创建独立的路由与转发域
vcan虚拟控制器局域网络。像普通的 loopback 设备一样, vcan 也能提供一个虚拟的本地 CAN(ControllerArea Network) 接口。

[Match] 小节选项

仅在 "[Match]" 小节为空, 或者其中的所有选项都匹配成功的情况下, 才会创建虚拟设备。 所有可用于匹配的选项如下:

Host=

匹配主机名(hostname)或"machine ID"。 详见 systemd.unit(5) 中的 "ConditionHost=" 选项。

Virtualization=

检查系统是否运行在虚拟化环境中, 亦可进一步检查系统是否运行在特定的虚拟化环境中。 详见 systemd.unit(5) 中的 "ConditionVirtualization=" 选项。

KernelCommandLine=

检查是否设置了特定的内核引导选项(若以感叹号(!)开头则表示未设置)。 详见 systemd.unit(5) 中的 "ConditionKernelCommandLine=" 选项。

Architecture=

检查是否运行在特定的硬件架构上。 详见 systemd.unit(5) 中的 "ConditionArchitecture=" 选项。

[NetDev] 小节选项

"[NetDev]" 小节 能够识别的选项如下:

Description=

对虚拟设备的描述

Name=

将要创建的虚拟设备的名称。 这是必须设置的选项。

Kind=

将要创建的虚拟设备的类型。 这是必须设置的选项。 必须设为一个前述"支持的虚拟网络设备类型"表格中"类型"字段的值。

MTUBytes=

设置虚拟设备的最大传输单元。 可以使用以1024为基准的 K, M, G 后缀。 此选项当前对 "tun" 与 "tap" 设备无效。

MACAddress=

设置虚拟设备的MAC地址。 若未设置,则基于设备名称与 machine-id(5) 生成一个。 此选项当前对 "tun" 与 "tap" 设备无效。

[Bridge] 小节选项

"[Bridge]" 小节仅在 Kind=bridge 时才有意义。 能够识别的选项如下:

HelloTimeSec=

根桥(root bridge)/指定桥(designated bridge)每隔多少秒发送一次"Hello包"。 根桥(Root Bridge)使用"Hello包"通告整个桥接局域网中的所有其他网桥:"我是根桥"。 指定桥(designated bridge)是到根桥累计路径花费最小的网桥,负责收发本网段数据,并且随时准备接替失效的根桥(Root Bridge)。

MaxAgeSec=

"Hello包"的最长有效期,必须大于 HelloTimeSec= 值。 从收到最后一个"Hello包"开始计时,如果超过此处设置的时间仍未收到根桥发出的"Hello包", 那么指定桥(designated bridge)将会接替失效的根桥(Root Bridge), 并使用"Hello包"通告整个桥接局域网中的所有其他网桥:"我是根桥"。

ForwardDelaySec=

从监听与学习状态切换为转发状态前延迟多少秒

AgeingTimeSec=

从某个MAC地址收到数据包之后,将在转发数据库中保留此MAC地址多长时间。

Priority=

该桥的优先级。必须是一个 0 到 65535 之间的整数。 数字越小优先级越高。优先级最低的桥将被选为"根桥"。

GroupForwardMask=

接受一个以正整数形式表示的16位掩码, 以允许转发带有 802.1D 保留地址(01:80:C2:00:00:0X)的本地链路帧。 具体算法是使用"AND"逻辑计算指定掩码与 2^X 的幂(其中"X"是MAC地址最后一个字节的低半截)。 例如将此选项设为 8 表示允许将帧地址转发到 01:80:C2:00:00:03 (802.1X PAE)

DefaultPVID=

新增端口的默认 VLAN ID , 可设为 1–4094 之间的一个整数,或者特殊值 "none" 表示禁用 PVID

MulticastQuerier=

控制内核 IFLA_BR_MCAST_QUERIER 属性的布尔值。 设为 yes 表示允许内核从一个全零源地址发送常规ICMP查询(也就是允许ICMP组播)。 此特性可以加速网络启动时的聚合(convergence), 但却会导致某些理解组播的交换机作出错误行为以及胡乱转发ICMP组播包。 若未设置,则使用内核的默认值。

MulticastSnooping=

控制内核 IFLA_BR_MCAST_SNOOPING 属性的布尔值。 设为 yes 表示启用 IGMP snooping 监控主机与组播路由(multicast router)之间的IGMP(Internet Group Management Protocol)流量。 若未设置,则使用内核的默认值。

VLANFiltering=

控制内核 IFLA_BR_VLAN_FILTERING 属性的布尔值。 设为 yes 表示以 VLAN-filtering 模式启动网桥。 若未设置,则使用内核的默认值。

STP=

控制是否使用生成树协议(Spanning Tree Protocol)的布尔值。 若未设置,则使用内核的默认值。

[VLAN] 小节选项

"[VLAN]" 小节仅在 Kind=vlan 时才有意义。 能够识别的选项如下:

Id=

使用的 VLAN ID ,必须是一个 0 ~ 4094 之间的整数。 这是必须设置的选项。

GVRP=

是否支持通用VLAN注册协议(Generic VLAN Registration Protocol)。 该协议允许自动学习网络上的各个 VLAN 。接受一个布尔值。 默认值采用内核的设置。

MVRP=

是否支持多VLAN注册协议(Multiple VLAN Registration Protocol)。 该协议是一个标准的二层协议,以前被称为 GVRP(GARP VLAN Registration Protocol),用于自动配置交换机上的 VLAN 。 它最初由 802.1ak 定义,后来被 802.1Q-2005 进行了修正。 接受一个布尔值。 默认值采用内核的设置。

LooseBinding=

是否支持 VLAN 松散绑定模式。 该模式仅从父级向关联的VLAN传递操作状态,但是VLAN设备的状态保持不变。 接受一个布尔值。默认值采用内核的设置。

ReorderHeader=

接受一个布尔值,设为 yes 表示让 VLAN 设备表现的像一个真正的物理设备一样。 默认值采用内核的设置。

[MACVLAN] 小节选项

"[MACVLAN]" 小节仅在 Kind=macvlan 时才有意义。 能够识别的选项如下:

Mode=

要使用的 MACVLAN 模式。可设为 "private", "vepa", "bridge", "passthru" 之一。

[MACVTAP] 小节选项

"[MACVTAP]" 小节仅在 Kind=macvtap 时才有意义。 能够识别的选项与 "[MACVLAN]" 小节完全相同。

[IPVLAN] 小节选项

"[IPVLAN]" 小节仅在 Kind=ipvlan 时才有意义。 能够识别的选项如下:

Mode=

要使用的 IPVLAN 模式。可设为 "L2", "L3" 之一。

[VXLAN] 小节选项

"[VXLAN]" 小节仅在 Kind=vxlan 时才有意义。 能够识别的选项如下:

Id=

要使用的 VXLAN ID

Remote=

目标多播组IP地址

Local=

本地IP地址

TOS=

vxlan 接口的服务类型(Type Of Service)字段的值(正好一个字节)。

TTL=

vxlan 包的生存期(允许的跳数)。 一般设为一个 1–255 之间的整数。 但是特殊值 0 表示继承上一级 TTL 值。

MacLearning=

接受一个布尔值。设为 yes 表示允许动态MAC地址学习, 从而允许发现远端的MAC地址。

FDBAgeingSec=

The lifetime of Forwarding Database entry learnt by the kernel, in seconds.

MaximumFDBEntries=

Configures maximum number of FDB entries.

ReduceARPProxy=

A boolean. When true, bridge-connected VXLAN tunnel endpoint answers ARP requests from the local bridge on behalf of remote Distributed Overlay Virtual Ethernet (DVOE) clients. Defaults to false.

L2MissNotification=

A boolean. When yes, enables netlink LLADDR miss notifications.

L3MissNotification=

A boolean. When yes, enables netlink IP address miss notifications.

RouteShortCircuit=

A boolean. When yes, route short circuiting is turned on.

UDPChecksum=

A boolean. When yes, transmitting UDP checksums when doing VXLAN/IPv4 is turned on.

UDP6ZeroChecksumTx=

A boolean. When yes, sending zero checksums in VXLAN/IPv6 is turned on.

UDP6ZeroChecksumRx=

A boolean. When yes, receiving zero checksums in VXLAN/IPv6 is turned on.

RemoteChecksumTx=

A boolean. When true, remote transmit checksum offload of VXLAN is turned on.

RemoteChecksumRx=

A boolean. When true, remote receive checksum offload in VXLAN is turned on.

GroupPolicyExtension=

A boolean. When yes, it enables Group Policy VXLAN extension security label mechanism across network peers based on VXLAN. For details about the Group Policy VXLAN, see the VXLAN Group Policy document. Defaults to no.

DestinationPort=

Configures the default destination UDP port on a per-device basis. If destination port is not specified then Linux kernel default will be used. Set destination port 4789 to get the IANA assigned value. If not set or if the destination port is assigned the empty string the default port of 4789 is used.

PortRange=

Configures VXLAN port range. VXLAN bases source UDP port based on flow to help the receiver to be able to load balance based on outer header flow. It restricts the port range to the normal UDP local ports, and allows overriding via configuration.

FlowLabel=

Specifies the flow label to use in outgoing packets. The valid range is 0-1048575.

[GENEVE] 小节选项

"[GENEVE]" 小节仅在 "Kind=geneve" 时才有意义。 能够识别的选项如下:

Id=

Specifies the Virtual Network Identifier (VNI) to use. Ranges [0-16777215].

Remote=

Specifies the unicast destination IP address to use in outgoing packets.

TOS=

Specifies the TOS value to use in outgoing packets. Ranges [1-255].

TTL=

Specifies the TTL value to use in outgoing packets. Ranges [1-255].

UDPChecksum=

A boolean. When true, specifies if UDP checksum is calculated for transmitted packets over IPv4.

UDP6ZeroChecksumTx=

A boolean. When true, skip UDP checksum calculation for transmitted packets over IPv6.

UDP6ZeroChecksumRx=

A boolean. When true, allows incoming UDP packets over IPv6 with zero checksum field.

DestinationPort=

Specifies destination port. Defaults to 6081. If not set or assigned the empty string, the default port of 6081 is used.

FlowLabel=

Specifies the flow label to use in outgoing packets.

[Tunnel] 小节选项

"[Tunnel]" 小节仅在 Kind= 的值等于 "ipip", "sit", "gre", "gretap", "ip6gre", "ip6gretap", "vti", "vti6", "ip6tnl" 之一时才有意义。 能够识别的选项如下:

Local=

A static local address for tunneled packets. It must be an address on another interface of this host.

Remote=

The remote endpoint of the tunnel.

TOS=

The Type Of Service byte value for a tunnel interface. For details about the TOS, see the Type of Service in the Internet Protocol Suite document.

TTL=

A fixed Time To Live N on tunneled packets. N is a number in the range 1–255. 0 is a special value meaning that packets inherit the TTL value. The default value for IPv4 tunnels is: inherit. The default value for IPv6 tunnels is 64.

DiscoverPathMTU=

A boolean. When yes, enables Path MTU Discovery on the tunnel.

IPv6FlowLabel=

Configures the 20-bit flow label (see RFC 6437) field in the IPv6 header (see RFC 2460), which is used by a node to label packets of a flow. It is only used for IPv6 tunnels. A flow label of zero is used to indicate packets that have not been labeled. It can be configured to a value in the range 0–0xFFFFF, or be set to "inherit", in which case the original flowlabel is used.

CopyDSCP=

A boolean. When yes, the Differentiated Service Code Point (DSCP) field will be copied to the inner header from outer header during the decapsulation of an IPv6 tunnel packet. DSCP is a field in an IP packet that enables different levels of service to be assigned to network traffic. Defaults to "no".

EncapsulationLimit=

The Tunnel Encapsulation Limit option specifies how many additional levels of encapsulation are permitted to be prepended to the packet. For example, a Tunnel Encapsulation Limit option containing a limit value of zero means that a packet carrying that option may not enter another tunnel before exiting the current tunnel. (see RFC 2473). The valid range is 0–255 and "none". Defaults to 4.

Key=

The Key= parameter specifies the same key to use in both directions (InputKey= and OutputKey=). The Key= is either a number or an IPv4 address-like dotted quad. It is used as mark-configured SAD/SPD entry as part of the lookup key (both in data and control path) in ip xfrm (framework used to implement IPsec protocol). See ip-xfrm — transform configuration for details. It is only used for VTI/VTI6 tunnels.

InputKey=

The InputKey= parameter specifies the key to use for input. The format is same as Key=. It is only used for VTI/VTI6 tunnels.

OutputKey=

The OutputKey= parameter specifies the key to use for output. The format is same as Key=. It is only used for VTI/VTI6 tunnels.

Mode=

An "ip6tnl" tunnel can be in one of three modes "ip6ip6" for IPv6 over IPv6, "ipip6" for IPv4 over IPv6 or "any" for either.

Independent=

A boolean. When true tunnel does not require .network file. Created as "tunnel@NONE". Defaults to "false".

[Peer] 小节选项

"[Peer]" 小节仅在 Kind=veth 时才有意义。 能够识别的选项如下:

Name=

创建此以太网隧道时所使用的网口名称。 这是必须设置的选项。

MACAddress=

peer 的MAC地址。 若未设置,则自动生成一个(生成方法与上文 [NetDev] 小节中的 MACAddress= 选项相同)。

[Tun] 小节选项

"[Tun]" 小节仅在 Kind=tun 时才有意义。 能够识别的选项如下:

OneQueue=

设为 yes 表示将所有数据包都排入该设备的队列。 默认值 no 表示仅允许将固定数量的数据包排入该设备的队列, 而其余的数据包则全部排入 "qdisc" 队列。

MultiQueue=

设为 yes 表示使用多个文件描述符(队列)并行处理数据包的发送与接收。 默认值 no 表示仅使用一个文件描述符(队列)处理数据包的发送与接收。

PacketInfo=

设为 yes 表示给数据包预先填充四个额外的字节(两个标记字节、两个协议字节)。 默认值 no 表示不填充, 也就是将数据包视为纯粹的IP包。

VNetHeader=

设为 yes 表示为 tap 设备开启 IFF_VNET_HDR 标记, 以允许发送与接收更大的 GSO(Generic Segmentation Offload)包, 从而可以显著提升吞吐量。 默认值 no 表示关闭 IFF_VNET_HDR 标记。

User=

设置 /dev/net/tun 设备的属主

Group=

设置 /dev/net/tun 设备的属组

[Tap] 小节选项

"[Tap]" 小节仅在 Kind=tap 时才有意义。 能够识别的选项与 "[Tun]" 小节完全相同。

[Bond] 小节选项

"[Bond]" 小节仅在 Kind=bond 时才有意义。 能够识别的选项如下:

Mode=

设置网卡绑定模式。 此选项相当于设置 bond 模块的 mode 属性。可用值如下: "balance-rr"(默认值), "active-backup", "balance-xor", "broadcast", "802.3ad", "balance-tlb", "balance-alb"

TransmitHashPolicy=

设置在选择 slave 设备时使用的传输哈希策略(分发策略)。 仅对 "balance-xor", "802.3ad", "balance-tlb" 模式有意义。 此选项相当于设置 bond 模块的 xmit_hash_policy 属性。可用值如下: "layer2"(默认值), "layer3+4", "layer2+3", "encap2+3", "encap3+4"

LACPTransmitRate=

此选项仅对 "802.3ad" 模式有意义。 设置 slave 设备发送LACPDU(Link Aggregation Control Protocol Data Unit)包的频率。 此选项相当于设置 bond 模块的 lacp_rate 属性。可用值如下: "slow" 表示每30秒发送一次LACPDU包; "fast" 表示每一秒发送一次LACPDU包; 默认值是 "slow"

MIIMonitorSec=

设置监控 MII(Media Independent Interface) 连接的间隔时长,默认单位是毫秒。 此选项相当于设置 bond 模块的 miimon 属性。 设置的值最终会被四舍五入到最接近的毫秒。 默认值"0"表示禁用监控。

UpDelaySec=

当检测到链路处于"Up"状态时,延迟多久再启用它,默认单位是毫秒。 此选项相当于设置 bond 模块的 updelay 属性。 此处设置的值将被向下取整到 MIIMonitorSec= 的整数倍。 默认值是"0"

DownDelaySec=

当检测到链路处于"Down"状态时,延迟多久再禁用它,默认单位是毫秒。 此选项相当于设置 bond 模块的 downdelay 属性。 此处设置的值将被向下取整到 MIIMonitorSec= 的整数倍。 默认值是"0"

LearnPacketIntervalSec=

此选项仅对 "balance-tlb" 与 "balance-alb" 模式有意义。 设置发送ARP学习包的时间间隔(默认单位是秒)。 此选项相当于设置 bond 模块的 lp_interval 属性。 取值范围是 1–0x7fffffff ;默认值是 1 (秒)。

AdSelect=

设置 "802.3ad" 聚合的选择逻辑。 此选项相当于设置 bond 模块的 ad_select 属性。可设为下列值之一: "stable"(默认值), "bandwidth", "count"

FailOverMACPolicy=

此选项仅对 "active-backup" 模式有意义。 相当于设置 bond 模块的 fail_over_mac 属性。 可设为下列值之一: "none"(默认值) 表示在失败切换时,只更改新激活的 slave 的MAC地址,而不更改 bond 的MAC地址。 "active" 表示保持各个 slave 的MAC地址不变,在失败切换时,仅将 bond 的MAC地址修改为新激活的 slave 的MAC地址。 "follow" 表示在失败切换时,不但将新激活的 slave 的MAC地址修改为 bond 的MAC地址,而且将下线的原 slave 的MAC地址修改为新激活的 slave 的原有MAC地址。

ARPValidate=

此选项相当于设置 bond 模块的 arp_validate 属性。 设置是否应该验证接收到的ARP请求与应答正确性(Validation), 以及是否应该仅使用接收到的ARP流量进行连接监控(反对这么做)(Filtering)。 可设为下列值之一: "none" 既不 Validation 也不 Filtering ; "active" 仅对处于活动状态的 slave 执行 Validation ; "backup" 仅对处于备用状态的 slave 执行 Validation ; "all" 对所有 slave 执行 Validation ;

ARPIntervalSec=

设置ARP连接监控的频率(时间间隔),默认单位是毫秒。 此选项相当于设置 bond 模块的 arp_interval 属性。 默认值"0"表示禁用ARP连接监控。

ARPIPTargets=

设置当 ARPIntervalSec= 大于零的时候,用作ARP连接监控目标的IP地址。 要想ARP连接监控正常工作,必须至少设置一个目标IP地址。 此选项相当于设置 bond 模块的 arp_ip_target 属性。 值是一个点分十进制格式表示的IPv4地址。 最多设置16个目标IP地址。 默认值为空。

ARPAllTargets=

此选项仅影响 "active-backup" 模式中开启了 ARPValidate= 的 slave 设备。 设置有多少个用作ARP连接监控目标的IP地址(ARPIPTargets=)可达的时候,一个 slave 设备才会被认为是处于"Up"状态。 此选项相当于设置 bond 模块的 arp_all_targets 属性。可设为下列值之一: "any", "all"

PrimaryReselectPolicy=

设置重新选择 primary slave 的策略。 此选项的目的在于防止在 primary slave 与其他 slave 设备之间出现反转。 此选项相当于设置 bond 模块的 primary_reselect 属性。 可设为下列值之一: "always"(默认值), "better", "failure"

ResendIGMP=

发生失败切换事件后,发送多少次IGMP成员报告(membership report)。 此选项相当于设置 bond 模块的 resend_igmp 属性。 发生失败切换事件后会立即发送一次成员报告, 如果此选项大于 1 ,那么随后每隔 200ms 重新发送一次,直到用完所有次数。 取值范围是 0–255 ,默认值是 1 。 0 表示禁止发送IGMP成员报告(membership report)。

PacketsPerSlave=

设置在同一个 slave 设备上发送多少个包之后就切换到下一个 slave 设备。 此选项相当于设置 bond 模块的 packets_per_slave 属性。 取值范围是 0–65535 ,设为 0 表示随机选择 slave 设备。默认值是 1 。 此选项仅对 "balance-rr" 模式有意义。

GratuitousARP=

发生失败切换事件后, 发送多少次端点通知(无故ARP/主动IPv6邻居通告)。 此选项相当于设置 bond 模块的 num_grat_arp/num_unsol_na 属性。 发生失败切换事件后会立即发送一次端点通知, 如果此选项大于 1 ,那么随后每隔 ARPIntervalSec=MIIMonitorSec= 间隔重新发送一次,直到用完所有次数。 取值范围是 0–255 ,0 表示禁止发送,默认值是 1 。 此选项仅对 "active-backup" 模式有意义。

AllSlavesActive=

设置应该转发还是丢弃在不活动端口上接收到的重复帧。 "yes"表示转发。默认值"no"表示丢弃。 通常应该丢弃(也就是设为"no"), 仅在确实知道为什么要转发的时候才需要设为"yes"。 此选项相当于设置 bond 模块的 all_slaves_active 属性。

MinLinks=

设置至少有几个 slave 连接已经激活,才能激活上层的 bond 连接。 此选项相当于设置 bond 模块的 min_links 属性。 默认值是零。

更多详情,参见 Linux Ethernet Bonding Driver HOWTO

例子

例 1. /etc/systemd/network/25-bridge.netdev

[NetDev]
Name=bridge0
Kind=bridge

例 2. /etc/systemd/network/25-vlan1.netdev

[Match]
Virtualization=no

[NetDev]
Name=vlan1
Kind=vlan

[VLAN]
Id=1

例 3. /etc/systemd/network/25-ipip.netdev

[NetDev]
Name=ipip-tun
Kind=ipip
MTUBytes=1480

[Tunnel]
Local=192.168.223.238
Remote=192.169.224.239
TTL=64

例 4. /etc/systemd/network/25-tap.netdev

[NetDev]
Name=tap-test
Kind=tap

[Tap]
MultiQueue=yes
PacketInfo=yes

例 5. /etc/systemd/network/25-sit.netdev

[NetDev]
Name=sit-tun
Kind=sit
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
Remote=10.65.223.239

例 6. /etc/systemd/network/25-gre.netdev

[NetDev]
Name=gre-tun
Kind=gre
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
Remote=10.65.223.239

例 7. /etc/systemd/network/25-vti.netdev

[NetDev]
Name=vti-tun
Kind=vti
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
Remote=10.65.223.239

例 8. /etc/systemd/network/25-veth.netdev

[NetDev]
Name=veth-test
Kind=veth

[Peer]
Name=veth-peer

例 9. /etc/systemd/network/25-bond.netdev

[NetDev]
Name=bond1
Kind=bond

[Bond]
Mode=802.3ad
TransmitHashPolicy=layer3+4
MIIMonitorSec=1s
LACPTransmitRate=fast

例 10. /etc/systemd/network/25-dummy.netdev

[NetDev]
Name=dummy-test
Kind=dummy
MACAddress=12:34:56:78:9a:bc

例 11. /etc/systemd/network/25-vrf.netdev

创建一个 Table=42 的 VRF 接口

[NetDev]
Name=vrf-test
Kind=vrf

[VRF]
Table=42

例 12. /etc/systemd/network/25-macvtap.netdev

创建一个 MacVTap 设备

[NetDev]
Name=macvtap-test
Kind=macvtap
      

参见

systemd(1), systemd-networkd.service(8), systemd.link(5), systemd.network(5)