systemd.network 中文手册

译者:金步国


版权声明

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

其他作品

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

联系方式

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


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

名称

systemd.network — 网络配置

大纲

network.network

描述

网络的配置操作实际由 systemd-networkd.service(8) 具体执行。

注意,Network文件必须以 .network 作为后缀名,否则将被忽略。 一旦与Network文件匹配的网卡出现,对应的Network文件就会立即生效。

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

注意,如果某个网络接口既没有配置静态IPv6地址、也没有启用DHCPv6或IPv6LL的话, 将会被视为禁用IPv6支持。同时,systemd 将会自动向 /proc/sys/net/ipv6/conf/ifname/disable_ipv6 中写入"1",以彻底禁用此接口上的IPv6支持。

[Match] 小节选项

Network文件中的 "[Match]" 小节决定了应该匹配哪个网卡, 而 "[Network]" 小节则决定了应该怎样配置匹配到的网卡。 如果有多个Network文件匹配同一个网卡, 那么以第一个匹配的Network文件为准(按Network文件名的字典顺序)。

如果 "[Match]" 小节为空 或者其中的每一项都与某个网卡匹配,那么视为该Network文件与该网卡匹配。 所有可用于匹配的选项如下:

MACAddress=

匹配网卡的物理地址(以冒号与16进制数表示的MAC地址)。 例如 01:23:45:67:89:ab

Path=

匹配网卡的 "ID_PATH" 属性值(网卡的总线路径)。 接收一个空格分隔的匹配模式列表(使用shell风格的通配符)。

Driver=

匹配网卡的 "DRIVER" 属性值(网卡的驱动名称)。 接收一个空格分隔的匹配模式列表(使用shell风格的通配符)。 注意,如果网卡的 "DRIVER" 属性不存在, 那么将使用 "ethtool -i" 命令中输出的驱动名称。

Type=

匹配网卡的 "DEVTYPE" 属性值(网卡的设备类型)。 接收一个空格分隔的匹配模式列表(使用shell风格的通配符)。

Name=

匹配网卡的 "INTERFACE" 属性值(网卡的内核名称)。 接收一个空格分隔的匹配模式列表(使用shell风格的通配符)。

Host=

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

Virtualization=

检查是否运行于特定的虚拟环境中, 参见 systemd.unit(5) 中的 "ConditionVirtualization=" 选项。

KernelCommandLine=

检查是否设置了(或者以"!"开头表示未设置)特定的内核引导选项, 参见 systemd.unit(5) 中的 "ConditionKernelCommandLine=" 选项。

Architecture=

检查是否运行于特定的硬件平台, 参见 systemd.unit(5) 中的 "ConditionArchitecture=" 选项。

[Link] 小节选项

可在 "[Link]" 小节中使用如下选项对网卡进行设置:

MACAddress=

设置网卡的物理地址(MAC地址)

MTUBytes=

设置网卡的最大传输单元(MTU)。 可以使用以1024为基准的 K, M, G 后缀。

注意,如果为网卡开启了IPv6支持, 那么设置任何小于 1280 的值都将被自动修正为 1280(IPv6的MTU最小值)。

[Network] 小节选项

可在 "[Network]" 小节中使用如下选项对网卡进行设置:

Description=

对网卡的描述

DHCP=

DHCPv4/DHCPv6 客户端支持。可以设为 "yes", "no", "ipv4", "ipv6" 之一。

注意,当 "IPv6AcceptRA=yes" 时(见下文), 无论此选项如何设置,DHCPv6 都将被无条件的启用。 若明确开启了 DHCPv6 支持, 那么无论在此连接上是否存在路由器、也无论路由器传递了什么样的标记(flag), 都会无条件的启动 DHCPv6 客户端。

注意,默认情况下, DHCP服务器分配的域名并不用于名字解析。 参见下面的 UseDomains= 选项。

参见下面的 "[DHCP]" 小节, 以了解更多DHCP客户端配置选项。

DHCPServer=

DHCPv4 服务器支持。 默认值为 "no" 。 进一步的设置参见下面的 "[DHCPServer]" 小节。

LinkLocalAddressing=

链路本地地址自动配置。可设为 "yes", "no", "ipv4", "ipv6" 之一。 默认值为 "ipv6"

IPv4LLRoute=

为 non-IPv4LL 主机与 IPv4LL-only 主机之间的通信提供路由支持。默认值是 no 。 [译者注]"IPv4LL"(IPv4 Link-Local)又称为"ZEROCONF", 可用于在没有DHCP服务器的网络中自动配置IP地址。

IPv6Token=

一个前64位为空的IPv6地址。 用于设置该连接的 SLAAC IPv6 地址的64位接口部分。 注意,该值仅用于 SLAAC 而不是用于 DHCPv6 (即使 IPv6 Router Advertisement 明确要求 DHCP)。 默认值为自动生成。

LLMNR=

默认值 yes 表示支持 本地链路多播名称解析(Link-Local Multicast Name Resolution),而 no 则表示关闭。 也可以设为 "resolve" 表示仅支持解析,但不支持主机注册与宣布。 systemd-resolved.service(8) 会读取此选项的值。 [译者注]"LLMNR"(mDNS)可用于在没有DNS的局域网内自动发现(通过组播)本地网段上的主机。

MulticastDNS=

设为 yes 表示支持 组播DNS(Multicast DNS),而默认值 no 则表示关闭。 也可以设为 "resolve" 表示仅支持解析,但不支持主机或服务注册与宣布。 systemd-resolved.service(8) 会读取此选项的值。 [译者注]"mDNS"(multicast DNS)可用于在没有DNS的局域网内自动发现(通过组播)本地网段上的主机/服务(例如FTP)。

DNSSEC=

设为 yes 表示支持 DNSSEC , 而默认值 no 则表示关闭。 也可以设为 "allow-downgrade" 表示允许降级到普通的DNS协议, 以兼容不具备DNSSEC的网络环境。 systemd-resolved.service(8) 会读取此选项的值。 此选项实际上是针对每个网口覆盖了 resolved.conf(5) 中的全局 DNSSEC= 设置。

DNSSECNegativeTrustAnchors=

可设为一个空格分隔的域名列表。 当通过该网口的DNS服务器查询列表中的域名(含子域名)时, 无需验证应答的正确性。 常用于禁用某些私有域名的DNSSEC验证。 因为这些私有域名无法在互联网DNS服务器上进行验证。 默认值为空。 systemd-resolved.service(8) 会读取此选项的值。

LLDP=

LLDP是一个二层协议,使得接入网络的一台设备可以将其主要的能力、管理地址、设备标识、接口标识等信息 发送给接入同一个局域网的其他设备。通常只有专业的路由器才会支持LLDP协议。 若设为 yes 则表示接收所有以太网LLDP(链路层发现协议)包,并且维护一个记录了所有LLDP邻居的数据库。 而 no 则表示彻底禁用LLDP支持。 默认值 "routers-only" 表示仅收集各种路由器LLDP数据, 而忽略所有其他设备的LLDP数据(例如"电话"之类)。 可以用 networkctl(1) 查询所有收集到的邻居数据。LLDP仅可用于以太网。 下面的 EmitLLDP= 可用于接收本机发出的LLDP包。

EmitLLDP=

Controls support for Ethernet LLDP packet emission. Accepts a boolean parameter or the special values "nearest-bridge", "non-tpmr-bridge" and "customer-bridge". Defaults to no, which turns off LLDP packet emission. If not no, a short LLDP packet with information about the local system is sent out in regular intervals on the link. The LLDP packet will contain information about the local host name, the local machine ID (as stored in machine-id(5)) and the local interface name, as well as the pretty hostname of the system (as set in machine-info(5)). LLDP emission is only available on Ethernet links. Note that this setting passes data suitable for identification of host to the network and should thus not be enabled on untrusted networks, where such identification data should not be made available. Use this option to permit other systems to identify on which interfaces they are connected to this system. The three special values control propagation of the LLDP packets. The "nearest-bridge" setting permits propagation only to the nearest connected bridge, "non-tpmr-bridge" permits propagation across Two-Port MAC Relays, but not any other bridges, and "customer-bridge" permits propagation until a customer bridge is reached. For details about these concepts, see IEEE 802.1AB-2009. Note that configuring this setting to yes is equivalent to "nearest-bridge", the recommended and most restricted level of propagation. See LLDP= above for an option to enable LLDP reception.

BindCarrier=

可设为一个网口列表,用于控制当前网口的行为: (1)当列表中的所有网口都处于停用状态(down)的时候,该网口也会被停用。 (2)当列表中的某个网口被启用的时候,该网口也会被启用。

Address=

一个符合 inet_pton(3) 格式的 静态IPv4或IPv6地址及掩码位数(用 "/" 字符分隔)。 当 [Address] 小节(见下文)中只含有 Address= 时, 此选项相当于是 [Address] 小节的速记。 可以多次使用此选项以指定多个IP地址。

如果设置的地址是"0.0.0.0"(IPv4)或"[::]"(IPv6), 那么将首先检查所有当前已配置的网络接口以及所有网络配置文件, 然后按照所需地址段的大小, 自动从系统的可用地址池中分配一个新地址段, 并确保不发生任何地址段冲突。 系统默认的IPv4可用地址池如下: 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 ; 系统默认的IPv6可用地址池如下:fc00::/7 。 此选项主要用于管理大量动态创建的、 拥有相同网络配置的、需要自动分配地址段的网络接口。

Gateway=

一个符合 inet_pton(3) 格式的网关地址。可以多次使用此选项以指定多个网关。 当 [Route] 小节(见下文)中只含有 Gateway= 时,此选项相当于是 [Route] 小节的速记。

DNS=

一个符合 inet_pton(3) 格式的DNS服务器地址。可以多次使用此选项以指定多个DNS服务器。 systemd-resolved.service(8) 会读取此选项的值。

Domains=

此连接的域名(可用于DNS主机名解析)。接受一个DNS域名列表, 在将单标签域名(不含"."的主机名)扩展为FQDN(全限定域名)时,用作搜索后缀。 当在此连接上解析一个单标签域名时, 列表中的每一个域名都将被依次添加为后缀,以拼接成一个可用于解析的全限定域名, 直到某一个能够被解析成功为止。

这里设置的域名还可以用于路由DNS查询请求: 对于那些后缀位于此列表中的主机名的DNS查询请求, 将会被优先路由到为此连接设置的DNS服务器上去。 如果给域名加上 "~" 前缀,那么表示此域名是一个"路由专用域名", 也就是纯粹的仅用于路由DNS查询请求,而不用作域名搜索后缀。 特殊值 "~." 表示将所有DNS查询请求优先路由到为此连接设置的DNS服务器上去 (前面的波浪号表示这是一个"路由专用域名",后面的点表示DNS根域名(也就是所有域名的后缀))。 利用"路由专用域名"的灵活性,可以方便的兼容拥有多个连接并且在每个连接上都有特定的私有DNS区域的网络环境。

systemd-resolved.service(8) 会读取此选项的值。

NTP=

一个时间服务器(NTP)地址。可以多次使用此选项以指定多个对时服务器。 systemd-timesyncd.service(8) 会读取此选项的值。

IPForward=

控制IP转发功能(将一个网口进入的IP包根据路由表转发到另一个网口): 默认值 "no" 表示关闭转发功能; "yes" 表示开启转发功能; "ipv4" 表示仅开启IPv4转发; "ipv6" 表示仅开启IPv6转发; 此选项实际上是设置了 net.ipv4.ip_forward, net.ipv6.conf.all.forwarding 两个 sysctl 项的值。

注意:只有默认值 "no" 是局部设置,其他三个值都是全局设置。 具体的含义是指: 即使只有一个网络接口开启了IP转发功能("yes" 或 "ipv4" 或 "ipv6"),也表示在全局开启IP转发功能, 而且即便随后再明确的将此选项设为 "no" 也无济于事,IP转发功能依然会在全局范围内保持开启。 换句话说,IP转发功能一旦开启便是全局开启,并且不允许随后再关闭,即使针对单个网络接口关闭也不行。

如果只想在两个特定的网络接口之间进行转发,请勿使用此选项, 而是应该使用防火墙规则(iptables)。

IPMasquerade=

若设为 "yes" 则开启IP地址伪装功能。 它与SNAT(源地址转换技术)的不同之处在于能够自动获取连接的当前ip地址来做转换。 若设为 "yes" 则隐含了 IPForward=ipv4 设置。 默认值是 "no"

IPv6PrivacyExtensions=

配置IPv6无状态临时地址(RFC 4941) 与IPv6隐私扩展。 若设为 "yes" 则表示开启IPv6隐私扩展并使用临时的私有地址取代公共地址。 若设为 "prefer-public" 则表示开启IPv6隐私扩展(若失败则关闭IPv6隐私扩展), 但使用公共地址。 若设为 "kernel" 则表示不改变内核的现有设置。 默认值 "no" 表示彻底关闭。

IPv6AcceptRA=

是否在此连接上接收IPv6路由器通告消息(Router Advertisement)(IPv6的邻居发现协议的一部分)。 设为 yes 表示接收,设为 no 表示不接收(与本地转发的状态无关)。若未明确设置此选项,则使用内核的默认值: 当本地转发功能被禁用时,此选项的值为"yes"(接收路由器通告);当本地转发功能被开启时,此选项的值为"no"(不接收路由器通告)。 如果此选项的值为"yes"(接收路由器通告),那么 DHCPv6 客户端将在两种情况下被启动: (1)传递了相关标志(flag);(2)在此连接上未发现路由器。

若想进一步详细配置 IPv6 RA 支持,可以参见下面的 "[IPv6AcceptRA]" 小节。

参见内核的 ip-sysctl.txt 文档, 并阅读对 "accept_ra" 属性的解释,不过要注意的是将此选项设为 1 相当于 将 "accept_ra" 设为 2

IPv6DuplicateAddressDetection=

设置要发送的 IPv6 DAD(Duplicate Address Detection) 提示数量。此选项没有默认值。

IPv6HopLimit=

设置 IPv6 的"Hop Limit"(类似于 IPv4 TTL)值。 每经过一个路由器,该值都会减一,当减到零时,此包将被丢弃。 此选项没有默认值。

ProxyARP=

是否开启"代理ARP"(RFC1027)支持。 "代理ARP"就是通过一个主机(通常是路由器)来作为指定的设备对其他设备的ARP请求作出应答。 一般用于没有配置默认网关和路由策略的网络中。 此选项没有默认值。

Bridge=

将该连接添加到指定名称的Bridge(网桥)中

Bond=

将该连接添加到指定名称的Bond(多网卡绑定)中

VRF=

将该连接添加到指定名称的VRF(VPN路由与转发表)中

VLAN=

要在此连接上创建的VLAN(虚拟局域网)名称。 可以多次使用此选项。

MACVLAN=

要在此连接上创建的MACVLAN(基于MAC地址划分的虚拟局域网)名称。 可以多次使用此选项。

VXLAN=

要在此连接上创建的VXLAN(虚拟可扩展局域网)名称。 可以多次使用此选项。

Tunnel=

要在此连接上创建的Tunnel(隧道)名称。 可以多次使用此选项。

[Address] 小节选项

可以使用多个 "[Address]" 小节来配置多个IP地址。 可在 "[Address]" 小节中使用的选项如下:

Address=

含义与 "[Network]" 小节中同名选项相同。 这是一个必须设置的选项。

Peer=

一个用于点对点网络中的IP地址, 格式与 "Address" 相同。

Broadcast=

一个符合 inet_pton(3) 格式的广播地址,仅用于IPv4连接。 若未设置,则自动从 "Address" 中提取。

Label=

一个地址标签

PreferredLifetime=

设置IP地址的默认有效期。 默认值 "forever"/"infinity" 表示"永不过期",也就是本小节所设置的IP地址永远有效。 设为 "0" 表示本小节所设置的IP地址"立即过期", 除非被明确要求,否则不会被使用。 这种IP地址仅用于某些需要明确使用该地址的特殊应用程序。

[Route] 小节选项

可以使用多个 "[Route]" 小节来配置多个路由。 可在 "[Route]" 小节中使用的选项如下:

Gateway=

含义与 "[Network]" 中的同名选项相同。

Destination=

该路由的目的地址前缀,可以带有"/前缀长度"后缀, 如果省略了此后缀,则视为一个全长度的主机路由。

Source=

该路由的源地址前缀,可以带有"/前缀长度"后缀, 如果省略了此后缀,则视为一个全长度的主机路由。

Metric=

该路由的跃点数(一个正整数)

Scope=

该路由的适用范围: "global", "link", "host" 。 默认值为 "global"

PreferredSource=

该路由的首选源地址,必须符合 inet_pton(3) 格式。

Table=num

该路由表的标识符(可设为 1~4294967295 之间的整数, 0 表示不设置标识符)。 可以通过 ip route show table num 命令查看此路由表的内容。

[DHCP] 小节选项

"[DHCP]" 小节用于配置 DHCPv4/DHCP6 客户端。 仅在 [Network] 小节中的 DHCP= 选项已开启的情况下有意义。

UseDNS=

默认值 yes 表示 从DHCP服务器接收DNS服务器的设置, 同时无视任何本地的静态DNS配置。

这相当于 resolv.conf(5)nameserver 的作用。

UseNTP=

默认值 yes 表示 从DHCP服务器接收NTP服务器的设置(被 systemd-timesyncd 使用), 同时无视任何本地的静态NTP配置。

UseMTU=

若设为 yes 则表示 从DHCP服务器接收MTU(最大传输单元)的设置。 默认值是 no 。

SendHostname=

默认值 yes 表示 将本机的主机名(hostname)发送给DHCP服务器。

UseHostname=

默认值 yes 表示 将从DHCP服务器接收到的主机名(hostname)设置为系统的临时主机名。

Hostname=

如果设置了此值,那么将把此处设置的值作为主机名(hostname)发送给DHCP服务器, 而不是本机真实的主机名。

UseDomains=

可设为 yes, no, "route" 之一。 yes 表示将从DHCP服务器接收到的域名用于此连接的DNS搜索域。 在效果上与 Domains= 中不带 "~" 前缀的值类似。 "route" 表示仅将从DHCP服务器接收到的域名用于路由DNS查询(而不用于搜索), 在效果上与 Domains= 中带有 "~" 前缀的值类似。 默认值为 no 。

建议仅在可信任网络环境中才能将此选项设为 yes 。 因为它会影响到所有主机名的解析,特别是单标签域名(不含"."的主机名)的解析。 一般来说,仅设置"路由专用域名"而不设置"搜索域名"是安全的, 因为这样做不会影响到单标签域名(不含"."的主机名)的解析。

当设为 yes 时,此选项相当于 resolv.conf(5)domain 的作用。

UseRoutes=

默认值 yes 表示从DHCP服务器请求静态路由, 并将DHCP服务器返回的结果添加到本机的路由表中, 同时将跃点数设为 1024

UseTimezone=

若设为 yes 则表示将从DHCP服务器接收到的时区用作本机的时区。 默认值是 "no"

CriticalConnection=

若设为 yes 则表示 即使所获得的IP地址租约已经过期,也不归还,依然继续使用。 这种做法是与DHCP协议相违背的, 但在某些场合却是最佳的选择(例如根文件系统依赖于此连接)。 默认值为 no

ClientIdentifier=

使用什么样的 DHCPv4 客户端标识符: "mac" 表示连接的MAC地址; "duid"(默认值) 表示一个符合RFC4361规范的客户端ID

VendorClassIdentifier=

标识厂商类型与配置的厂商类标识符(DHCP Option 60), 这是一个DHCP可选项。

DUIDType=

为此连接设置一个专用的 DUIDType 以覆盖全局默认值。参见 networkd.conf(5) 以了解可用值。

DUIDRawData=

为此连接设置一个专用的 DUIDRawData 以覆盖全局默认值。参见 networkd.conf(5) 以了解可用值。

IAID=

为此连接设置一个 DHCP Identity Association Identifier (IAID) ,一个 32-bit 无符号整数。

RequestBroadcast=

要求DHCP服务器在完成配置IP地址之前使用广播消息。 对于不能接收原始包的网卡, 或者在配置IP地址之前不能接收任何包的网卡来说,必须开启此选项。 另一方面,对于广播包被屏蔽的网络来说,则必须关闭此选项。

RouteMetric=

指定由DHCP分配的路由的跃点数(一个正整数)。

[IPv6AcceptRA] 小节选项

"[IPv6AcceptRA]" 用于配置IPv6路由器通告(Router Advertisement)客户端。 仅在 [Network] 小节中的 IPv6AcceptRA= 选项已开启的情况下有意义。

UseDNS=

默认值 yes 表示从IPv6路由器通告消息中接收DNS服务器的设置, 同时无视任何本地的静态DNS配置。

这相当于 resolv.conf(5)nameserver 的作用。

UseDomains=

可设为 yes, no, "route" 之一。 yes 表示将从IPv6路由器通告消息中接收到的域名用于此连接的DNS搜索域。 在效果上与 Domains= 中不带 "~" 前缀的值类似。 "route" 表示仅将从IPv6路由器通告消息中接收到的域名用于路由DNS查询(而不用于搜索), 在效果上与 Domains= 中带有 "~" 前缀的值类似。 默认值为 no

建议仅在可信任网络环境中才能将此选项设为 yes 。 因为它会影响到所有主机名的解析,特别是单标签域名(不含"."的主机名)的解析。 一般来说,仅设置"路由专用域名"而不设置"搜索域名"是安全的, 因为这样做不会影响到单标签域名(不含"."的主机名)的解析。

当设为 yes 时,此选项相当于 resolv.conf(5)nameserver 的作用。

[DHCPServer] 小节选项

"[DHCPServer]" 小节用于配置 DHCPv4 服务端。 仅在 [Network] 小节中的 DHCPServer= 选项已开启的情况下有意义。

PoolOffset=, PoolSize=

配置可用于动态分配的IP地址池。 地址池必须与DHCP服务器的IP地址位于同一子网内, 并且不得包含子网地址与广播地址。 PoolOffset= 用于设置地址池的起点,用相对于子网起点的偏移量表示。 若设为"0"则表示使用默认值。 PoolSize= 用于设置地址池的长度(也就是包含的IP地址数量)。 若设为"0"则表示使用默认值。 默认情况下,地址池的起点位于子网地址之后的第一个地址, 终点位于广播地址前面的那个地址,也就是包含了全部的可分配地址。 如果地址池中正好包含了DHCP服务器自身的地址(默认情况就是这样)也没关系, 这个地址不会被分配给DHCP客户端。

DefaultLeaseTimeSec=, MaxLeaseTimeSec=

设置传递给DHCP客户端的 默认租期(默认"1h")与最大租期(默认"12h"), 可以使用 "min", "h", "days", "weeks", "months" 后缀。 默认租期用于客户端未指定租约时长的情况。 如果客户端指定的租约时长超过了此处设置的最大值, 那么将自动限制为此处设置的最大值。 如果租约经常变化, 那么应该设置较小的值; 反之,为了降低DHCP所占用的网络流量, 应该设置较大的值。

EmitDNS=, DNS=

设置是否要给DHCP客户端传递DNS服务器信息。 EmitDNS= 的默认值 "yes" 表示要传递。 而 DNS= 则用于设置一个 要传递的DNS服务器列表(以IPv4地址表示)。 如果 EmitDNS=yes 但同时并未设置 DNS= 的值, 那么将自动使用从"上级连接"中获得的DNS服务器列表。 所谓"上级连接"是指系统中优先级最高的默认路由。 注意: (1)不会从本机的 /etc/resolv.conf 中提取DNS服务器。 (2)并不通知DHCP客户端"上级连接"的DNS变化。 为了确保客户端能够及时知晓"上级连接"的DNS变化, 应该减小 MaxLeaseTimeSec= 的值。

EmitNTP=, NTP=

EmitDNS=DNS= 完全相同, 不同之处仅在于这两个选项针对的是NTP时间服务器。

EmitRouter=

EmitDNS= 完全相同, 不同之处仅在于这两个选项针对的是路由器。

EmitTimezone=, Timezone=

设置是否要给DHCP客户端传递时区信息。 EmitTimezone= 的默认值 "yes" 表示要传递。 而 Timezone= 则用于设置一个要传递的时区字符串, 例如 "Asia/Shanghai"(中华民国中原时区) 或 "UTC"(世界统一时间) 或 "PRC"(中华人民共和国)。 若未明确设置 Timezone= 的值, 那么将使用本机的时区,也就是 /etc/localtime 软连接。

[Bridge] 小节选项

可在 "[Bridge]" 小节中使用的选项如下:

UnicastFlood=

默认值 yes 表示网桥应该通过该端口转发 没有FDB项并且目标MAC地址未知的流量

HairPin=

若设为 yes 则表示网桥可以 将从该端口接收到的流量仍然通过该端口返还发送回去。 默认值为 no

UseBPDU=

默认值 yes 表示该端口将会处理 STP BPDU(Bridge Protocol Data Units)

FastLeave=

若设为 yes 则表示允许在该端口接收到"IGMP Leave"消息后立即停止此端口上多播, 仅用于与IGMP嗅探一起使用。 默认值为 no

AllowPortToBeRoot=

默认值 yes 表示允许该端口成为根端口(Root Port),也就是与根桥(Root Bridge)直接相连或路径最短的端口。 仅在网桥启用了STP(生成树协议)的情况下才有意义。

Cost=

设置该端口发送数据包的"cost"。 一个网桥上的不同端口可能有不同的速度, 速度越快的端口,其"cost"值也越低。 因此,"cost"值可用于决定使用哪个端口。

[BridgeFDB] 小节选项

"[BridgeFDB]" 小节 用于管理网桥端口的流量转发表。 可以通过设置多个 "[BridgeFDB]" 小节 来配置多个静态MAC表项。

MACAddress=

这是一个必须设置的选项, 含义与 "[Link]" 小节中的同名选项相同。

VLANId=

新的静态MAC表项的"VLAN ID"。 若未设置,则不添加任何"VLAN ID"信息。

[BridgeVLAN] 小节选项

"[BridgeVLAN]" 小节用于管理网桥端口的 VLAN ID 配置。 可以通过设置多个 "[BridgeVLAN]" 小节来配置多个 VLAN 项。 此小节仅在 systemd.netdev(5) 中 "[Bridge]" 小节下的 VLANFiltering= 选项被开启时才有意义。

VLAN=

可以设为一个单独的 ID 或 "M-N" 格式表示的ID范围。表示在此端口上启用的 VLAN ID 。 有效的 VLAN ID 范围是 1~4094 。

EgressUntagged=

可以设为一个单独的 ID 或 "M-N" 格式表示的ID范围。 The VLAN ID specified here will be used to untag frames on egress. Configuring EgressUntagged= implicates the use of VLAN= above and will enable the VLAN ID for ingress as well.

PVID=

The Port VLAN ID specified here is assigned to all untagged frames at ingress. PVID= can be used only once. Configuring PVID= implicates the use of VLAN= above and will enable the VLAN ID for ingress as well.

例子

例 1. /etc/systemd/network/50-static.network

[Match]
Name=enp2s0

[Network]
Address=192.168.0.15/24
Gateway=192.168.0.1

例 2. /etc/systemd/network/80-dhcp.network

[Match]
Name=en*

[Network]
DHCP=yes

例 3. /etc/systemd/network/25-bridge-static.network

[Match]
Name=bridge0

[Network]
Address=192.168.0.15/24
Gateway=192.168.0.1
DNS=192.168.0.1

例 4. /etc/systemd/network/25-bridge-slave-interface.network

[Match]
Name=enp2s0

[Network]
Bridge=bridge0

例 5. /etc/systemd/network/25-bridge-slave-interface-vlan.network

[Match]
Name=enp2s0

[Network]
Bridge=bridge0

[BridgeVLAN]
VLAN=1-32
PVID=42
EgressUntagged=42

[BridgeVLAN]
VLAN=100-200

[BridgeVLAN]
EgressUntagged=300-400

例 6. /etc/systemd/network/25-ipip.network

[Match]
Name=em1

[Network]
Tunnel=ipip-tun

例 7. /etc/systemd/network/25-sit.network

[Match]
Name=em1

[Network]
Tunnel=sit-tun

例 8. /etc/systemd/network/25-gre.network

[Match]
Name=em1

[Network]
Tunnel=gre-tun

例 9. /etc/systemd/network/25-vti.network

[Match]
Name=em1

[Network]
Tunnel=vti-tun

例 10. /etc/systemd/network/25-bond.network

[Match]
Name=bond1

[Network]
DHCP=yes

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

Add the bond1 interface to the VRF master interface vrf-test. This will redirect routes generated on this interface to be within the routing table defined during VRF creation. Traffic won't be redirected towards the VRFs routing table unless specific ip-rules are added.

[Match]
Name=bond1

[Network]
VRF=vrf-test

参见

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