第2章 IPv6地址

您所在的位置:网站首页 怎么查看组播地址 第2章 IPv6地址

第2章 IPv6地址

2024-06-01 08:22| 来源: 网络整理| 查看: 265

目录

2.1 IPv6地址表示

2.2 IPv6地址格式

2.3 EUI-64格式

2.4 单播Unicast

终端临时地址禁用

​​​​​​​2.4.2 唯一本地地址

​​​​​​​2.4.3 全球单播地址

2.4.4 嵌入IPv4地址的IPv6地址

​​​​​​​配置内嵌IPv4地址格式的IPv6地址

​​​​​​​内嵌IPv4格式IPv6的快速转换方式

​​​​​​​2.4.5 任意播Anycast

​​​​​​​任意播Anycast原理

​​​​​​​任意播Anycast应用

关键配置:

R1配置如下:

R2配置如下:

R3配置如下:

R4配置如下:

测试如下

​​​​​​​2.5 组播Multicast

​​​​​​​2.6 特殊地址

​​​​​​​2.7 URL中 的 IPv6地址表示

2.1 IPv6地址表示

对于IPv4的32位地址,我们习惯分成4块,每块有8位,中间用号相隔 ,为了方便书写和记忆,一般换算成十进制表示,比如11000000.10101000.00000001.00000001,可以表示为192.168.1.1。这种表达方法可以称为点分十进制。

对于IPv6来说,我们把16位分成1块,一共分为8 块,每块用“:”相隔。下面就是一个IPv6地址的完整表达(冒分十六进制:分成8块,每块有16位):

2001:0fe4:0001:2c00:0000:0000:0001:0ba1

显然这样的地址是非常不便于书写和记忆,所以在这个基础上可以对IPv6的地址表达方法做一些简化。

简化规则1 :每一个地址块的起始部分的0可以省略掉。

比如上述地址可以简化表达为:2001:fe4:1:2c00:0:0:1:ba1

需要注意:只有每个地址块的前面部分的0可以被省略掉,但中间和后面部分的0是不能被省略的,因为将无法确定到底是哪些位置的0被省略掉。在上述例子中,第5和第6块地址都是由4个0组成的,可以简化为1个0。

简化规则2 : 有 1个或连续多个0组成的地址块可以用 “::”取 代 。

上述地址又可以简化表达为:2001:fe4:1:2c00::1:ba1

需要注意:在整个地址中,只能出现一次“::”,比如以下完整的IPv6地址:2001:0000:0000:0001:0000:0000:0000:0001;错误的简化表达:2001::1::1,由于上述表达方式中出现了 2 次 “ 将导致无法判断具体哪几块地址被省略,会引起歧义。可以正确表示为以下2 种表达方式。

表达方式 1:2001::1:0:0:0:1

表达方式 2:2001:0:0:1::1

IPv6地址也分为2 部分:网络位和主机位,为了区分这两部分,在 IPv6地址后面加上“/数字(十进制)”的组合,数字用来确定从头开始的几位是网络位。

例 : 2001::1/64。

2.2 IPv6地址格式

IPv6的地址是接口的128bit标识,每个IPv6地址由以下2部分构成。

网络前缀:相当于IPv4中的网络位。

接口 ID:相当于IPv4中的主机位。

如图 2‑1 IPv6的地址构成所示。

图 2‑1 IPv6的地址构成

IPv6中较常用的网络大小是64位前缀长度的网络。

2.3 EUI-64格式

接口 ID可以由EUI-64方式获得,配合无状态自动配置一起自动生成IPv6地址,或者接口启用IPv6后用于自动生成link-local地址,EUI-64自动生成方法如下。

48位 MAC地址的前24位为公司标识,后24位为扩展标识符。高7位是0表示了MAC地址本地唯一。

第一步将FFFE插入MAC地址的公司标识和扩展标识符之间;

第二步将高7位的0 改为1(有些说法是该位至反),表示此接口标识全球唯一。

例:MAC 地址为 F8-A9-63-1E-A1-07

先拆分为2部分F8A963和1EA107,中间加上FFFE变成F8A963 FFFE 1EA107,然后第7位至反为 : FAA963 FFFE 1EA107。

EUI-64 计算得出的接口 ID: FAA9:63FF:FE1E:A107。

​​​​​​​2.4 单播Unicast

唯一标识一个接口,类似于IPv4的单播地址。发送到单播地址的数据包将被传输到此地址所标识的唯一接口,一个单播地址只能标识一个接口,但一个接口可以有多个单播地址。全球单播地址也被称为接口的标识符,链路本地地址被称为定位符,按照标识和定位的概念,因此每个路由器的接口可以配置多个全球单播地址,作为标识;但是只能配置一个链路本地地址作为定位符。

如图 2‑2 单播地址可细分为以下几类。

图 2‑2 单播地址

​​​​​​​2.4.1 链路本地地址(Link-Local)

链路本地地址的引入是IPv6地址的一个非常方便的地方,它可以在节点未配置全球单播地址的前提下,仍然互相通信。

链路本地地址只在同一链路上的节点之间有效,在 IPv6启动后就自动生成,使用了特定的前缀FE80::/10,接口ID使用EUI-64自动生成,也可以使用手动配置,且手动配置优于结合EUI-64格式自动生成。链路本地地址用作实现无状态自动配置、邻居发现等应用。同时,OSPFv3、RIPng等协议都工作在该地址上。eBGP邻居也可以使用该地址来建立邻居关系,需要注意部分厂家无论是iBGP还是eBGP均不能使用link-local地址建立。路由表中路由的下一跳或主机的默认网关都是链路本地地址(在IPv6规范中,不推荐使用可聚合全球单播或本地站点地址作为下一跳地址,如果这样做,ICMPv6重定向消息就不会工作,具体详见《ICMP重定向》章节)。

​​​​​​​终端LINK-LOCAL地址手动配置

电脑手动配置LINK-LOCA地址,命令为:netsh interface ipv6 set address "13" fe80::2022:06:20,其中“13”代表物理网卡的编号,如下:

图 2‑3 查看终端网卡编号

图 2‑4 ipconfig查看网卡地址

如上所示,其中fe80::2022:06:20为静态配置的链路本地地址,但是可以发现默认存在的fe80::b17b:b23e:3312:475d的地址显示,似乎没有按照EUI-64生成?

​​​​​​​终端临时地址禁用

这是因为WIN10电脑关于IPv6的链路本地地址具备同IPv4中的随机mac类似功能,为了隐私和安全WIN10电脑默认使能了“随机化标识符功能”,该功能避免通过IPv6地址可以反推出设备的mac,反之亦然。查看命令:netsh interface ipv6 show global,如下:

图 2‑5 随机化标识符功能

可以通过命令:netsh interface ipv6 set global randomizeidentifiers=disable和netsh interface ipv6 set global store=persistent禁用,如下调整后WIN10电脑的链路本地地址按照EUI-64方式生成。

图 2‑6 终端临时地址功能禁用

​​​​​​​2.4.2 唯一本地地址

唯一本地地址是IPv6网络中可以自己随意使用的私有网络地址,用来取代已作废的RFC3879定义的站点本地地址(Site-local地址),使用特定的前缀FD00/8。

图 2‑7 唯一本地地址格式

固定前缀:8bit, FD00/8Global ID:40bit,全球唯一前缀;通过伪随机方式产生。Subnet ID:16bit,工程师根据网络规划自定义的子网ID。Interface ID:64 bit,相当于IPv4中的主机位。

如图 2‑7 唯一本地地址格式所示唯一本地地址的设计使私有网络地址具备唯一性,既使任两个使用私有地址的Site 互联也不用担心地址会冲突,由40位的Global ID决定。

可用于防火墙HA地址、MLAG的peer-link地址等本地网段存在意义的应用场景。

​​​​​​​2.4.3 全球单播地址

全球单播地址相当于IPv4中的公网地址,目前己经分配出去的前3位固定是001, 所以已分配的地址范围是2000::/3 。

图 2‑8 全球单播地址格式

001:3 bit,目前已分配的固定前缀为001。TLA (Top Level Aggregation)顶级聚合:13bit, IPv6的管理机构根据TLA分配不同的地址给某些骨干网的ISP,最大可以得到8192个顶级路由。RES:8 bit,保留使用,为未来扩充TLA或者NLA预留。NLA (Next Level Aggregation)次级聚合:24bit,骨干网ISP根据NLA为各个中小 ISP分配不同的地址段,中小ISP也可以针对NLA进一步分割不同地址段,分配给不同用户。SLA (Site Level Aggregation)站点级聚合:16bit,公司或企业内部根据SLA把同一大块地址分成不同的网段,分配给各站点使用,一般用作公司内部网络规划,最大可以有65536个子网。Interface ID:64位,主机使用的地址范围,每个SLA对应的站点最大有65536个主机地址使用。 2.4.4 嵌入IPv4地址的IPv6地址

兼容IPv4的 IPv6地址

这种IPv6地址的低32位携带一个IPv4的单播地址,一般主要使用于IPv4兼容IPv6 自动隧道,但由于每个主机都需要一个单播IPv4地址,且必须是公网IPv4地址,扩展性差,基本已经被6to4隧道取代。

图 2‑9 兼容IPv4的IPv6地址格式

映射IPv4的 IPv6地址

这种地址的最前80bit全为0,后面 16bit全为 1,最后32bit是 IPv4地址(该处IPv4地址可以为任意的公有或者私有地址)。这种地址是把IPv4地址用IPv6表示。如 图 1-13所示。

图 2‑10 映射IPv4的IPv6地址格式

6to4地址

6to4地址用在6to4隧道中,它使用IANA指定的2002::/16为前缀,其后是32位的 IPv4地址,6to4地址中后80位由用户自己定义,可对其中前16位划分,定义多个IPv6 子网。不同的6to4网络使用不同的48位前缀,彼此之间使用其中内嵌的32位 IPv4地址的自动隧道来连接。

​​​​​​​配置内嵌IPv4地址格式的IPv6地址

本实验只是验证系统会自动将这种内嵌IPv4地址格式的地址中的IPv4地址转成十六进制,即将点分十进制格式转成以冒号分隔的十六进制格式。

配置IPv6地址。在Win10-1计算机上配置IPv6地址2001:da8:1004::192.168.1.1,并确定。验证。使用ipconfig命令验证设置的IPv6地址,如图所示。可见,192.168.1.1被自动转成了c0a8:101。

图 2‑11 手动配置IPv6地址

图 2‑12 查看IPv6地址

图 2‑13 ping内嵌IPv4地址格式的IPv6地址

​​​​​​​内嵌IPv4格式IPv6的快速转换方式

经常会遇到需要把十进制转换成二进制或十六进制的情况,比如把218.94.124.26转换成十六进制或二进制。转换方法一般是用除以2取余法先转换成二进制,进而再转换成十六进制。这里有一个转换小窍门,如下ping测,命令:ping 2022::218.94.124.26。

图 2‑14 ping 2022::218.94.124.26

计算机自动把218.94.124.26转换成了十六进制da5e:7c1a,然后把每一位十六进数再换成4位二进制数,就完成了十进制到十六进制再到二进制的转换。

​​​​​​​2.4.5 任意播Anycast ​​​​​​​任意播Anycast原理

任意播的概念最初是在RFC1546 (Host Anycast Service ) 中提出并定义的,主要为DNS和HTTP提供服务。IPv6中没有为任播规定单独的地址空间,任播地址和单播地址使用相同的地址空间。IPv6任播地址可以同时被分配给多个设备,也就是说多台设备可以有相同的任播地址,以任意播地址为目标的数据包会通过路由器的路由表被路由到离源设备最近的拥有该目标地址的设备。类似于MSDP中的任意RP的应用。

 如图 2‑15 任意播组网实例所示,服务器A、B 和 C 的接口配置的是同一个任播地址,根据路径的开销,用户访问该任播地址选择的是开销为3 的路径。

图 2‑15 任意播组网实例

如上图所示,任播技术的优势在于源节点不需要了解为其提供服务的具体节点,而可以接收特定服务,当一个节点无法工作时,带有任播地址的数据包又被发往其他两个主机节点,从任播成员中选择合适的目的地节点取决于路由协议重新收敛后的路由表情况。

任播可以分为基于网络层的任播和基于应用层的任播。两者主要的区别是网络层的任播仅仅依靠网络本身(比如路由表)来选择目标服务器节点,而应用层任播是基于一定的探测手段和算法来选择性能最好的目标服务器节点。RFC2491和 RFC2526定义了一些保留的任播地址格式,如子网路由器任播地址,用来满足不同的任播应用访问需求。 由于IPv6任播目前还处于试用阶段,其详细内容可以参阅相关的RFC和书籍。

​​​​​​​任意播Anycast应用

如下网络拓扑,其中R1和R4模拟客户机,R2和R3是骨干路由器。

图 2‑16 任意播应用实例

 本实验用R2和R3上的loopback0来模拟具有相同任播地址240c::6666的服务器。R1和R4都访问240c::6666,下面验证R1和R4是否能就近访问此任播地址。

关键配置: R1配置如下: enable config terminal host R1 ipv6 unicast-routing interface eth0/0 ipv6 enable ipv6 address 2001:12::1/64 no shutdown ipv6 route ::/0 2001:12::2 R2配置如下: enable config terminal host R2 ipv6 unicast-routing interface eth0/0 ipv6 enable ipv6 address 2001:12::2/64 no shutdown interface eth0/1 ipv6 enable ipv6 address 2001:23::2/64 no shutdown interface loopback0 ipv6 enable ipv6 address 240c::6666/128 anycast exit ipv6 route ::/0 2001:23::3 line vty 0 4 password cisco login transport input all R3配置如下: enable config terminal host R3 ipv6 unicast-routing interface eth0/0 ipv6 enable ipv6 address 2001:23::3/64 no shutdown interface eth0/1 ipv6 enable ipv6 address 2001:34::3/64 no shutdown exit ipv6 route ::/0 2001:23::2 interface loopback0 ipv6 enable ipv6 address 240c::6666/128 anycast line vty 0 4 password cisco login transport input all R4配置如下: enable config terminal host R4 ipv6 unicast-routing interface eth0/0 ipv6 enable ipv6 address 2001:34::4/64 no shutdown ipv6 route ::/0  2001:34::3 测试如下

 1、在R1上Telnet任播地址240C::6666。

R1# R1#telnet 240c::6666 Trying 240C::6666 ... Open   User Access Verification Password: R2>     //注意登陆到的是R2路由器

2、在R4上Telnet任播地址240C::6666。

R4>telnet 240c::6666 Trying 240C::6666 ... Open User Access Verification Password: R3>     注意登陆到的是R3路由器

任播地址一般只能用作目的地址,不能用作源地址。在路由器R2上ping路由器R4的IPv6地址2001:34::4,显示可以ping通。使用带有源地址240c::6666的ping命令时,系统将提示源地址非法,如下所示:

图 2‑17 任意播地址不能用作源地址实例

​​​​​​​2.5 组播Multicast

在 IPv6中不存在广播报文,部分广播的应用使用组播来实现,广播本身就是组播的一种应用。

组播地址构成

组播地址标识一组接口,目的地址是组播地址的数据包会被属于该组的所有接口所接收。

图 2‑18 IPv6组播地址构成

如图 2‑18 IPv6组播地址构成所示。

FF: 8bit, IPv6组播地址前8 位都是FF/8 ,以FF::/8开头。

Left time: 4 bit,第1位都是0,格式|0|r|p|t|。

r位 :取0表示非内嵌RP,取1表示内嵌RP。 p位:取0表示非基于单播前缀的组播地址,取 1表示基于单播前缀的组播地址,p 位取1,则t 位必须为1。 t 位:取0 表示永久分配组播地址,取 1表示临时分配组播地址。

Scope: 4 bit,标识传播范围。

0001 node (节点)0010 link (链路)0101 Site (站点)1000 organization (组织)1110 global (全球)

Group id:112bit,组播组标识号。

IPv6固定的组播地址

所有节点的组播地址:FF02::1 (相当于224.0.0.1)

所有路由器的组播地址:FF02::2 (相当于224.0.0.2)

所有OSPFV3路由器地址:FF02::5 (相当于224.0.0.5)

所有 OSPFV3 DR 和 BDR: FF02::6 (相当于 224.0.0.6)

所有RIP路由器:FF02::9 (相当于224.0.0.9)

所有PIM 路由器:FF02::D (相当于224.0.0.13)

被请求节点组播地址:由固定前缀FF02::1:FF00:0/104和单播或者任意播地址的最后24位组成(类似于IPv4中255.255.255.255的作用)。

组播地址到MAC地址的映射

前十六位为固定的十六进制3333,然后再加上组播地址的低32位,构成了48位MAC地址。

​​​​​​​2.6 特殊地址

0:0:0:0:0:0:0:0 (简化为::)未指定地址:它不能分配给任何节点,表示当前状态下没有地址,如当设备刚接入网络后,本身没有地址,则发送数据包的源地址使用该地址,比如发送RA消息,DAD (重复地址检测)。该地址不能用作目的地址。

0:0:0:0:0:0:0:1( 简化为::1) 环回地址:节点用它作为发送后返回给自己的IPv6报文, 不能分配给任何物理接口,它被看作属于链路本地范围,可以被当作虚拟接口的链路本地单播地址,这个虚拟接口通向一个假象的链路,该链路不和任何人连接。如果一个应用程序将数据包送到此地址,IPv6协议栈会转送这些数据包绕回到自己(相当于IPv4 中 的 127.0.0.1) 。环回接口不能被用作报文的源IP,以环回接口为目的的报文不能转发出单一节点,不能被路由器转发,接口收到目的地址为环回接口的报文必须将其丢弃。

​​​​​​​2.7 URL中 的 IPv6地址表示

在 IPv4中,对于一个URL地址,当需要通过直接使用“IP 地址+ 端口号”的方式来访 问时,可以如下表示:

http://51 .151.16.235: 8080/cn/index. jsp

但是如果IPv6地址中含有“:”,为了避免歧义,在 URL地址含有IPv6地址时,用“[]” 将 IPv6地址包含起来,如下:

http://[2000:1::ABCD:EF]:8080/cn/index. jsp



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3