IPv6 link-local 地址的功能和原理


转:https://blog.51cto.com/u_361531/630193

本地链路地址:link-local address

当在一个节点启用IPV6,启动时节点的每个接口自动生成一个link-local address

其前缀64位为标准指定的,其后64位按EUI-64格式来构造

注意:在本链路上,路由表中看到的下一跳都是对端的Link Local地址,不是公网IP地址

前缀:FE80::/10

范围:只能在本地链路使用,不能在子网间路由

link-local是如何组成的?

关于link-local的组成,我查阅了网上写的一些资料,很多都是一个版本,都没有写前面正数第七位要置反位,字节是FE80+ 后64位为EUI-64,得出来的结果是错误的。下面是我根据一些设备提供商验证出来的,最后在cisco的官网也有相关描述。这里我特意整理一个图例,让大家更好的理解这个link-local是如何组成的.

为何需要link-local?

--在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。

所以出现Link Local地址唯一标识一个节点。在本地链路看到下一跳都是对端的Link Local地址。

在网络重新编址过程中,节点和路由器的Link Local地址不会发生变化,可以很容易地做一个修改,不用担心网络不可达。

R1(config-if)#ipv6 address FE80:0:0:0:0123:0456:0789:0abc link-local 手工指定link-local地址

那么下面我做了一个小实验来验证路由表中是否是吓一跳都是link-local的地址:

拓扑图:(每一个地址都已经标识出来了)

这里每个接口的IP地址和每个接口的link local都已经标识出来了。

然后在R3(最右边的路由器)上面,我配置了两个loopback, 0 and 1.

整个网络用ospf v3进行路由同步。

最后我们来验证前面说的是不是路由表里面每个条目的下一跳都是link-local地址.

在R1上面.

 这里可以看到,在R1上面show ip route 2025::1 and 2026::1. 下一跳是R2的f0/0的link local地址。

也就是说这里R2的interface f0/0作为R1到达2025::1和2026::1的唯一吓一跳了。而不是接口的IP 2012::2做为下一跳。

在R2上面:show ip route 2025::1 and show ipv6 route 2026::1可以推测出来,下一条应该是R3的interface f0/0的link-local地址:FE80::C802:11FF:FE2C:0

为方便起见,一般我觉得应该手动配置link-local地址,以免出现地址规划等等一系列问题。

手动配置link-local是为了更好的管理和规划网络.