![在networkd中,Network.DHCP、DHCPv6.WithoutRA和IPv6AcceptRA.DHCPv6Client之间的关系是什么?](https://linux22.com/image/209957/%E5%9C%A8networkd%E4%B8%AD%EF%BC%8CNetwork.DHCP%E3%80%81DHCPv6.WithoutRA%E5%92%8CIPv6AcceptRA.DHCPv6Client%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
这网络文档描述以下网络配置选项:
Network.DHCP
。可能的值yes
、ipv4
、ipv6
和no
。默认no
。
如果启用了接收,则默认情况下,无论此参数如何,DHCPv6 将由路由器通告触发。通过在此处显式启用 DHCPv6 支持,DHCPv6 客户端将以 [DHCPv6] 部分中 WithoutRA= 设置指定的模式启动,无论链路上是否存在路由器,或路由器传递什么标志。
DHCPv6.WithoutRA
。可能的值solicit
、information-request
和no
。默认no
。
允许 DHCPv6 客户端在没有路由器通告的“托管”或“其他配置”标志的情况下启动...默认为“否”,并且 DHCPv6 客户端将在收到 RA 时启动。
IPv6AcceptRA.DHCPv6Client
。可能的值always
、true
和false
。默认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.DHCP
、DHCPv6.WithoutRA
和之间到底有什么区别IPv6AcceptRA.DHCPv6Client
?他们如何互动?
答案1
Network.DHCP
并DHCPv6.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=yes
和WithoutRA=solicit
一起执行 DHCPv6 请求,而无需等待 RA 数据包。 (设置IPv6AcceptRA=no
忽略 RA,因此只有配置为不等待路由器通告时才能触发 DHCPv6。)
顺便说一句,我知道我在本说明中使用了“DNS 服务器信息”,但 DNS 只是可以通过 DHCPv6 返回的最常见的辅助信息类型。相同的消息可以包含其他信息(例如 NTP 服务器信息)来代替 DNS 服务器的地址或除了 DNS 服务器的地址之外。