IPv4与IPv6详解.docx
- 文档编号:9575812
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:19
- 大小:119.98KB
IPv4与IPv6详解.docx
《IPv4与IPv6详解.docx》由会员分享,可在线阅读,更多相关《IPv4与IPv6详解.docx(19页珍藏版)》请在冰豆网上搜索。
IPv4与IPv6详解
IPV4
联网协议(InternetProtocol)是规范计算机网络中数据传送的一套协议。
目前使用的是IPv4,IPv6在试验阶段。
TCP/IP协议栈(按TCP/IP参考模型划分)
应用层
FTP
SMTP
HTTP
...
传输层
TCP
UDP
网络层
IPICMP
ARP
链路层
以太网
令牌环
FDDI
...
地址格式
IPv4使用32位地址,因此最多可能有4,294,967,296(=232)个地址。
另一方面,目前还并非很流行的IPv6使用的128位地址所采用的位址记数法,在IPv4也有人用,但使用范围更少。
过去IANAIP地址分为A,B,C,D4类,把32位的地址分为两个部分:
前面的部分代表网络地址,由IANA分配,后面部分代表局域网地址。
如在C类网络中,前24位为网络地址,后8位为局域网地址,可提供254个设备地址(因为有两个地址不能为网络设备使用:
255为广播地址,0代表此网络本身)。
网络掩码(Netmask)限制了网络的范围,1代表网络部分,0代表设备地址部分,例如C类地址常用的网络掩码为255.255.255.0。
一些特别的IP地址段:
127.x.x.x给本机地址使用。
224.x.x.x为多播地址段。
255.255.255.255为通用的广播地址。
10.x.x.x,172.16.x.x和192.168.x.x供本地网使用,这些网络连到互连网上需要对这些本地网地址进行转换。
但由于这种分类法会大量浪费网络上的可用空间,所以新的方法不再作这种区分,而是把用者需要用的位址空间,以2的乘幂方式来拨与。
例如,某一网络只要13个ip位址,就会把一个16位址的区段给他。
假设批核了61.135.136.128/16的话,就表示从61.135.136.129到61.135.136.142的网址他都可以使用。
IP包长
IP包由首部(header)和实际的数据部分组成。
数据部分一般用来传送其它的协议,如TCP,UDP,ICMP等。
数据部分最长可为65515字节(Byte)(=2xx16-1-最短首部长度20字节)。
一般而言,低层(链路层)的特性会限制能支持的IP包长。
例如以太网(Ethernet)协议,有一个协议参数,即所谓的最大传输单元(MaximumTransferUnit,MTU),为1518字节,以太网的帧首部使用18字节,剩给整个IP包(首部+数据部分)的只有1500字节。
还有一些底层网络只能支持更短的包长。
这种情况下,IP协议提供一个分割(fragment)的可选功能。
长的IP包会被分割成许多短的IP包,每一个包中携带一个标志(Fragmentid)。
发送方(比如一个路由器)将长IP包分割,一个一个发送,接送方(如另一个路由器)按照相应的IP地址和分割标志将这些短IP包再组装还原成原来的长IP包。
IP路由
Ipv4并不区分作为网络终端的主机(host)和网络中的中间设备如路由器中间的差别。
每台电脑可以即做主机又做路由器。
路由器用来联结不同的网络。
所有用路由器联系起来的这些网络的总和就是互联网。
IPv4技术即适用于局域网(LAN)也适用于广域网。
一个IP包从发送方出发,到接送方收到,往往要穿过通过路由器连接的许许多多不同的网络。
每个路由器都拥有如何传递IP包的知识,这些知识记录在路由表中。
路由表中记录了到不同网络的路径,在这儿每个网络都被看成一个目标网络。
路由表中记录由路由协议管理,可能是静态的记录比如由网络管理员写入的,也有可能是由路由协议动态的获取的。
有的路由协议可以直接在IP协议上运行。
常用的路由协议有
路由信息协议(RoutingInformationProtocol,RIP),
开放式最短路径优先协议,OpenShortestPathFast,OSPF),
中介系统对中介系统协议(IntermediateSystem–IntermediateSystem,IS-IS),
边界网关协议(BorderGatewayProtocol,BGP).
在网络负荷很重或者出错的情况下,路由器可以将收到的IP包丢弃。
在网络负荷重的时候,同样一个IP包有可能由路由器决定走了不同的路径。
路由器对每一个IP包都是单独选择路由的。
这也提高了IP通信的可靠性。
但单是IP层上的包传输,并不能保证完全可靠。
IP包可能会丢失;可能会有重复的IP包被接受方收到;IP包可能会走不同的路径,不能保证先发的先到;接受方收到的可能是被分割了的IP包。
在IP之上再运行TCP协议则解决这些缺点提供了一个可靠的数据通路。
ICMP
互联网控制消息协议(InternetControlMessagesProtocol,ICMP)用于查错和控制(如),是IP协议不可能缺少的帮手。
几乎任何的IP协议的实施(Implementation)都伴随一个ICMP协议的实施。
ICMP协议实现在IP之上,即ICMP包是作为IP的数据部分来传送的。
ICMP的一个重要的应用是网络拥塞控制:
路由器丢弃一个IP包时,一般会用ICMP发一个消息给这个IP包的原发送者,原发送者可以相应的降低IP包的发送频率,以降低或避免IP包再被丢弃的可能性。
ICMP的另一个重要的应用在于,将传送ICMP消息的IP包禁止分割位(Don'tFragment-Bit)设置上,就可以利用ICMP的来测量一段网络的最大传输单元(MTU)。
IPOE
Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议),卫星链路等等。
局域网中最常用的是以太网。
一个用于IP包的以太网数据帧,在IP包首部前有一个14字节的以太网帧首部,在IP数据部分后添加了一个32位(4字节)的CRC校验。
除了1518字节的最大传输单元(MTU)限制外,以太网还有最小传输单元的限制:
总帧长不能小于64字节。
如果IP包太短,比如IP数据部分短于26字节,那么后面会添0(Padding),这时IP首部中的'包长度'指示了真正的包长。
以太网使用48位的地址。
每个以太网网卡都有一个独一无二的48位的硬件地址。
所有的位均为1的地址是以太网广播地址。
发送数据的以太网网卡必须知道数据接送方的以太网地址才能把数据发给它。
地址解析协议ARP(AddressResolutionProtocol)用于将IP地址转换成以太网地址。
每台计算机上都有一个ARP列表,里面存储了以太网中不同的IP地址与以太网地址的对应关系。
如果一台计算机发现某个目标IP地址没有对应的以太网地址,它会发一个ARP请求(Request)到以太网中询问,拥有该IP地址的计算机就会发一个ARP应答(Reply)来通知它自己的以太网地址。
IP包首部格式
IPv4首部一般是20字节长。
在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。
IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)
0
4
8
12
16
19
24
31
版本
首部长度
服务类型
长度
认证
标志
段偏移量
TTL
协议
校验和
源IP地址
目的IP地址
选项...
IP包头字段说明
版本:
4位(0110),指定IP协议的版本号。
包头长度(IHL):
4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。
由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。
IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5(5x4=20字节)。
就是说,它表示的是包头的总字节数是4字节的倍数。
服务类型:
定义IP协议包的处理方法,它包含如下子字段
过程字段:
3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:
0(正常)~7(网络控制)
延迟字段:
1位,取值:
0(正常)、1(期特低的延迟)
流量字段:
1位,取值:
0(正常)、1(期特高的流量)
可靠性字段:
1位,取值:
0(正常)、1(期特高的可靠性)
成本字段:
1位,取值:
0(正常)、1(期特最小成本)
未使用:
1位
长度:
IP包的总长
认证:
标志:
是一个3位的控制字段,包含:
保留位:
1位
不分段位:
1位,取值:
0(允许数据报分段)、1(数据报不能分段)
更多段位:
1位,取值:
0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)
段偏移量:
当数据分组时,它和更多段位(MF,Morefragments)进行连接,帮助目的主机将分段的包组合。
TTL:
表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。
协议:
8位,这个字段定义了IP数据报的数据部分使用的协议类型。
常用的协议及其十进制数值包括ICMP
(1)、TCP(6)、UDP(17)。
校验和:
16位,是IPv4数据报包头的校验和。
源IP地址:
目的IP地址:
高层协议
IP是TCP/IP参考模型中网络层的核心协议。
在IP之上有许多高层协议。
重要的如传输层协议TCP和UDP,应用层的域名服务协议DNS等。
过去和未来
IPv4从出生到如今几乎没什么改变的生存了下来。
1983年TCP/IP协议被ARPAnet采用,直至发展到后来的互联网。
那时只有几百台计算机互相联网。
到1989年联网计算机数量突破10万台,并且同年出现了1.5Mbit/s的骨干网。
因为IANA把大片的地址空间分配给了一些公司和研究机构,90年代初就有人担心10年内IP地址空间就会不敷用,并由此导致了IPv6的开发。
IPV6
IPv6是互联网协议的第六版;最初它在IETF'sIPng选取过程中胜出时称为互联网下一代协议(IPng)。
IPv6准备取代现有标准,IPv4。
IPv4只支持大概40亿(4×109)个网络地址,而IPv6支持3.4×1038个。
这等价于在地球上每平方英寸有4.3×1020地址(6.7×1017地址/平方米)。
预计在2025年以前IPv4都会被支持,以便给新协议的修正留下足够的时间。
促使Ipv6形成的主要原因是网络空间的匮乏,尤其是在高速发展的亚洲国家例如印度和中国。
参考IPv4addressexhaustion这篇文章了解更多这方面的内容。
但随着NAT的引入这已经不是很大的问题。
现在推动IPv6发展的主要动力是新的用途,像移动性,服务质量,机密性的扩展等。
IPv6是被正式广泛使用的第二版互联网协议。
(IPv5不是IPv4的继承,而是实验性的面向流的数据流协议,用来对声音,图像等提供支持。
)IPv6的计划是建立未来互联网扩充的基础。
虽然IPv6十年前就已被IETF指定作为IPv4的下一代(在1994年),在世界范围内使用IPv6部署的公众网与IPv4相比还非常的少。
IPv6编址
从IPv4到IPv6最显著的变化就是网络地址的长度。
RFC2373和RFC2374定义的IPv6地址,就像下面章节所描述的,有128位长;IPv6地址的表达形式一般采用32个十六进制数。
IPv6中可能的地址有2128≈3.4×1038个.也可以想象为1632个因为32位地址每位可以取16个不同的值(参考组合数学)。
在很多场合,IPv6地址由两个逻辑部分组成:
一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。
IPv6地址表示
IPv6地址为128位长但通常写作8组每组四个十六进制数的形式。
例如:
2001:
0db8:
85a3:
08d3:
1319:
8a2e:
0370:
7344是一个合法的IPv6地址。
如果四个数字都是零,可以被省略。
例如:
2001:
0db8:
85a3:
0000:
1319:
8a2e:
0370:
7344等价于2001:
0db8:
85a3:
:
1319:
8a2e:
0370:
7344遵从这些规则,如果因为省略而出现了两个以上的分号的话,可以压缩为一个,但这种零压缩在地址中只能出现一次。
因此:
2001:
0DB8:
0000:
0000:
0000:
0000:
1428:
57ab2001:
0DB8:
0000:
0000:
0000:
:
1428:
57ab2001:
0DB8:
0:
0:
0:
0:
1428:
57ab2001:
0DB8:
0:
:
0:
1428:
57ab2001:
0DB8:
:
1428:
57ab都使合法的地址,并且他们是等价的。
但2001:
:
25de:
:
cade是非法的。
(因为这样会使得搞不清楚每个压缩中有几个全零的分组)同时前导的零可以省略,因此:
2001:
0DB8:
02de:
:
0e13等价于2001:
DB8:
2de:
:
e13如果这个地址实际上是IPv4的地址,后32位可以用10进制数表示;因此:
ffff:
192.168.89.9等价于:
:
ffff:
c0a8:
5909,但不等价于:
:
192.168.89.9和:
:
c0a8:
5909。
ffff:
1.2.3.4格式叫做IPv4映射地址,是不建议使用的。
而:
:
1.2.3.4格式叫做IPv4一致地址。
IPv4地址可以很容易的转化为IPv6格式。
举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:
0000:
0000:
0000:
0000:
0000:
874B:
2B34或者:
:
874B:
2B34。
同时,还可以使用混合符号(IPv4-compatibleaddress),则地址可以为:
:
135.75.43.52。
IPv6封包
IPv6封包由两个主要部分组成:
头部和负载。
包头是包的前40字节并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20位,QoS服务质量控制),负载长度(16位),下一个头部(用于向后兼容性),和跳段数限制(8位,生存时间)。
后面是负载,至少1280字节长,或者在可变MTU(最大传输单元)大小环境中这个值为1500字节。
负载在标准模式下最大可为65535字节,或者在扩展包头的"jumbopayload"选项进行设置。
IPv6曾有两个有着细微差别的版本;在RFC1883中定义的原始版本(现在废弃)和RFC2460中描述的现在提议的标准版本。
两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。
其他的区别都是微不足道的。
分段(Fragmentation)只在IPv6的主机中被处理。
在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。
IPv6和域名系统
IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录)(类似的IPv4表示为A记录Arecords);反向解析在ip6.arpa(原先ip6.int)下进行,在这里地址空间为半字节16进制数字格式。
这种模式在RFC3596给与了定义。
AAAA模式是IPv6结构设计时的两种提议之一。
另外一种正向解析为A6记录并且有一些其他的创新像二进制串标签和DNAME记录等。
RFC2874和它的一些引用中定义了这种模式。
AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂:
•A6记录允许一个IPv6地址在分散于多个记录中,或许在不同的区域;举例来说,这就在原则上允许网络的快速重编号。
•使用域名系统记录委派地址被DNAME记录(类似于现有的CNAME,不过是重命名整棵树)所取代。
•一种新的叫做比特标签的类型被引入,主要用于反向解析。
2002年8月的RFC3363中对AAAA模式给与了有效的标准化(在RFC3364有着对于两种模式优缺点的更深入的讨论)。
缺点:
需要在整个互联网和它所连接到的设备上建立对IPv6的支持
从IPv4访问时的转换过程中,在网关路由器(IPv6<-->IPv4)还是需要一个IPv4地址和一些NAT(=共享的IP地址),增加了它的复杂性,还意味着IPv6许诺的巨大的空间地址不能够立刻被有效的使用。
遗留的结构问题,例如在对IPv6multihoming支持上一致性的匮乏。
转换机制
直到IPv6获得广泛的使用和路由下部构造的支持之前,还是需要一种机制来在IPv4网中使用IPv6。
需要做的是:
在双协议栈节点间配置静态IPv6-in-IP信道。
6to4,一种自动的非对称的隧道机制。
这些隧道通过将IPv6包包装在IPv4包中,这些包头的协议字段值为41,因此叫做proto-41。
类似的,ISATAP允许IPv6包在下层组织都是IPv4的网络中传输。
它也使用协议号41。
当使用NAT(网络地址转换)设备的网络使用IPv6时,大多数并没有对proto-41进行正确的转发,可以使用Teredo协议在IPv4中基于UDP包装IPv6。
还可以使用IPv6-to-IPv4和IPv6-to-IPv6代理,尽管它是在应用层的(例如HTTP)。
IPv6报头结构以及与IPv4的比较
面比较一下两种报头。
Version 字段在两种协议中没有变化。
IPv6丢弃了IPv4的InternetHeaderLength 、TypeofService 、Identification 、Flags、FragmentOffset 和HeaderChecksum 字段。
TotalLength、TimetoLive 和Protocol 字段在IPv6中有了新名字,功能稍微进行了重新定义。
IPv4中的Option字段已从报头中消失,改为Extension功能。
最后,IPv6加入了两个新字段:
TrafficClass和FlowLabel。
分别介绍一下IPv6包的每个报头字段。
Version:
Version字段的长度仍是4位,它指明了协议版本号。
TrafficClass:
这个8位字段可以为包赋予不同的类别或优先级。
它类似IPv4的TypeofService字段,为差异化服务留有余地。
FlowLabel:
FlowLabel字段是IPv6的新增字段。
源节点使用这个20位字段,为特定序列的包请求特殊处理(效果好于尽力转发)。
实时数据传输如语音和视频可以使用FlowLabel字段以确保QoS。
PayloadLength:
这个16位字段表明了有效载荷长度。
与IPv4包中的TotalLength字段不同,这个字段的值并未算上IPv6的40位报头。
计算的只是报头后面的扩展和数据部分的长度。
因为该字段长16位,所以能表示高达64KB的数据有效载荷。
如果有效载荷更大,则由超大包(jumbogram)扩展部分表示。
NextHeader:
这个8位字段类似IPv4中的Protocol字段,但有些差异。
在IPv4包中,传输层报头如TCP或UDP始终跟在IP报头后面。
在IPv6中,扩展部分可以插在IP报头和传输层报头当中。
这类扩展部分包括验证、加密和分片功能。
NextHeader字段表明了传输层报头或扩展部分是否跟在IPv6报头后面。
HopLimit:
这个8位代替了IPv4中的TTL字段。
它在经过规定数量的路由段后会将包丢弃,从而防止了包被永远转发。
包经过一个路由器,HopLimit字段的值就减少一个。
IPv4使用了时值(timevalue),每经过一个路由段就从TTL字段减去一秒。
IPv6用段值(hopvalue)换掉了时值。
SourceAddress:
该字段指明了始发主机的起始地址,其长度为128位。
DestinationAddress:
该字段指明了传输信号的目标地址,其长度为128位。
网络人员可能会惊讶地发现校验和与分片字段从IPv6的报头当中消失了。
丢弃包的报头校验和是为了提高路由效率。
虽然包报头仍有可能出现错误,新协议的设计人员却认为这种风险可以接受,尤其是考虑到IP层的上下层:
数据链路层和传输层会检查错误。
至于分片,IPv6确实允许对包进行分割,但这过程在报头的扩展部分而不是报头本身进行。
此外,IPv6包只能由源节点进行分割、目标节点进行重新组装:
不允许路由器介入进来对包进行分割或重新组装。
这种分片特性的目的在于降低传输中的处理开销,而且假定如今网络的帧大小足够大,大多数包不需要分片。
IPv6网络的协议安全和安全机制
1.协议安全
在协议安全层面上,IPv6全面支持认证头(AH)认证和封装安全有效负荷(ESP)信息安全封装扩展头。
AH认证支持hmac_md5_96、hmac_sha_1_96认证加密算法,ESP封装支持DES_CBC、3DES_CBC以及Null等三种算法。
2.网络安全
① 端到端的安全保证。
在两端主机上对报文进行IPSec封装,中间路由器实现对有IPSec扩展头的IPv6报文进行透传,从而实现端到端的安全。
② 对内部网络的保密。
当内部主机与因特网上其他主机进行通信时,为了保证内部网络的安全,可以通过配置的IPSec网关实现。
因为IPSec作为IPv6的扩展报头不能被中间路由器而只能被目的节点解析处理,因此IPSec网关可以通过IPSec隧道的方式实现,也可以通过IPv6扩展头中提供的路由头和逐跳选项头结合应用层网关技术来实现。
后者的实现方式更加灵活,有利于提供完善的内部网络安全,但是比较复杂。
③ 通过安全隧道构建安全的VPN。
此处的VPN是通过IPv6的IPSec隧道实现的。
在路由器之间建立IPSec的安全隧道,构成安全的VPN是最常用的安全网络组建方式。
IPSec网关的路由器实际上就是IPSec隧道的终点和起点,为了满足转发性能的要求,该路由器需要专用的加密板卡。
④ 通过隧道嵌套实现网络安全。
通过隧道嵌套的方式可以获得多重的安全保护。
当配置了IPSec的主机通过安全隧道接入到配置了IPSee网关的路由器,并且该路由器作为外部隧道的终结点将外部隧道封装剥除时,嵌套的内部安全隧道就构成了对内部网络的安全隔离。
3.其他安全保障
IPSec为网络数据和信息内容的有效性、一致性以及完整性提供了保证,但是数据网络的安全威胁是多层面的,它们分布在物理层、数据链路层、网络层、传输层和应用层等各个部分。
对于物理层的安全隐患,可以通过配置冗余设备、冗余线路、安全供电、保障电磁兼容环境以及加强安全管理来防护。
对于物理层以上层面的安全隐患,可以采用以下防护手段:
通过诸如AAA、TACACS+、RADIUS等安全访问控制协议控制用户对网络的访问权限来防止针对应用层的攻击;通过MAC地址和IP地址绑定、限制每端口的MAC地址使用数量、设立每端口广播包流量门限、使用基于端口和VLAN的ACL、建立安全用户隧道等来防范针对二层网络的攻击;通过进行路由过滤、对路由信息的加密和认证、定向组播控制、提高路由收敛速度、减轻路由振荡的影响等措施来加强三层网络的安全性。
路由器和交换机对IPSec的完善支持保证了网络数据和信息内容的有效性、一致性以及完整性,并且为网络安全提供了诸多解决办法。
IPsec:
IP层协议安全结构
IPsec在IP层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。
IPsec用来保护一条或多条主机与主机间、安全网关与安全网
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IPv4 IPv6 详解