IPv6地址介绍

IPv6地址从IPv4地址的32 bits扩展到128 bits,IPv6地址的表示、书写方式也从IPv4的点分十进制,如192.168.1.1,转变为:

即,16 bits一组,采用16进制表示,共8组字段,每个字段之间使用 “:” 分隔。

为了方便书写、表示IPv6地址,IETF在标准中规定了IPv6的规范文本表示形式:

  • 抑制每个字段中的前导零
  • 使用双冒号 “::” 替换连续全零的字段,注意一个IPv6地址只能压缩一个零字段序列
    • 如果一个IPv6地址中有多个连续全零字段,只压缩最长的零字段序列
    • 如果一个IPv6地址中有多个相等长度的序列,则只压缩第一个
    • 不允许压缩单个零字段
    • 十六进制中的a, b, c, d, e, f必须是小写的

一个规范的IPv6地址表示如下:

IPv6地址分为三种类型:

  • 单播(Unicast):单播地址唯一标识一个IPv6节点的接口。发送到单播地址的报文将被发送到由该地址标识的接口。
  • 组播(Multicast):组播地址用于标识一组IPv6接口。发送到组播地址的报文由组播组的所有成员处理。
  • 任播(Anycast):一个任播地址被分配给多个接口(通常是在多个节点上)。发送到任播地址的数据包只被发送到这些接口中的一个,通常是最近的一个。

IPv6地址的作用范围

IPv6支持不同范围的地址,即作用域,典型如:

  • Interface-Local scope
  • Link-Local scope
  • Site-Local scope
  • Global scop

IPv6的设计包括基本架构中的地址范围。除未指定的地址外,每个IPv6地址都有一个特定的范围,这是一个拓扑、逻辑范围,在这个范围内,该地址可以作为一个接口或一组接口的唯一标识符。地址的范围被编码为地址的一部分。

IPv6单播地址

IPv6单播地址分成以下几种类型:

  • 全局单播地址 (Global Unicast Addresses)
  • 链路本地地址 (Link Local Addresses)
  • 唯一本地地址 (Unique Local Addresses - ULA)
  • 环回地址 (Loopback (::1))
  • 未指定地址 (Unspecified (::))

全局单播地址 (Global Unicast Addresses)

全局单播地址也被称为可聚合全局单播地址,是 lPv6 互联网全局范围内可路由、可达的 IPv6 地址,等同于 IPv4 的公有地址,在 IPv6 编址架构中充当了非常重要的角色。全局单播地址的前缀为:2000::/3,占据整个IPv6地址空间的1/8,其格式如下:

全局路由前缀 (Global Routing prefix) 标识分配给一个网络的地址范围。这部分地址是由国际注册服务和互联网服务提供商(ISP)分配的,并具有层次结构。

子网ID (Subnet ID) 用于子网的划分,网络的管理员分配这部分地址。

接口ID (Interface ID) 用于标识子网中的接口,在子网中不能重复。接口ID始终为64位,因此IPv6子网始终为/64子网。接口ID可以由接口的MAC地址生成,生成规则参加上面的图中示意。

链路本地地址 (Link Local Addresses)

链路本地地址是仅用于与同一本地链路上的设备进行通信。必须保证这些地址在链路上的唯一性,因为数据包不会被路由到该链路之外。也就是说,路由器不会转发任何以链路本地地址为源地址或目的地址的数据包。所有IPv6网络接口都配置链路本地地址,前缀为fe80::/10 (实际上是fe80::/64的子集)。

唯一本地地址 (Unique Local Addresses - ULA)

唯一本地地址的前缀为:fc00::/7,是对IPv4私有地址的替换(RFC 1918),仅供在一个站点或一组站点中本地使用。唯一本地地址具有全局唯一性,但无法在全球互联网上路由。唯一本地地址解决了IPv4和RFC 1918地址中出现的一些操作问题,被设计用于企业站点或有限的网络集。

ULAs必须通过在路由器上配置本地前缀(Router Advertisement)或通过DHCPv6来分配,地址结构如下:

环回地址 (Loopback )

与 IPv4 环回地址 127.0.0.1 等价。不能将该地址分配给任何物理接口,主机可以利用此地址向自己发送 IPv6 数据包。在路由器等网络设备上,通常使用环回地址来建立路由协议的邻居。

未指定地址 (Unspedfied address )

未指定地址是全 0 地址,不能分配给接口。未指定地址被用作源地址以表示接口无IPv6地址,仅被用做源地址。

IPv4 mapped IPv6 address

映射IPv4地址的IPv6地址,用来帮助从IPv4迁移到IPv6,如在IPv6套接字上处理IPv4连接。使用前缀 ::ffff:0:0/96 (0:0:0:0:0:ffff:0:0/96),例如 ::ffff:192.0.2.124。注意,这里的文本表示方式略有不同,以便更容易在IPv6地址中嵌入32位IPv4地址。

IPv6多播地址

IPv6前缀ff00::/8用于标识组播组地址,希望接收多播流量的主机“加入”相关的多播组。多播地址有多种范围,如链接本地,站点,全局等。在IPv6中,加入和离开组的协议是MLD (Multicast Listener Discovery)。IPv6多播地址如下所示:

多播地址范围如下图:

Well-Known Multicast Addresses

Interface-local scope

Link-local scope

Site-local scope

多播地址示例:

  • IPv6标准为所有的NTP servers定义了组播组ID:0x101
  • 这个组ID可以与不同的范围值一起使用:

注意:

  • 临时分配的多播地址只有在定义的范围内才有意义。
  • 组播地址不应用作IPv6报文的源地址或出现在任何路由报头中。
  • node-local scope修改为interface-local scope

任播地址

任播地址的设计是为了在多个主机或路由器提供相同服务的情况下提供冗余和负载均衡。

IPv6没有为任播地址指定特殊前缀。IPv6任播地址与全球单播地址在同一个地址范围内,并且每个参与接口必须配置一个任播地址。在包含相同任播地址的接口所在的区域内,每台主机必须在路由表中作为单独的条目发布。

当发送方向某个任播地址发送多个报文时,由于路由表的不稳定或请求过程中的变化,报文可能会到达不同的目的地。如果有一系列的请求和应答,或者数据包必须被分片,这可能会导致问题。

RFC 4291规定的子网路由器的任播地址如下:

基本上,该地址看起来像一个常规的单播地址,带有指定子网的前缀和设置为全零的标识符。发送到这个地址的数据包将被发送到该子网的一台路由器上。所有路由器都需要支持它们有接口的子网的子网路由器任播地址。

保留子网任播地址可以有两种格式:

RFC 2526规定在每个子网内,最大的128个接口标识值将保留为子网任播地址分配。

Reserved anycast IDs

这种形式的任播地址和共享单播地址之间的主要区别是,在后者中,应用程序需要支持任播,而在前者中,如果可能的话,将避免这种支持。我们需要指导如何使用它和修改现有的有状态传输协议。

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值