链接本地地址能否用于传输网络而不破坏可路由性?

网络工程 路由 ip IPv6 IP地址 ip 链接本地
2022-02-08 15:06:20

我问这个是因为我的 ISP 使用 SLAAC/DHCPv6 为客户端分配地址。防火墙,无论是什么品牌/名称/类型,都可以获得一个链接本地 IPv6 地址和一个链接本地网关并且 Intranet 上的客户端实际上从 /64 块获得一个真正的全球 IPv6 地址——上游路由器实际上是在进行委派。

我不太清楚的是为什么链接本地地址?我知道,在进行 DHCP 委托时,路由器本身不需要地址,因此这些链接本地地址是否实际在使用中,或者它们只是像客户端在其他任何地方协商本地链接一样协商(即使没有部署 IPv6)。

链接本地地址/网络是否可以用作传输网络并且仍然可以路由到最后(只要主机地址是全局 IP 地址)?

在此处输入图像描述

2个回答

RFC 4291,IP 版本 6 寻址体系结构解释了链路本地寻址:

2.5.6 . 链路本地 IPv6 单播地址

链接本地地址用于单个链接。链接本地
地址具有以下格式:

|   10     |
|  bits    |         54 bits         |          64 bits           |
+----------+-------------------------+----------------------------+
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+

链路本地地址设计用于在
单个链路上寻址,用于自动地址配置、
邻居发现或不存在路由器时。

路由器不得将任何具有 Link-Local 源或
目标地址的数据包转发到其他链路。

IPv6 在每个接口上使用 Link-Local 寻址,并且它将使用 Link-Local 寻址在链路上进行通信。例如,IPv6 DHCP 与 IPv4 DHCP 不同,它使用链路本地寻址作为源地址。此外,所需的 DAD(重复地址检测)使用链路本地寻址,就像 NDP(邻居发现协议)一样,包括 RA(路由器广告)。

正如上面的 RFC 所解释的,您不能将任何具有链路本地源或目标地址的数据包发送到不同的链路,因此,不,它们不是可路由的地址。


RFC 7404,在 IPv6 网络中仅使用链路本地地址 解释了在路由器之间仅使用链路本地地址:

抽象的

在 IPv6 网络中,可以在路由器之间的基础设施链路上仅使用链路本地地址。本文档讨论了这种方法的优点和缺点,以促进给定网络的决策过程。

一个很大的缺点是,只有链路本地地址的路由器接口无法从路由器外部访问,这可能是故障排除时的问题。

是的,链接本地地址可以并且经常用作网关地址。

网关地址的用途取决于底层网络类型。在某些网络类型(通常是点对点网络)上,网关地址被忽略,在其他网络类型(通常是多点网络)上,网关地址被解析为 L2 地址,以允许将数据包发送到正确的 L2 目的地。无论哪种方式,网关地址都没有理由必须是可路由地址。

链路本地地址也非常适合路由通告和 DHCPv6 前缀委托等自动配置机制。

路由器应该至少有一个全局地址,以便它们可以获取 ICMP 错误,但它们不需要为每个接口都有一个全局地址。在家庭/小型企业网关路由器的情况下,仅在“LAN 端”有一个全局地址就足够了。