在networkd中,Network.DHCP、DHCPv6.WithoutRA和IPv6AcceptRA.DHCPv6Client之间的关系是什么?

在networkd中,Network.DHCP、DHCPv6.WithoutRA和IPv6AcceptRA.DHCPv6Client之间的关系是什么?

网络文档描述以下网络配置选项:

Network.DHCP。可能的值yesipv4ipv6no。默认no

如果启用了接收,则默认情况下,无论此参数如何,DHCPv6 将由路由器通告触发。通过在此处显式启用 DHCPv6 支持,DHCPv6 客户端将以 [DHCPv6] 部分中 WithoutRA= 设置指定的模式启动,无论链路上是否存在路由器,或路由器传递什么标志。

DHCPv6.WithoutRA。可能的值solicitinformation-requestno。默认no

允许 DHCPv6 客户端在没有路由器通告的“托管”或“其他配置”标志的情况下启动...默认为“否”,并且 DHCPv6 客户端将在收到 RA 时启动。

IPv6AcceptRA.DHCPv6Client。可能的值alwaystruefalse。默认true

如果为 true,则如果 RA 具有“托管”标志,则 DHCPv6 客户端将以“请求”模式启动;如果 RA 缺少“托管”标志但具有“其他配置”标志,则 DHCPv6 客户端将以“信息请求”模式启动。如果设置为“始终”,则当收到 RA 时,DHCPv6 客户端将以“请求”模式启动,即使 RA 中既未设置“托管”标志也未设置“其他配置”标志。当启用 [DHCPv6] 部分中的 WithoutRA= 时,这将被忽略

它还给出了以下示例:

[Match]
Name=enp1s0

[Network]
DHCP=ipv6

# The below setting is optional, to also assign an address in the delegated prefix
# to the upstream interface. If not necessary, then comment out the line below and
# the [DHCPPrefixDelegation] section.
DHCPPrefixDelegation=yes

# If the upstream network provides Router Advertisement with Managed bit set,
# then comment out the line below and WithoutRA= setting in the [DHCPv6] section.
IPv6AcceptRA=no

[DHCPv6]
WithoutRA=solicit

[DHCPPrefixDelegation]
UplinkInterface=:self
SubnetId=0
Announce=no

Network.DHCPDHCPv6.WithoutRA和之间到底有什么区别IPv6AcceptRA.DHCPv6Client?他们如何互动?

答案1

Network.DHCPDHCPv6.WithoutRA一起回答问题在启动 DHCPv6 之前我们是否等待 RA 数据包?

DHCPv6.WithoutRA也回答了问题如果我们不等待 RA,我们会做什么类型的 DHCPv6 请求?

IPv6AcceptRA.DHCPv6Client回答相关问题如果我们确实等待 RA,我们会执行什么样的 DHCPv6 请求?

重要的是要了解路由器通告 (RA) 有两个旗帜

  • 管理:告诉客户端从 DHCPv6 获取 IP 地址,而不是使用 SLAAC。

  • 其他配置:告诉客户端使用 SLAAC,但仍从 DHCPv6 获取 DNS 服务器信息。

DHCPv6 有两个模式

  • 征求:获取IP地址和DNS服务器信息。

  • 信息请求:仅获取DNS服务器信息。

默认情况下,管理标志触发器征集模式,以及其他配置标志触发器信息请求模式。但是,存在上述选项来修改此行为。例如,设置DHCPv6Client=always等待 RA 数据包,但会覆盖 DHCPv6 请求的类型以进行响应。设置DHCP=yesWithoutRA=solicit一起执行 DHCPv6 请求,而无需等待 RA 数据包。 (设置IPv6AcceptRA=no忽略 RA,因此只有配置为不等待路由器通告时才能触发 DHCPv6。)

顺便说一句,我知道我在本说明中使用了“DNS 服务器信息”,但 DNS 只是可以通过 DHCPv6 返回的最常见的辅助信息类型。相同的消息可以包含其他信息(例如 NTP 服务器信息)来代替 DNS 服务器的地址或除了 DNS 服务器的地址之外。

相关内容