gpt4 book ai didi

IPv6地址分配

转载 作者:行者123 更新时间:2023-12-02 02:47:05 25 4
gpt4 key购买 nike

我刚刚开始使用IPv6,因此在最近的几天里,我已经做了大量的阅读工作。不幸的是,我的一些问题尚未在我的研究中得到回答。

我的目标是跟踪分配了哪些地址以及分配给它们的接口(interface)。根据我的阅读,接口(interface)可以通过多种方式获取IPv6地址,下面在子节中列出了这些方法。我重点介绍了到目前为止所发现的内容,并在这些部分中提出了一些问题。如果有人可以对我所学的内容进行更正,或者对问题有答案,请这样做。如果有人知道我可以找到更多的信息,那么我不介意自己进行更多的研究。

编辑:我发现前缀委派实际上并不会导致地址分配。 DHCP服务器使用它从另一个DHCP服务器获取要使用的前缀。

获取IPv6地址的方法有:

  • StateLess地址自动配置(SLAAC)
  • 有状态DHCPv6

  • 斯拉克

    SLAAC用于小型网络中,以为接口(interface)生成IPv6地址。它几乎不需要任何配置,并且基本上可以按以下方式工作:
  • 接口(interface)联机后,客户端将使用其接口(interface)ID地址和本地链接前缀(FE80::/10)生成本地本地IPv6地址。
  • 为了验证该地址是否唯一,邻居请求(NS)消息被发送到该地址。如果有答复,则该地址正在使用中,无法使用。自动配置已中止,应手动进行配置。 问题1a:这里真的没有退路吗?
  • 假设在超时时间段结束之前未收到任何答复,则假定该地址是唯一的,并将其分配为接口(interface)的本地链接地址。

    现在该节点可以连接到此链接上的所有其他节点
  • 节点等待接收路由器公告(RA),或向所有路由器的多播组发送路由器请求(RS)消息。当路由器接收到RS时,它将以RA进行响应。 RA将包含一个前缀。
  • 该节点将生成带有前缀及其接口(interface)ID的全局单播地址。
  • 与创建本地链接地址时类似,该节点将向该地址发送一条消息,以确定其是否唯一。 问题2:这也是NS消息吗? 如果有答复,则说明该地址已在使用中,必须手动进行地址分配。 问题1b:再次,有没有自动的恢复方法?
  • 假设在超时时间内没有答复,则将该地址分配为接口(interface)的全局IPv6地址。

  • 问题3:接口(interface)可以有多个地址。实际上,在上述过程结束时,单个接口(interface)将具有2个地址-本地链接地址和全局单播地址。是否可以使用SLAAC获得此接口(interface)的其他地址?还是必须使用其他方法(例如DHCPv6)?

    有状态DHCPv6

    节点可以使用上面的步骤1-3获取链路本地地址。我相信这是可选的,它可以简单地在DHCP请求中使用 ::/128(未指定)作为其源地址,直到为其分配地址为止。

    有两种获取地址的方法-正常和快速提交。普通是4消息交换( SolicitAdvertiseRequestReply),而Rapid是2消息交换( SolicitReply)。当客户端在 Rapid-Commit消息中使用 Solicit选项请求快速提交时,便会完成快速提交。它本质上与Normal相同,并且由于它对我的用法没有影响,因此我暂时将其忽略。

    同样,消息可能通过中继代理。从中继发送到服务器的消息是 RELAY_FORW消息,从服务器发送到中继的消息是 RELAY_REPL消息。客户端和服务器之间的实际对话框全部封装在 OPTION_RELAY_MSG选项中。对于以下内容,我仅处理非中继消息。如果转发了一条消息,则很容易使原始消息变得tian废,并且随后的消息仍然有效。

    地址分配如下:
  • 客户端将Solicit消息发送到“所有DHCP服务器和中继”多播地址。此消息的目的是在本地链接上发现DHCP服务器的身份。
  • DHCP服务器以Advertise消息响应本地多播地址。
  • 客户端将Request消息直接发送到DHCP服务器,该消息带有指示其希望具有IP地址的选项。 问题4:在我所看到的PCAP文件中,看来此消息仍发送到多播地址ff02::1:2。是否没有将其直接发送到接收到广告的DHCP服务器的任何原因?
  • DHCP服务器使用包含IP地址的Reply进行响应。
  • 客户端应执行类似于SLAAC方法中的步骤6的重复地址检测。
  • 节点将此地址分配给接口(interface),并可以开始使用它。

  • 这是分配地址的通用方法,但更具体地说,可以通过3种方式完成此操作:
  • 非临时地址分配(IA_NA)
  • 临时地址分配(IA_TA)
  • 前缀委派(PD)

  • 这三种方法都是通过在 Request中包含一个选项来完成的,然后由服务器填充并在 Reply中返回。对于前两个,将返回完整的IPv6地址,然后可以将其分配为接口(interface)的IP地址。对于第三个,将返回类似于SLAAC方法中的 RA的前缀。然后将此前缀与接口(interface)标识符一起使用,以创建完整的全局IPv6地址。

    问题5:在我的pcap捕获中,我看到SolicitAdvertise也经常包含这些选项。这在非快速情况下似乎是多余的,因为Request和后续的Reply也必须包含该选项。在Solicit中包含此选项的目的是什么? DHCP服务器在使用Advertise之前在Request中创建IP地址(或前缀)的目的是什么?

    问题6:RFC指示可以包含IA_NA(或IA_TA)选项的多个实例。我认为这意味着该接口(interface)将具有多个地址。客户端是否只是在Request中包含选项的多个实例以获取多个地址?如果DHCP服务器可以提供一些但不是全部地址,会发生什么情况?整个Reply是否表示失败?还是给出一些地址?

    发布地址

    对于DHCPv6,可以将使用中的地址与 Release消息一起释放。客户端可以使用 Reply消息拒绝服务器在 Decline中分配的地址,而不使用该地址。

    如果客户端无法发送 ReleaseDecline,则服务器将继续保留该客户端的地址,直到过期为止。

    问题7:如果客户端无法发送Release(或Decline)并重新启动,它将启动一个新的DHCP请求。 DHCP服务器会退还旧地址吗?还是假设这是一个请求额外的IP地址并分配一个新的IP地址?

    我不确定如何释放由SLAAC或DHCP PD创建的地址。也许这些地址的释放仅在内部完成,而无需外部设备知道该事件。

    正如我在开始时所说,我的目标是跟踪当前有效的所有地址分配。我的计划是执行以下操作:
  • 创建一个按地址索引的 map ,该 map 存储为其分配了客户端(DUID)的地址。
  • 在收到带有ReplyRequestConfirmRenewRebindSolicit的DHCPv6 Rapid-Commit时,请执行以下操作:
  • 提取Client-DUID选项
  • 对于每个IA_NAIA_TA
  • 为每个IA设置map[address]=Client-DUID
  • 存储地址
  • 的到期时间
  • 在收到DeclineReplyRelease时,请执行以下操作
  • 对于每个IA_NAIA_TA
  • 对于每个IA,设置为remove map[address]
  • 地址过期后,将从 map 中删除。

  • 问题8:如何检测SLAAC生成的地址或DHCP PD地址?消息中是否可以使用某些字段来重新生成完整的IP地址?我已经有了前缀,但是接口(interface)ID是未知的。

    这足以维护分配给客户端的IP地址列表吗?

    最佳答案

    好的-我已经做了更多的研究,现在我已经掌握了大多数答案。

    首先,进行更正。无法使用DHCP通过PD获得地址。这就是DHCP服务器获取网络前缀以用于其托管的DHCP客户端的方式。还有另一个DHCP服务器负责处理这些前缀。因此,可以忽略PD作为获取IP地址的方法。

    问题1a/b:这里真的没有退缩吗?

    答:没有自动回退机制。可以实现,但可以自定义。

    问题2:这也是NS消息吗?

    答:可以

    问题3:接口(interface)可以有多个地址。实际上,在上述过程结束时,单个接口(interface)将具有2个地址-本地链接地址和全局单播地址。是否可以使用SLAAC获得此接口(interface)的其他地址?还是必须使用其他方法(例如DHCPv6)?

    答:SLAAC可以生成多个地址。客户端可以使用来自多个路由器的路由器通告,并且每个路由器可以通告多个前缀。主机可以使用每个前缀来创建全局单播地址。

    问题8(已修改):如何检测SLAAC生成的地址?消息中是否可以使用某些字段来重新生成完整的IP地址?我已经有了前缀,但是接口(interface)ID是未知的。

    答:检测到它们的唯一方法是监听NS消息。由于这些消息是可选的,因此无法保证检测SLAAC生成的地址的方法。

    我仍然没有问题4-7的答案,但目前我不太在意它们。

    谢谢!!

    关于IPv6地址分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17953041/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com