了解 IPv6 链路本地地址

本文档的目的是提供对网络中 IPv6 链路本地地址的理解。链路本地地址是 IPv6 单播地址,可以使用链路本地前缀 FE80::/10 (1111 1110 10) 和修改后的 EUI-64 格式的接口标识符在任何接口上自动配置。链路本地地址不一定绑定到 MAC 地址(以 EUI-64 格式配置)。也可以使用ipv6 address link-local命令以 FE80::/10 格式手动配置链路本地地址。 这些地址仅指特定的物理链路,用于在单个链路上进行寻址,用于自动地址配置和邻居发现协议等目的。链路本地地址可用于到达连接到同一链路的相邻节点。节点不需要全局唯一地址来进行通信。路由器不会使用链路本地地址转发数据报。IPv6 路由器不得将具有链路本地源或目标地址的数据包转发到其他链路。所有启用 IPv6 的接口都有一个本地链路单播地址。
<h2>介绍</h2>
<p>本文档的目的是提供对网络中 IPv6 链路本地地址的理解。链路本地地址是 IPv6 单播地址,可以使用链路本地前缀 FE80::/10 (1111 1110 10) 和修改后的 EUI-64 格式的接口标识符在任何接口上自动配置。链路本地地址不一定绑定到 MAC 地址(以 EUI-64 格式配置)。也可以使用<strong><a href="https://www.cisco.com/en/US/docs/ios/ipv6/command/reference/ipv6_05.html#wp2320779">ipv6 address link-local</a></strong>命令以 FE80::/10 格式手动配置链路本地地址。</p>
<p>这些地址仅指特定的物理链路,用于在单个链路上进行寻址,用于自动地址配置和邻居发现协议等目的。链路本地地址可用于到达连接到同一链路的相邻节点。节点不需要全局唯一地址来进行通信。路由器不会使用链路本地地址转发数据报。IPv6 路由器不得将具有链路本地源或目标地址的数据包转发到其他链路。所有启用 IPv6 的接口都有一个本地链路单播地址。</p>
<p><a name="prereq"></a></p>
<h2>先决条件</h2>
<p><a name="req"></a></p>
<h3>要求</h3>
<p>在尝试此配置之前,请确保您了解<a href="https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipv6/configuration/15-2mt/ipv6-15-2mt-book/ip6-addrg-bsc-con.html#GUID-D361225C-8B53-49EA-BE0D-D8F9071F5828">IPv6 地址格式。</a></p>
<p><a name="comp"></a></p>
<h3>使用的组件</h3>
<p>本文档不限于特定的软件和硬件版本。</p>
<p>本文档中的配置基于带有 Cisco IOS® 软件版本 12.4 (15)T1 的 Cisco 3700 系列路由器。</p>
<p><a name="conf"></a></p>
<h2>配置</h2>
<p>在此示例中,路由器 R1、R2 和 R3 通过串行接口连接,并按照网络图中的说明配置 IPv6 地址。在路由器 R1 和 R3 上配置环回地址,路由器之间使用 OSPFv3 进行通信。此示例使用<strong>ping</strong>命令演示使用链路本地地址的路由器之间的连接。路由器 R1 和 R3 可以使用 IPv6 全局单播地址相互 ping,但不能使用它们的链路本地地址。但是,直接连接到 R1 和 R3 的路由器 R2 可以使用它们的链路本地地址与这两个路由器通信,因为链路本地地址仅在特定于物理接口的本地网络中使用。</p>
<p><a name="diag"></a></p>
<h3>网络图</h3>
<p>本文档使用此网络设置:</p>
<p><a href="https://www.cisco.com/c/dam/en/us/support/docs/ip/ip-version-6-ipv6/113328-ipv6-lla-01.gif"><img alt="ipv6-lla-01.gif" src="https://www.cisco.com/c/dam/en/us/support/docs/ip/ip-version-6-ipv6/113328-ipv6-lla-01.gif" /></a></p>
<p><a name="configs"></a></p>
<h3>配置</h3>
<p>本文档使用以下配置:</p>
<ul>
<li>
<p>路由器 R1</p>
</li>
<li>
<p>路由器 R2 & R3</p>
</li>
</ul>
<p>下面是一个视频链接(可在<a href="https://community.cisco.com/t5/technology-and-support/ct-p/technology-support" target="_blank">Cisco 支持社区</a>获得),该视频演示了 Cisco IOS 路由器中 IPv6 链路本地地址和全球单播地址之间的主要区别:</p>
<p>了解 IPv6 链路本地地址</p>
<p><a href="https://www.cisco.com/c/dam/en/us/support/docs/ip/ip-version-6-ipv6/113328-ipv6-lla-02.gif"><img alt="ipv6-lla-02.gif" src="https://www.cisco.com/c/dam/en/us/support/docs/ip/ip-version-6-ipv6/113328-ipv6-lla-02.gif" /></a></p>
<p><a name="t1"></a></p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1">路由器 R1</th>
</tr>
<tr>
<td colspan="1" rowspan="1">
<pre>
!
hostname R1
!
ipv6 cef
!
ipv6 unicast-routing
!
interface Loopback10
no ip address
ipv6 address 2010::/64 eui-64
<em>
!--- Assigned a IPv6 unicast address in EUI-64 format.
</em>
ipv6 ospf 1 area 1
<em>
!--- Enables OSPFv3 on the interface and associates the interface looback10 to area 1.
</em>
!
interface Loopback20
no ip address
ipv6 address 2020::/64 eui-64
ipv6 ospf 1 area 2
<em>
!--- Associates the Interface loopback20 to area 2.
</em>
!
interface Serial0/0
no ip address
ipv6 address 2001::1/124
ipv6 ospf 1 area 0
<em>
!--- Associates the Interface serial0/0 to area 0.
</em>
clock rate 2000000
!
ipv6 router ospf 1
router-id 1.1.1.1
<em>
!--- Router R1 uses 1.1.1.1 as router id.
</em>
log-adjacency-changes
!
end</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p><a name="t2"></a></p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1">路由器 R2</th>
<th colspan="1" rowspan="1">路由器 R3</th>
</tr>
<tr>
<td colspan="1" rowspan="1">
<pre>
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 2.2.2.2
log-adjacency-changes
!
end</pre>
</td>
<td colspan="1" rowspan="1">
<pre>
!
hostname R3
!
ipv6 cef
!
ipv6 unicast-routing
!
interface Loopback10
no ip address
ipv6 address 1010::/64 eui-64
ipv6 ospf 1 area 1
!
interface Loopback20
no ip address
ipv6 address 2020::/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 3.3.3.3
log-adjacency-changes
!
end</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p><a name="veri1"></a></p>
<h2>核实</h2>
<p><a name="ospf1"></a></p>
<h3>验证 OSPF 配置</h3>
<p>使用此部分来确认您的配置是否正常工作。</p>
<p>为了验证 OSPF 是否已正确配置,请在路由器 R1 和 R3 中使用<strong><a href="https://www.cisco.com/en/US/docs/ios/ipv6/command/reference/ipv6_16.html#wp2669925">show ipv6 route ospf命令。</a></strong></p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1"><strong>显示 ipv6 路由 ospf</strong></th>
</tr>
<tr>
<td colspan="1" rowspan="1"><strong>Router R1</strong>
<pre>
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 1010::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 2020::C002:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0</pre>
<strong>Router R3</strong>
<pre>
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 2010::C000:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0
OI 2020::C000:1DFF:FEE0:0/128 [110/128]
via FE80::C001:1DFF:FEE0:0, Serial0/0</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p><a name="veri"></a></p>
<h2>验证链路本地地址可达性</h2>
<p>路由器可以用全球单播地址相互ping通。但是,当使用本地链接地址时,只有直接连接的网络可以通信。例如,R1 可以使用全局单播地址 ping R3,但两个路由器无法使用链路本地地址进行通信。这在路由器 R1 和 R3中使用<strong>ping</strong>和<strong>debug ipv6 icmp命令显示。</strong>本节提供场景以更好地理解链接本地地址。</p>
<p><a name="remote"></a></p>
<h3>从远程网络 ping 链路本地地址</h3>
<p>当路由器 R1 尝试使用链路本地地址与路由器 R3 通信时,路由器 R1 返回一个 ICMP 超时消息,指示链路本地地址是本地特定的,并且不能与直接在该链路之外的链路本地地址通信。连接的网络。</p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1">从路由器 R1 ping R3 的链路本地地址</th>
</tr>
<tr>
<td colspan="1" rowspan="1"><br />
<strong>在</strong>路由器<strong> R1 中</strong>
<pre>
R1#<strong>ping</strong> FE80::AB8
<em>
!--- Pinging Link-Local Address of router R3.
</em>
Output Interface: serial0/0
<em>
!--- To ping LLA, output interface must be entered.
</em>
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)
<em>
!--- 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.
</em></pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p><a name="dc"></a></p>
<h3>从直连网络 Ping 链路本地地址</h3>
<p>对于路由器 R2,路由器 R1 和 R3 直接相连,并且可以通过提及连接到路由器的相应接口来 ping 路由器 R1 和 R2 的链路本地地址。输出如下所示:</p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1">从路由器 R2 ping R1 链路本地地址</th>
</tr>
<tr>
<td colspan="1" rowspan="1"><strong>在路由器 R2 中</strong>
<pre>
R2#<strong>ping</strong> FE80::C000:1DFF:FEE0:0
</pre>
<pre>
<em>!--- ping 路由器 R1 的链路本地地址。
</em>
</pre>
<pre>
Output Interface: serial0/0
</pre>
<pre>
<em>
!--- 注意,要ping LLA,需要提到输出接口 在我们的例子中,R2 通过serial0/0 连接到R1。
</em>
</pre>
<pre>
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</pre>
<strong>Debug output from R1</strong>
<pre>
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
R1#
*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
<em>
!--- 调试输出显示路由器 R2 可以 ping 路由器 R1 的链路本地地址。
</em>
</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1">从路由器 R2 ping R3 链路本地地址</th>
</tr>
<tr>
<td colspan="1" rowspan="1"><strong>在路由器 R2 中</strong>
<pre>
R2# <strong>ping</strong> FE80::AB8
<em>!--- ping 路由器 R3 的链路本地地址。
</em>
</pre>
<pre>
Output Interface: serial0/1
</pre>
<pre>
<em>
!--- 请注意,要 ping LLA,应提及输出接口。在我们的例子中,R2 通过 serial0/1 连接到 R3。
</em>
键入转义序列以中止。
向 FE80::AB8 发送 5 个 100 字节的 ICMP Echo,超时为 2 秒:
发送源地址为 FE80::C001:1DFF:FEE0:0 的数据包
!!!!!!
成功率为 100% (5/5),往返 min/avg/max = 0/18/60 ms</pre>
<strong>R3 的调试输出</strong>
<pre>
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
R3#
*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</pre>
<pre>
<em>
!--- 调试输出显示路由器 R2 可以 ping 路由器 R3 的链路本地地址。
</em>
</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p>顾名思义,链接本地地址仅特定于该本地网络。换句话说,路由器可以具有相同的本地链路地址,并且直接连接的网络仍然可以相互通信而不会发生任何冲突。在全球单播地址的情况下,这将是不同的。可路由的全球单播地址在网络中应该是唯一的。<strong><a href="https://www.cisco.com/en/US/docs/ios/ipv6/command/reference/ipv6_14.html#wp2373271">show ipv6 interface brief</a></strong>命令显示接口上链路本地地址的信息。</p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1"><strong>显示 ipv6 接口简介</strong></th>
</tr>
<tr>
<td colspan="1" rowspan="1"><strong>在路由器 R1</strong>
<pre>
R1#show ipv6 interface brief
Serial0/0 [up/up]
<strong>FE80::AB8</strong>
2001::1
Loopback10 [up/up]
FE80::C000:1DFF:FEE0:0
2010::C000:1DFF:FEE0:0
Loopback20 [up/up]
FE80::C000:1DFF:FEE0:0
2020::C000:1DFF:FEE0:0</pre>
<strong>在路由器 R3</strong>
<pre>
R3#show ipv6 interface brief
Serial0/0 [up/up]
<strong>FE80::AB8</strong>
2002::2
Loopback10 [up/up]
FE80::C002:1DFF:FEE0:0
1010::C002:1DFF:FEE0:0
Loopback20 [up/up]
FE80::C002:1DFF:FEE0:0
2020::C002:1DFF:FEE0:0</pre>
<pre>
<em>
!--- 表明 R1 和 R3 的串行接口具有相同的链路本地地址 FE80::AB8。
</em>
</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p>在本例中,R1 和 R3 被分配了相同的链路本地地址,通过指定相应的输出接口,R2 仍然可以到达两个路由器。</p>
<table border="1" cellpadding="3" cellspacing="1" style="width:60%">
<tbody>
<tr>
<th colspan="1" rowspan="1">从 R2 ping R1 和 R3 的链路本地地址</th>
</tr>
<tr>
<td colspan="1" rowspan="1"><strong>从 R2 ping R1 的链路本地地址</strong>
<pre>
R2#ping FE80::AB8
输出接口:serial0/0
<em>
!--- R2 通过serial0/0 连接到R1。
</em>
键入转义序列以中止。
向 FE80::AB8 发送 5 个 100 字节的 ICMP Echo,超时为 2 秒:
发送源地址为 FE80::C001:1DFF:FEE0:0 的数据包
!!!!!!
成功率为 100% (5/5),往返 min/avg/max = 0/26/92 ms</pre>
<strong>R1 的调试输出</strong>
<pre>
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
R1#
*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</pre>
<strong>从 R2 ping R3 的链路本地地址</strong>
<pre>
R2#ping FE80::AB8
输出接口:serial0/1
<em>
!--- R2 通过serial0/1 连接到R1。
</em>
键入转义序列以中止。
向 FE80::AB8 发送 5 个 100 字节的 ICMP Echo,超时为 2 秒:
发送源地址为 FE80::C001:1DFF:FEE0:0 的数据包
!!!!!!
成功率为 100% (5/5),往返 min/avg/max = 4/28/76 ms</pre>
<strong>R3 的调试输出</strong>
<pre>
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
R3#
*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</pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>注意: </strong> R2 只能 ping 通 R1 和 R3 的链路本地地址,因为它们是直连的。R2 无法 ping 路由器 R1 和 R3 中环回接口的链路本地地址,因为它们没有直接连接。只有在直连网络的情况下,Ping 才对链路本地地址起作用。</p>
<p><strong>注意: </strong> Traceroutes 在链路本地地址的情况下不起作用,并返回<em>% No valid source address for destination。</em>错误信息。这是因为 IPv6 路由器不得将具有链路本地源或目标地址的数据包转发到其他链路。</p>
评论 (0)
加载评论中…