IPV6学习笔记

目录

一.IPV6的简介

IPv4与IPv6的区别

地址空间的区别

地址表示的区别

拓展内容

路由效率的区别

自动配置的区别

安全性的区别

IPv6地址结构

IPv6地址分配与管理

本地单播地址(Unique Local Address, ULA)

IPv6自动配置与手动配置

无状态地址自动配置(SLAAC)

有状态地址配置(DHCPv6)

手动地址配置

IPv6邻居发现协议(NDP)

NDP的消息类型

NDP的工作流程

路由器发现

邻居发现和地址解析

重复地址检测(DAD)

邻居可达性检测

IPv6路由与路由表管理

IPv6路由协议

IPv6路由表的构成

IPv6路由表管理

路由选择和路由优先级

路由汇聚(Route Aggregation)


一.IPV6的简介

IPV6是互联网协议的第六版,也是目前最新的版本。

  • Ipv6也被称为IPNG协议也就是下一代的IP协议。
  • IPV6是当前主流的IP协议,是IPv4的升级版本。

  • IPv6的主要目标是解决IPv4的地址耗尽问题,并引入了一些新的特性和改进,以适应现代互联网的需求。

        为什么要用IPv6

  • 由于IPV4存在着地址数量有限
  • IPv4中的ARP、DHCP等必备协议均需采用广播的形式,对于网络性能有一定的消耗。

IPv4与IPv6的区别

地址空间的区别

  • IPv4地址空间:IPv4使用32位地址空间,这意味着总共可以支持大约42亿个唯一地址((2^{32})个)。随着互联网设备的急剧增加,IPv4地址已经几乎耗尽。

  • IPv6地址空间:IPv6使用128位地址空间,能够提供大约340万亿亿亿个地址((2^{128})个)。这不仅能够满足当前互联网设备的需求,还能适应未来的发展。

                IPV6地址据说可以给每一粒沙子都有一个IP地址。

地址表示的区别

  • IPv4:IPv4地址通常表示为四个十进制数,每个数用点分隔点分十进制,例如:192.168.0.1。

  • IPv6:IPv6地址表示为八组十六进制数,总长度为128比特,每组由冒号分隔,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。为了简化表示,可以省略前导零连续的零组,例如:2001:db8:85a3::8a2e:370:7334。

拓展内容

IPv6地址如何缩写

  1. 每组中的前导“0”都可以省略,所以上述地址可写为:
  2. FC00:0:130F:0:0:9C0:876A:130B。
  3. 地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替。只能出现一组。
  4. 需要注意的是,在一个IPv6地址中只能使用一次双冒号“::”
  5. 为了简化表示,IPv6允许以下简化规则:

  6. 前导零省略:每个组的前导零可以省略。例如,085a可以写成85a

  7. 连续的零组简化:一串连续的零可以用双冒号(::)替代,但这种替代在一个地址中只能出现一次。例如,2001:0db8:0000:0000:0000:0000:1428:57ab可以简化为2001:db8::1428:57ab

路由效率的区别

  • IPv4:IPv4的路由表会随着互联网规模的扩大而变得越来越复杂,这可能导致效率下降。

  • IPv6:IPv6引入了更高效的路由聚合方法,简化了路由表,提升了路由效率。

自动配置的区别

  • IPv4:IPv4通常依赖于DHCP(动态主机配置协议)来自动分配IP地址。

  • IPv6:IPv6支持无状态地址自动配置(SLAAC),使设备能够自动生成IP地址并进行网络连接,而不需要依赖DHCP。

安全性的区别

  • IPv4:IPv4本身不包含安全机制,通常依赖于外部协议(如IPsec)来提供安全性。

  • IPv6:IPv6内置了IPsec支持,增强了通信的安全性。

IPv6地址结构

IPv6地址的结构是理解和使用IPv6的基础。IPv6地址长度为128位,提供了大量的地址空间。与IPv4不同,IPv6采用十六进制表示,每16位(4个十六进制数字)用冒号分隔。

IPv6地址的标准格式为八组四位十六进制数,用冒号分隔,如下所示:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

IPv6地址有三种主要类型:

单播地址

任播地址

多播地址

每种类型用于不同的目的和通信模式。

单播地址用于标识单个网络接口。数据包发送到单播地址时,传输到指定的单个接口。单播地址包括以下几种:

  • 全球单播地址(Global Unicast Address, GUA):在全球范围内唯一,可以在互联网中路由。以2000::/3前缀开始。类似于IPv4中的公网IP

  • 链路本地地址(Link-Local Address, LLA):用于同一链路上的通信,不在路由器之间转发。以fe80::/10前缀开始。类似于局域网。

  • 本地单播地址(Unique Local Address, ULA):类似于IPv4的私有地址,在组织内部使用,不在全球互联网中路由。fc00::/7前缀开始。

任播地址分配给多个接口(通常位于不同的节点)。数据包发送到任播地址时,传输到距离发送者最近的接口。任播地址没有特定的前缀,可以与单播地址共享。

多播地址用于标识一组网络接口。数据包发送到多播地址时,传输到属于该组的所有接口。多播地址以ff00::/8前缀开始,具体应用包括:

  • 节点本地多播(Node-Local Multicast):仅在本地节点内部传递。

  • 链路本地多播(Link-Local Multicast):仅在本地链路上传递。

  • 站点本地多播(Site-Local Multicast):在站点内传递。

  • 组织本地多播(Organization-Local Multicast):在组织内传递。

  • 全球多播(Global Multicast):在全球范围内传递。

IPv6地址的前缀长度决定了网络的大小和结构。常见的前缀长度包括:

  • /64:标准子网前缀长度,常用于局域网和子网划分。

  • /48:常用于分配给企业或组织,进一步划分成多个/64子网。

  • /32:常用于分配给互联网服务提供商(ISP),进一步分配给客户。

全球单播地址由互联网号码分配局(IANA)管理,并通过区域互联网注册机构(RIR)分配。全球单播地址空间的主要前缀为2000::/3,包括大部分IPv6地址。

链路本地地址用于同一链路上的通信,不需要路由器参与。链路本地地址以fe80::/10前缀开始,通常由设备自动生成,确保每个链路上的设备都能相互通信。

本地单播地址用于组织内部网络,不在全球互联网中路由。ULA以fc00::/7前缀开始,具体细分为:

  • fc00::/8:保留未使用。

  • fd00::/8:常用于生成唯一的本地地址,结合随机生成的40位全局ID,确保唯一性。

IPv6地址分配与管理

IPv6地址分配与管理是确保网络高效、可靠运行的关键步骤。相比IPv4,IPv6的地址空间极为广阔,使得地址分配更加灵活和高效。

全球单播地址在全球范围内唯一,可以在互联网中路由。GUA主要用于设备之间的直接通信,确保设备在全球互联网中的可达性。

GUA地址以2000::/3前缀开始,包含以下几个部分:

  • 全局路由前缀(Global Routing Prefix):通常由互联网服务提供商(ISP)分配,用于标识特定的网络。

  • 子网ID(Subnet ID):由网络管理员分配,用于划分网络中的不同子网。

  • 接口标识符(Interface Identifier):通常由设备自动生成,标识网络中的具体设备。

分配流程:

  1. IANA分配:IANA将GUA地址块分配给区域互联网注册机构(RIR)。

  2. RIR分配:RIR将地址块分配给国家或地方的互联网注册机构(LIR),如ISP。

  3. LIR分配:ISP或LIR将地址块分配给最终用户或企业。

一个典型的GUA地址可能如下所示:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

在这个地址中:

  • 2001:0db8是全局路由前缀。

  • 85a3是子网ID。

  • 0000:0000:8a2e:0370:7334是接口标识符。

链路本地地址用于同一链路上的设备通信,不在路由器之间转发。LLA主要用于网络的初始配置、邻居发现和本地链路通信。

LLA地址以fe80::/10前缀开始,包含以下部分:

  • 前缀(Prefix):固定为fe80::/10

  • 接口标识符(Interface Identifier):通常由设备根据其硬件地址(MAC地址)自动生成。

设备在启动时会自动生成一个链路本地地址,以确保能够在本地链路上进行通信。这一过程通常采用EUI-64格式,通过扩展MAC地址生成接口标识符。

一个典型的LLA地址可能如下所示:

fe80::1c2d:3eff:fe4f:5678

在这个地址中:

  • fe80::是前缀。

  • 1c2d:3eff:fe4f:5678是根据设备MAC地址生成的接口标识符。

本地单播地址(Unique Local Address, ULA)

本地单播地址用于组织内部网络,不在全球互联网中路由。ULA类似于IPv4的私有地址,适用于不需要全球路由的内部通信。

ULA地址以fc00::/7前缀开始,通常细分为fd00::/8用于实际应用,包含以下部分:

  • 前缀(Prefix):固定为fd00::/8

  • 全局ID(Global ID):40位随机生成的唯一标识符,确保地址的全球唯一性。

  • 子网ID(Subnet ID):用于进一步划分网络内部的子网。

  • 接口标识符(Interface Identifier):标识具体设备,通常由设备自动生成。

ULA地址的全局ID部分通常通过随机生成器生成,以确保在不同组织之间的唯一性。这种方法避免了地址冲突。

一个典型的ULA地址可能如下所示:

fd12:3456:789a:0000:0000:8a2e:0370:7334

在这个地址中:

  • fd12:3456:789a是全局ID。

  • 0000是子网ID。

  • 0000:8a2e:0370:7334是接口标识符。

IPv6自动配置与手动配置

IPv6提供了比IPv4更灵活和更强大的地址配置机制,包括无状态地址自动配置(Stateless Address Autoconfiguration, SLAAC)和有状态地址配置(Stateful Configuration),如DHCPv6。理解这些机制有助于网络工程师更有效地管理网络。

无状态地址自动配置(SLAAC)

SLAAC是IPv6的一大特色,使得设备能够在没有DHCP服务器的情况下自动配置IPv6地址。这种机制极大地简化了网络的初始配置和维护。

工作原理:

  1. 链路本地地址生成:设备在启动时会生成一个链路本地地址(LLA),以便在本地链路上进行通信。LLA以fe80::/10前缀开始。

  2. 邻居发现协议(NDP):设备使用邻居发现协议(Neighbor Discovery Protocol, NDP)发送路由器请求消息(Router Solicitation, RS),请求网络上的路由器发送路由器通告消息(Router Advertisement, RA)。

  3. 接收RA消息:路由器通过RA消息提供网络前缀信息。设备根据这些信息生成全球单播地址或本地单播地址。

  4. 生成接口标识符:设备使用EUI-64格式或随机生成器生成接口标识符。

  5. 重复地址检测(DAD):设备执行重复地址检测,确保新生成的地址在网络中是唯一的。

优点:

  • 无需手动配置:设备能够自动生成和配置IPv6地址,减少了人为错误。

  • 灵活性高:适用于各种规模的网络,从小型家庭网络到大型企业网络。

假设路由器通告的前缀为2001:db8:1:2::/64,设备生成的全球单播地址可能如下所示:

2001:db8:1:2:abcd:efff:fe12:3456

有状态地址配置(DHCPv6)

DHCPv6(Dynamic Host Configuration Protocol for IPv6)是一种有状态配置机制,由DHCP服务器分配IPv6地址和其他网络配置参数。DHCPv6类似于IPv4的DHCP,但针对IPv6进行了扩展和改进。

工作原理:

  1. 请求地址:设备发送DHCP请求消息,寻求网络上的DHCP服务器。

  2. 分配地址:DHCP服务器响应请求,分配一个IPv6地址及其他配置参数(如DNS服务器、NTP服务器等)。

  3. 续约和释放:设备定期向DHCP服务器发送续约请求,确保地址的有效性。如果设备不再需要地址,会发送释放消息。

优点:

  • 集中管理:管理员可以集中管理网络地址分配和其他配置参数,提高网络的可控性。

  • 高级配置:适用于需要更复杂配置的网络环境,如大型企业网络。

假设DHCP服务器分配的地址为2001:db8:1:2:abcd:efff:fe12:3456,同时提供DNS服务器2001:db8::1

手动地址配置

在某些情况下,网络工程师可能需要手动配置IPv6地址。手动配置提供了最大的控制权,但也增加了配置复杂性和出错的风险。

步骤:

  1. 选择合适的地址前缀:根据网络规划,选择合适的IPv6地址前缀。

  2. 分配接口标识符:根据设备的硬件地址或手动指定接口标识符。

  3. 配置地址:在设备的网络接口上配置IPv6地址。

  4. 配置其他参数:手动配置其他必要的网络参数,如默认网关、DNS服务器等。

假设需要手动配置设备的IPv6地址为2001:db8:1:2::1,可以通过以下命令在Linux系统上配置:

sudo ip -6 addr add 2001:db8:1:2::1/64 dev eth0
sudo ip -6 route add default via 2001:db8:1:2::1

IPv6邻居发现协议(NDP)

IPv6邻居发现协议(Neighbor Discovery Protocol, NDP)是IPv6的重要组成部分,负责在同一链路上的设备之间发现邻居、解析地址、维护邻居表等功能。NDP相当于IPv4中的ARP(地址解析协议),但功能更强大和复杂。

NDP主要包括以下几个关键功能:

  1. 邻居发现:确定同一链路上的其他设备,并了解其链路层地址。

  2. 地址解析:将IPv6地址解析为对应的链路层地址。

  3. 重复地址检测(DAD):确保一个链路上的IPv6地址是唯一的。

  4. 路由器发现:发现链路上的路由器,并获取前缀信息和其他参数。

  5. 无状态地址自动配置(SLAAC):自动配置IPv6地址和其他参数。

  6. 邻居可达性检测:确保邻居设备在链路上是可达的。

NDP的消息类型

NDP定义了五种ICMPv6消息类型,用于实现其功能:

  1. 路由器请求(Router Solicitation, RS)

    • 发送方:主机

    • 用途:请求链路上的路由器发送路由器通告消息。

    • 典型场景:主机启动时发送RS消息,主动获取网络配置。

  2. 路由器通告(Router Advertisement, RA)

    • 发送方:路由器

    • 用途:提供前缀信息、地址自动配置参数和其他网络配置参数。

    • 典型场景:路由器周期性发送RA消息,或响应RS消息。

  3. 邻居请求(Neighbor Solicitation, NS)

    • 发送方:主机或路由器

    • 用途:请求邻居设备的链路层地址,或进行重复地址检测。

    • 典型场景:主机想要与邻居通信时发送NS消息,获取其MAC地址。

  4. 邻居通告(Neighbor Advertisement, NA)

    • 发送方:主机或路由器

    • 用途:响应邻居请求,或通告链路层地址变更。

    • 典型场景:主机收到NS消息后,发送NA消息通告自己的MAC地址。

  5. 重定向(Redirect)

    • 发送方:路由器

    • 用途:指导主机使用更合适的路由器进行通信。

    • 典型场景:路由器发现主机发送数据包路径不优化时,发送Redirect消息。

NDP的工作流程

NDP在IPv6网络中通过一系列交互消息,实现邻居发现和通信。以下是NDP的主要工作流程:

路由器发现
  1. 主机发送RS消息:主机启动后,向链路发送RS消息,询问是否有路由器存在。

  2. 路由器发送RA消息:路由器收到RS消息后,发送RA消息,提供前缀信息、MTU大小和其他配置参数。

  3. 主机接收RA消息:主机接收到RA消息后,根据前缀信息和其他参数,生成全球单播地址,并进行无状态地址自动配置。

邻居发现和地址解析
  1. 主机发送NS消息:主机需要与邻居通信时,发送NS消息,请求邻居的链路层地址。

  2. 邻居发送NA消息:邻居收到NS消息后,发送NA消息,提供自己的链路层地址。

  3. 主机更新邻居表:主机接收到NA消息后,更新本地邻居表,完成地址解析。

重复地址检测(DAD)
  1. 主机生成IPv6地址:主机根据前缀信息和接口标识符生成IPv6地址。

  2. 主机发送NS消息:主机发送NS消息,查询该地址是否已经被占用。

  3. 检测结果:如果没有收到响应,说明地址未被占用;如果收到响应,说明地址已被占用,需要重新生成地址。

邻居可达性检测
  1. 主机发送NS消息:主机定期发送NS消息,检测邻居是否仍然可达。

  2. 邻居发送NA消息:邻居收到NS消息后,发送NA消息,确认自己是可达的。

  3. 主机更新邻居状态:主机根据收到的NA消息,更新邻居的可达性状态。

IPv6路由与路由表管理

IPv6路由和路由表管理是确保数据包在IPv6网络中正确传输的关键。理解IPv6路由协议和路由表的构成及管理方法,对网络工程师而言至关重要。

IPv6路由协议

IPv6支持多种路由协议,用于确定数据包的最佳路径和维护路由表。以下是IPv6常见的路由协议:

  1. 静态路由

    • 特点:手动配置,管理员直接指定目的网络和下一跳路由器。

    • 适用场景:适用于网络结构稳定且路由信息变化不频繁的情况。

  2. RIPng(Routing Information Protocol next generation)

    • 特点:基于距离向量的路由协议,用于小型网络。

    • 适用场景:适合小规模网络,网络拓扑变化频繁的环境。

  3. OSPFv3(Open Shortest Path First version 3)

    • 特点:链路状态路由协议,支持大规模网络和分层网络设计。

    • 适用场景:适合大规模企业网络或ISP网络,具有高度可扩展性和快速收敛性。

  4. BGP(Border Gateway Protocol)

    • 特点:路径矢量路由协议,主要用于互联网核心路由器之间的路由交换。

    • 适用场景:适合大规模的互联网核心路由器,提供高度灵活性和策略控制。

IPv6路由表的构成

IPv6路由表记录了数据包的目的地址与下一跳路由器之间的映射关系。路由表的构成包括以下重要部分:

  1. 前缀:目的网络的IPv6地址前缀。

  2. 子网掩码长度(Prefix Length):指定前缀的长度,通常是/64、/48等。

  3. 下一跳:数据包发送到目的网络所需经过的下一跳路由器的IPv6地址。

  4. 接口:数据包发送到下一跳的出接口。

IPv6路由表管理

IPv6路由表管理包括路由的添加、删除、修改和监控等操作,确保网络中的路由信息及时更新和正确配置。

在Linux系统中,可以使用ip route命令管理IPv6路由表:

  • 添加路由

sudo ip -6 route add 2001:db8::/32 via 2001:db8::1 dev eth0

2001:db8::/32网络的数据包发送到2001:db8::1的下一跳路由器,出接口为eth0

  • 删除路由

sudo ip -6 route del 2001:db8::/32

删除2001:db8::/32网络的路由条目。

  • 显示路由表

ip -6 route show

显示当前系统的IPv6路由表。

路由选择和路由优先级

在IPv6网络中,当存在多条适用于同一目的地的路由时,路由选择通常基于以下优先级顺序:

  1. 最长前缀匹配:选择与目的地址最匹配的前缀。

  2. 优先级:静态路由优先于动态路由;具体协议的路由优先级可能有所不同。

路由汇聚(Route Aggregation)

路由汇聚是优化IPv6路由表的重要技术,通过将多个具有相同下一跳的路由合并为一个较大的路由表条目,减少路由表的条目数量,提高路由表的查找效率和网络性能。

此为学习内容,

来源公众号:网络技术干货圈              

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值