我正在开始研究 IPv6,但在理解某些方面时遇到了一些困难。
让我们澄清一下我是否理解正确!单个主机可能有: - 单播全局地址 - 链接本地地址 然后它加入多播组,例如请求节点组,每个单播地址一个。
我的第一个问题是:如果主机需要发送数据包,它的源地址是哪个?链路本地地址还是全局地址?
现在,让我们转到 ARP。我读到 ARP 不再存在。如果我需要向与我处于同一链路上的主机发送数据包,我将使用邻居请求来获取其本地链路地址。首先...这是此过程的真正目标吗?获取本地链路地址?
然后...我假设 IPv6 数据包将被封装在以太网帧内...考虑到广播不再是一种选择并且我们不知道另一台主机的 MAC,它的目标地址是什么?
我读过,IPv6 数据包被发送到多播组“solicited-node”,其最后 24 位是从目标的地址获得的......但是如果目标的地址是我想要获得的,我该如何创建它?
希望您能帮助穿越这片迷雾:)提前致谢!
答案1
分配全局地址的常用协议取决于主机是否已拥有链路本地地址。因此在大多数情况下,链路本地是强制性的,而不是可选的。
一个主机的每个接口可以分配有多个本地地址和多个全局地址。
源 IP 必须位于数据包要发送到的目标地址的正确范围内。因此,发送到链路本地地址将使用链路本地源。发送到全局地址将使用全局源。如果数据包通过没有全局地址的接口发送到全局地址,主机可能会使用来自不同接口的全局地址。
ARP 不用于 IPv6。但在以太网上运行 IPv6 时,需要一种替代方法。那就是 ND,它或多或少只是封装在 ICMPv6 数据包中的 ARP。