简介
本文档介绍 IPv6 链路本地地址在网络中的工作原理。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文所述的内容基于运行 Cisco IOS® 软件版本 12.4(15)T1 的思科 3700 系列路由器。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
规则
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
背景信息
链路本地地址是 IPv6 单播地址,可使用链路本地前缀 FE80::/10 (1111 1110 10) 以及采用已修改的 EUI-64 格式的接口标识符,在任意接口上进行自动配置。链路本地地址不一定会绑定到 MAC 地址(配置为 EUI-64 格式)。此外,也可以使用 ipv6 address link-local 命令以 FE80::/10 格式手动配置链路本地地址。
这些地址仅指向特定物理链路,并用于单个链路上的地址,以实现自动地址配置和邻居发现协议等目的。链路本地地址可用于访问连接到同一链路的相邻节点。这些节点不需要具有全局唯一地址进行通信。路由器不会使用链路本地地址转发数据报。IPv6 路由器不得将具有链路本地源地址或目的地址的数据包转发到其他链路。所有支持 IPv6 的接口都具有一个链路本地单播地址。
配置
在此示例中,路由器 R1、R2 和 R3 通过串行接口连接,并配置有网络图中所示的 IPv6 地址。在路由器 R1 和 R3 上配置了环回地址,并且路由器使用 OSPFv3 相互通信。此示例使用 ping 命令演示使用链路本地地址在路由器之间进行连接。路由器 R1 和 R3 可以使用 IPv6 本地单播地址相互 ping 通,但无法使用其链路本地地址相互 ping 通。但路由器 R2 直接连接到 R1 和 R3,因此它可以借助对应的链路本地地址与这两台路由器通信,因为链路本地地址仅在特定于物理接口的本地网络中使用。
网络图
本文档使用以下网络设置:
使用的配置
本文档使用以下配置:
以下视频演示了 Cisco IOS 路由器中 IPv6 链路本地地址和全局单播地址之间的主要区别:
路由器 R1 |
hostname R1
!
ipv6 cef
!
ipv6 unicast-routing
!
interface Loopback10
no ip address
ipv6 address FD10::/64 eui-64
!--- Assigned a IPv6 unicast address in EUI-64 format.
ipv6 ospf 1 area 1
!--- Enables OSPFv3 on the interface and associates the interface looback10 to area 1.
!
interface Loopback20
no ip address
ipv6 address FD20::/64 eui-64
ipv6 ospf 1 area 2
!--- Associates the Interface loopback20 to area 2.
!
interface Serial0/0
no ip address
ipv6 address 2001::1/124
ipv6 ospf 1 area 0
!--- Associates the Interface serial0/0 to area 0.
clock rate 2000000
!
ipv6 router ospf 1
router-id 10.1.1.1
!--- Router R1 uses 10.1.1.1 as router id.
log-adjacency-changes
!
end |
路由器 R2 |
路由器 R3 |
hostname R2
!
ipv6 cef
!
ipv6 unicast-routing
!
!
!
interface Serial0/0
no ip address
ipv6 address 2001::2/124
ipv6 ospf 1 area 0
clock rate 2000000
!
!
interface Serial0/1
no ip address
ipv6 address 2002::1/124
ipv6 ospf 1 area 0
clock rate 2000000
!
!
!
ipv6 router ospf 1
router-id 10.2.2.2
log-adjacency-changes
!
end |
hostname R3
!
ipv6 cef
!
ipv6 unicast-routing
!
interface Loopback10
no ip address
ipv6 address FD01::/64 eui-64
ipv6 ospf 1 area 1
!
interface Loopback20
no ip address
ipv6 address FD20::/64 eui-64
ipv6 ospf 1 area 2
!
interface Serial0/0
no ip address
ipv6 address FE80::AB8 link-local
ipv6 address 2002::2/124
ipv6 ospf 1 area 0
clock rate 2000000
!
ipv6 router ospf 1
router-id 10.3.3.3
log-adjacency-changes
!
end
|
确认
验证 OSPF 配置
要验证是否已正确配置 OSPF,请在 show ipv6 route ospf
命令。
show ipv6 route ospf |
路由器 R1 R1#show ipv6 route ospf
IPv6 Routing Table - 10 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
U - Per-user Static route, M - MIPv6
I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
D - EIGRP, EX - EIGRP external
OI FD01::C002:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0
O 2002::/124 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0
OI FD20::C002:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0 路由器 R3 R3#show ipv6 route ospf
IPv6 Routing Table - 10 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
U - Per-user Static route, M - MIPv6
I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
D - EIGRP, EX - EIGRP external
O 2001::/124 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0
OI FD10::C000:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0
OI FD20::C000:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0 |
验证链路本地地址可访问性
各路由器可以使用全局单播地址相互 ping 通。如果路由器只使用链路本地地址,则直连网络可以通信。例如,R1 可以使用全局单播地址 ping 通 R3,但这两台路由器无法使用链路本地地址进行通信。这可通过在路由器 R1 和 R3 中使用 ping 和 debug ipv6 icmp 命令展示出来。
从远程网络对链路本地地址执行 ping 操作
当路由器 R1 尝试使用链路本地地址与路由器 R3 通信时,路由器 R1 返回一条 ICMP 超时消息,指示链路本地地址是专用于本地的地址,无法与直连网络之外的链路本地地址通信。
从路由器 R1 对 R3 的链路本地地址执行 ping 操作 |
在路由器 R1 中 R1#ping FE80::AB8
!--- Pinging Link-Local Address of router R3.
Output Interface: serial0/0
!--- To ping LLA, output interface must be entered.
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::AB8, timeout is 2 seconds:
Packet sent with a source address of FE80::C000:1DFF:FEE0:0
.....
Success rate is 0 percent (0/5)
!--- The ping is unsuccessful and the ICMP packet cannot reach the destination through serial0/0.
!--- This timeout indicates that R1 has not received any replies from the router R3.
|
从直连网络对链路本地地址执行 ping 操作
对于路由器 R2 来说,路由器 R1 和 R3 是直接相连的,并且当它们通过连接到路由器的相关接口进行通信时,可以 ping 通路由器 R1 和 R2 的链路本地地址。输出如下所示:
从路由器 R2 对 R1 的链路本地地址执行 ping 操作 |
在路由器 R2 中 R2#ping FE80::C000:1DFF:FEE0:0
!--- Pinging Link-Local Address of router R1.
Output Interface: serial0/0
!--- Note that to ping LLA, output interface should be mentioned In our case, R2 connects to R1 via serial0/0.
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::C000:1DFF:FEE0:0, timeout is 2 seconds:
Packet sent with a source address of FE80::C001:1DFF:FEE0:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/19/56 ms R1 的调试输出 R1#
*Mar 1 03:59:53.367: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.371: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.423: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.427: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.463: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.463: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.467: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.467: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.471: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 03:59:53.471: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
!--- The debug output shows that the router R2 can ping router R1's link-local address.
|
从路由器 R2 对 R3 的链路本地地址执行 ping 操作 |
在路由器 R2 中 R2#ping FE80::AB8
!--- Pinging Link-Local Address of router R3.
Output Interface: serial0/1
!--- Note that,to ping LLA,output interface should be mentioned. In our case, R2 connects to R3 throught serial0/1.
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::AB8, timeout is 2 seconds:
Packet sent with a source address of FE80::C001:1DFF:FEE0:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/18/60 ms R3 的调试输出 R3#
*Mar 1 04:12:11.518: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.522: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.594: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.598: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.618: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.618: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.622: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.622: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.626: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 04:12:11.630: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
!--- The debug output shows that the router R2 can ping router R3's link-local address.
|
链路本地地址只能用于相应的本地网络。各路由器可以具有相同的链路本地地址,并且直连网络仍然可以相互通信,而不会发生任何冲突。如果使用全局单播地址,则情况就不一样了。可路由的全局单播地址在网络中必须是唯一的。show ipv6 interface brief 命令可显示有关接口上的链路本地地址的信息。
show ipv6 interface brief |
在路由器 R1 中 R1#show ipv6 interface brief
Serial0/0 [up/up]
FE80::AB8
2001::1
Loopback10 [up/up]
FE80::C000:1DFF:FEE0:0
FD10::C000:1DFF:FEE0:0
Loopback20 [up/up]
FE80::C000:1DFF:FEE0:0
FD20::C000:1DFF:FEE0:0 在路由器 R3 中 R3#show ipv6 interface brief
Serial0/0 [up/up]
FE80::AB8
2002::2
Loopback10 [up/up]
FE80::C002:1DFF:FEE0:0
FD01::C002:1DFF:FEE0:0
Loopback20 [up/up]
FE80::C002:1DFF:FEE0:0
FD20::C002:1DFF:FEE0:0
!--- Shows that R1 and R3's serial interface has same link-local address FE80::AB8.
|
此示例中为 R1 和 R3 分配了相同的链路本地地址,如果指定相关的输出接口,R2 仍可以访问这两台路由器。
从 R2 对 R1 和 R3 的链路本地地址执行 ping 操作 |
从 R2 对 R1 的链路本地地址执行 ping 操作 R2#ping FE80::AB8
Output Interface: serial0/0
!--- R2 is connected to R1 through serial0/0.
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::AB8, timeout is 2 seconds:
Packet sent with a source address of FE80::C001:1DFF:FEE0:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/26/92 ms R1 的调试输出 R1#
*Mar 1 19:51:31.855: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.859: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.915: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.919: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.947: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.947: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.955: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.955: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.955: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:51:31.955: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0 从 R2 对 R3 的链路本地地址执行 ping 操作 R2#ping FE80::AB8
Output Interface: serial0/1
!--- R2 is connected to R1 through serial0/1.
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::AB8, timeout is 2 seconds:
Packet sent with a source address of FE80::C001:1DFF:FEE0:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/28/76 ms R3 的调试输出 R3#
*Mar 1 19:53:38.815: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.819: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.911: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.915: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.923: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.927: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.955: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.955: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.963: ICMPv6: Received echo request from FE80::C001:1DFF:FEE0:0
*Mar 1 19:53:38.963: ICMPv6: Sending echo reply to FE80::C001:1DFF:FEE0:0 |
注意:R2 只能 ping 通 R1 和 R3 的链路本地地址,因为它们是直接连接的。R2 无法 ping 通路由器 R1 和 R3 中的环回接口的链路本地地址,因为它们不是直接连接的。仅在直连网络中可以 ping 通链路本地地址。
注意:在使用链路本地地址的情况下,跟踪路由不起作用,并会返回错误消息“% No valid source address for destination.”(无目的地的有效源地址。)。这是因为 IPv6 路由器不得将具有链路本地源或目的地址的数据包转发到其他链路。
相关信息