ipv6地址为什么显示两个_基本IPv6故障排除命令/ IPv6 Rosetta Stone 2019

89a0dfc28231f6571c1a34846f76f446.gif

这篇文章旨在概述Windows,Linux和macOS这三个主要操作系统的基本IPv6故障排除方法和命令。对于这些操作系统(仅适用于某些特定任务),它包括“ IPv6 Rosetta Stone ”的更新版本,这是我经常向IPv6初学者介绍的网站,目的是识别特定于操作系统的相关命令。

我还将提供有关命令输出和一般IPv6复杂性的一些背景说明,请注意,与我写的其他文章相比,这篇文章主要是为IPv6新手准备的。我还想补充一点,虽然我可以在一定程度上使用这里所涉及的三种操作系统,但我并不认为自己是其中任何一种的专家,因此可能有更好的方法来执行某些操作。

102f0d0fdd276e593fe49da7a0d09ece.png确定接口的IPv6地址配置

在Windows操作系统中,我不知道使用 ‘ipconfig’ 仅显示特定界面的简单方法,但总的来说,这是查看适配器主要参数的最快方法,例如:

Connection-specific DNS Suffix . : hsd1.ca.comcast.net

IPv6 Address. . . . . . . . . . . : 2601:647:5b80:b60::d9cd

IPv6 Address. . . . . . . . . . . : 2601:647:5b80:b60:c165:b052:45b5:2d70

Temporary IPv6 Address. . . . . . : 2601:647:5b80:b60:6d58:d895:de31:494e

Link-local IPv6 Address . . . . . : fe80::c165:b052:45b5:2d70%17

IPv4 Address. . . . . . . . . . . : 10.0.0.193

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 10.0.0.1

在Linux操作系统中,相对于使用 ‘ipconfig’ ,我更喜欢使用 ‘ip -6’ ,并且特定接口的最有效方式可能如下所示( ‘a s’ 缩写为 ‘address show’ ,而‘wlp2s0’ 是特定接口):

enno@labbook$ ip -6 a s wlp2s0

wlp2s0:  mtu 1500 state UP qlen 1000

inet6 2601:647:5b80:b60::b8d0/128 scope global dynamic noprefixroute valid_lft 604678sec preferred_lft 604678sec

inet6 2601:647:5b80:b60:d003:344b:61ea:1da1/64 scope global temporary dynamic valid_lft 3582sec preferred_lft 3582sec

inet6 2601:647:5b80:b60:e7d5:f51b:f500:33cb/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 3582sec preferred_lft 3582sec

inet6 fe80::edf9:e52e:686e:62b2/64 scope link noprefixroute valid_lft forever preferred_lft forever

在macOS操作系统中,我喜欢使用 ‘ifconfig en0 inet6’(其中 ‘en0’是特定的接口,而‘-L’ 选项可用于显示使用期限):

bash-3.2$ ifconfig -L en0 inet6

en0: flags=8863 mtu 1500

inet6 fe80::474:2318:f169:b89%en0 prefixlen 64 secured scopeid 0xa 

inet6 2601:647:5b80:b60:1086:2305:87bd:448b prefixlen 64 autoconf secured pltime 3599 vltime 3599 

inet6 2601:647:5b80:b60:75e4:235e:b46c:d2e7 prefixlen 64 autoconf temporary pltime 3599 vltime 3599 

inet6 2601:647:5b80:b60::18ba prefixlen 64 dynamic pltime 591997 vltime 591997 

nd6 options=201

让我们一起来看看来自相同网络中的三个示例系统的上述输出,从分析的角度来看,这有点复杂。我们可以看到,在每个输出中都有所谓的链路本地地址,它始终存在于支持ipv6的接口上,并且仅用于段内通信(例如,在VLAN中)。它总是以“fe80”开头,通常不能/不应该手动配置。此外,每个接口有三个全局单播地址(‘GUAs’)。这是该特定网络的某种配置方法的结果,从运营商的角度来看,可以描述如下:

1. 使用DHCPv6既提供前缀2601:647:5b80:b60::/64的地址(具有“短”接口标识符的地址),又提供两个DNS解析器(如稍后对DHCPv6数据包的分析将) 。

2. 另外,路由器说明中包含一个“前缀选项”(默认情况下通常这样做),并且已宣布的前缀实际上用于地址配置(因为设置了前缀选项中的“ a”标志,这也是常见的默认设置) 。另外,它们在特定选项 (‘number 25’)中还包含两个DNS解析器。

对于IPv6爱好者来说,这就是RA (在Wireshark输出,PCAP的请求):

00fb9b78b616e4ed69e142e253050809.png

这个配置可能是为了在Win 10 Creators Update更新之前同时支持Android设备(不支持DHCPv6)和Windows版本,因为旧版本只能通过DHCPv6学习IPv6 DNS解析器,具体请点此/详细了解。我不知道为什么IPv6专业人员要管理DHCPv6,并且我认为对于这种类型的网络来说,这不是一个很好的选择,但这将引起另一个讨论。

关键是,在这个三个操作系统上,这导致创建三个全局地址,一个来自DHCPv6,并且由于DHCPv6和SLAAC可以愉快地共存进行参数配置,而另外两个则来自经典IPv6 [地址]自动配置的方法称为“无状态地址自动配置”/ SLAAC。后两种地址中,一种被认为是更稳定的,另一种被认为是相对较短的一次性地址,因此被称为“临时地址”,主要用于从浏览器进行web冲浪等出站连接。对于IPv6初学者,可能很难在上面的接口配置输出中发现哪些来自DHCPv6,哪些来自SLAAC。在Linux输出中,第一个地址的“/128”给出了一些说明。在Windows系统中, “netsh int ipv6 sh add” 的说明和macOS上显示的以下内容,都会让你对DHCPv6有所了解:

bash-3.2$ ipconfig getv6packet en0

DHCPv6 REPLY (7) Transaction ID 0x587c7a Length 151

Options[5] = {

IA_NA (3) Length 66 IA_NA IAID=0 T1=302400 T2=483840 Options[2] = {

IAADDR (5) Length 24 IAADDR 2601:647:5b80:b60::18ba Preferred 604800 Valid=604800

STATUS_CODE (13) Length 22 STATUS_CODE Success (0) ‘Assigned an address.’

} SERVERID (2) Length 14 DUID LLT HW 1 Time 625146838 Addr 00:50:f1:80:00:00

CLIENTID (1) Length 14 DUID LLT HW 1 Time 620212912 Addr 38:f9:d3:51:a1:e5

PREFERENCE (7) Length 1 Data ff

DNS_SERVERS (23) Length 32 2001:558:feed::1

2001:558:feed::2

}

在任何情况下,从用户的角度来看,操作员选择的配置方法都会导致存在三个地址这一事实,并且不清楚将哪个地址用于实际的通信行为。

另外,一旦初始使用期限(3600秒/ 1小时)到期,尽管仍然存在RA,Windows系统(运行10.0.14393)将丢失所有IPv6配置(请注意下面的IPv6缺少默认gw)。

Connection-specific DNS Suffix . : hsd1.ca.comcast.net

IPv6 Address. . . . . . . . . . . : 2601:647:5b80:b60::d9cd

Link-local IPv6 Address . . . . . : fe80::c165:b052:45b5:2d70%17

IPv4 Address. . . . . . . . . . . : 10.0.0.193

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 10.0.0.1

102f0d0fdd276e593fe49da7a0d09ece.png确定哪个地址用于出站通信

这不是一件容易的事,对于读者中的IPv6初学者来说,你可以安全地假定在此处介绍的三个系统上都将使用“临时地址”,*not* the nice short(DHCPv6提供的)地址显示为第一个在Windows和Linux上,以及在macOS上的最后一个。

在Linux和macOS上,可以执行以下操作进行验证:

1. 从一个终端窗口中ping你选择的IPv6地址,例如2620:fe::fe,它是Quad9项目的解析器的IPv6地址,第一行可能显示正在使用的源地址。

2. 在另一个终端窗口中运行 ‘tcpdump -n host 2620:fe::fe’( ' -n '需要看到实际的源地址,' host '后的地址当然必须与第一个终端窗口相同)。

102f0d0fdd276e593fe49da7a0d09ece.png是否想找出实际路由器/默认网关的IPv6地址?

1. Windows:查看相关界面的“ipconfig”输出中的“默认网关”部分;

2. Linux:‘ip -6 r s | grep def”是我常用的格式(“ rs”缩写为“ route show”):

enno@labbook:$ ip -6 r s | grep def

default via fe80::250:f1ff:fe80:0 dev wlp2s0 proto ra metric 600 pref medium

macOS: ‘netstat -rn inet6 | grep def | grep en0’(其中 ‘en0’ 是支持ipv6的示例接口)应该给出一个很好的指示:

bash-3.2$ netstat -rn inet6 | grep def | grep en0

default 10.0.0.1 UGSc 79 0 en0

default fe80::250:f1ff:fe80:0%en0 UGc en0

对路由器执行Ping操作是相当常见的故障排除步骤。

这里要记住两件事:

1. 在Windows和Linux上并不一定要强制ping使用IPv6,因为现在通常只使用' ping ',否则在Linux上就是' ping6 ',在Windows上就是' ping -6 ',但在macOS上是需要的:

bash-3.2$ ping6 fe80::250:f1ff:fe80:0%en0

PING6(56=40+8+8 bytes) fe80::474:3308:f169:b89%en0 –> fe80::250:f1ff:fe80:0%en0

16 bytes from fe80::250:f1ff:fe80:0%en0, icmp_seq=0 hlim=64 time=11.572 ms

2. 假设ping默认网关发生在本地子网(即IPv6区域中的“本地链接”)内,则链接本地地址开始起作用。由于它们仅在特定接口的上下文中具有本地意义,因此可以在一个系统上存在多个这样的“上下文”(每个支持ipv6的接口对应一个上下文)。为了区分具有地址和路由信息的各种本地链接上下文,需要一个称为区域标识符(在RFC 4007中定义)的东西。这是一个链接本地地址后面的部分,并以“%”符号隔开。在大多数情况下,你必须操作包括此内容的本地链接,例如:

Windows (get interface number from ‘route print’ if needed):

E:>ping fe80::250:f1ff:fe80:0%17

Pinging fe80::250:f1ff:fe80:0%17 with 32 bytes of data:

Reply from fe80::250:f1ff:fe80:0%17: time=4ms

Reply from fe80::250:f1ff:fe80:0%17: time=5ms

102f0d0fdd276e593fe49da7a0d09ece.pngDNS

这是一个特别有趣的例子,关键是DNS是“协议无关的”,服务器通常不关心L3协议(IPv4或IPv6)传输传入请求,因此可以通过IPv4完美地查询DNS服务器的AAAA记录(包含IPv6地址)。有问题的DNS服务器本身可能甚至没有IPv6,并且发送请求的客户端甚至可能不知道任何DNS服务器的IPv6地址。如今,这两种方法都是常见的方案。

102f0d0fdd276e593fe49da7a0d09ece.png显示系统使用的IPv6 DNS服务器

1.Windows:执行 ‘ipconfig /all’,然后查看相应的启用IPv6的接口部分的底部。

2.Linux:在一个系统控制的系统上(我的实验室系统是Ubuntu),我想到了以下内容(' wlp2s0 ' =支持ipv6的接口):

[…]

    DNSSEC supported: no

  Current DNS Server: 75.75.75.75

         DNS Servers: 75.75.75.75

                      75.75.76.76

                      2001:558:feed::1

                      2001:558:feed::2

          DNS Domain: ~.

                      hsd1.ca.comcast.net

3.macOS: ‘scutil –dns’ 可能是你最可靠的朋友,如下所示,最后一个 ‘grep’ 试图只捕获v6版本,假设它们的地址在某个地方有一个双冒号:

bash-3.2$ scutil –dns | grep nameserver | grep “::”

nameserver[0] : 2001:558:feed::1

nameserver[1] : 2001:558:feed::2

nameserver[0] : 2001:558:feed::1

nameserver[1] : 2001:558:feed::2

请求名称的' AAAA '记录,无论查询是在v4还是v6上执行的

1.Linux和macOS:‘dig +short AAAA heise.de’;

2.Windows:有两个选项,一个带有nslookup(我倾向于不使用),另一个带有Powershell命令 ‘resolve-dnsname’:

nslookup -q=aaaa heise.de

resolve-dnsname heise.de -type AAAA

对特定服务器/通过特定服务器执行通过IPv6的DNS解析:

Linux和macOS:‘dig +short -6 @2001:558:feed::1 AAAA heise.de’(使用Comcast的DNS),例如:

enno@labbook$ dig +short -6 @2001:558:feed::1 AAAA heise.de

2a02:2e0:3fe:1001:302::

Windows:

nslookup -q=aaaa heise.de 2001:558:feed::1

resolve-dnsname heise.de -type AAAA -server 2001:558:feed::1

102f0d0fdd276e593fe49da7a0d09ece.png使用的命令摘要

下表总结了本文中使用的各个命令,在后续的文章中,我将进一步介绍其他命令,并且我们将使用tcpdump。

c816f3391ffb8ca83eba8f717c326b85.png

本文翻译自:https://theinternetprotocolblog.wordpress.com/2019/11/04/basic-ipv6-troubleshooting-commands-i-ipv6-rosetta-stone-2019/

9bf4c7fe9f12c36461b8c68e0280b8e1.png

086903243ff95322b25ee42a85d28ca2.png

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介本书从介绍IPv4中问题的产生和现状入手,详细阐述了IPv6的各个方面,包括IPv6的寻址结构、扩展头、身份验证和安全性、对任意点播和组播的支持以及对相关协议的影响,同时还探讨了IPv4向IPv6过渡的策略和应用。 本书内容由浅入深、语言精练易懂,为有经验的网络管理员和研究人员适应IP升级变化提供了关于IPv6清楚而又与众不同的介绍。 目 录译者序前言第一部分 IP基础知识第1章 为何要升级IP 11.1 IP的影响 11.1.1 什么是IP 21.1.2 IP应用在哪些地方 31.1.3 有多少人在使用IP 31.1.4 当IP发生变化时会产生哪些影响 41.2 IPv4的局限性及其缺点 41.2.1 IP地址空间危机 51.2.2 IP性能议题 51.2.3 IP安全性议题 61.2.4 自动配置 61.3 紧迫感 7第2章 TCP/IP网络互联简介 82.1 网络互联问题 82.2 分层网络互联模型 92.2.1 OSI模型 102.2.2 Internet模型 102.2.3 封装 112.3 IP 122.3.1 IP寻址 132.3.2 IP头 152.3.3 数据报的转移 172.4 ICMP 182.5 选路、传输和应用协议 182.5.1 选路协议 192.5.2 传输协议 192.5.3 应用协议 19第3章 IPv4的问题 203.1 修改还是替换 203.2 过渡还是不过渡 26第4章 通向IPng之路 274.1 概念的诞生 274.1.1 对Internet将来的估计 274.1.2 Internet发展中需要考虑的领域 284.2 第一回合 294.3 拾遗 314.4 IPv6,第一回合 324.5 IPv6,第二回合 32第二部分 IPv6细节第5章 IPv6的成型 335.1 IPv6 335.1.1 变化概述 335.1.2 包头结构 355.1.3 IPv4与IPv6的比较 365.1.4 流标签 375.1.5 业务流类别 375.1.6 分段 385.1.7 扩展头 395.2 ICMPv6 40第6章 IPv6寻址 436.1 地址 436.1.1 地址表达方式 436.1.2 寻址模型 446.1.3 地址空间 456.2 地址类型 466.2.1 广播路在何方 466.2.2 单播 466.2.3 单播地址格式 476.2.4 组播 516.2.5 泛播 53第7章 IPv6扩展头 547.1 扩展头 547.2 扩展头的用法 547.2.1 扩展头的标识 557.2.2 扩展头的顺序 567.2.3 建立新的选项 567.2.4 选项扩展头 567.2.5 选项 577.3 逐跳选项 587.4 选路头 597.5 分段头 597.6 目的地选项 60第8章 IPv6选路 628.1 地址对IP网络的影响 628.1.1 标识符和定位符 628.1.2 地址分配、无缝互操作和网络 拓扑 648.2 选路问题 65第9章 IPv6身份验证和安全性 699.1 为IP增加安全性 699.1.1 安全性目标 699.1.2 RFC 1825及建议的更新 709.2 IPsec 709.2.1 加密和身份验证算法 719.2.2 安全性关联 739.2.3 密钥管理 749.2.4 实现IPsec 749.2.5 隧道模式与透明模式 759
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值