一、IPv6
(一)IPv6的定义和省略写法
IPv6是IPv4的新版本,其采用更大的地址空间,从而解决IPv4地址耗尽的问题,其优点有由32位扩充到128位,大大扩展了容量;实现了真正地无状态地址自动配置;报文格式也大大地简化,极大的减少了路由器或交换机对报头的处理开销,提高了效率;加强了对扩展报头和选项部分的支持;流标签能够为数据包所属类型提供个性化的服务,并保障了业务的服务质量。
IPv6的地址长度为128位,通常写为8组,每组4个十六进制数,且中间用:隔开,例如下图的IPv6地址为:240e:369:c328:8000:2040:b04:86dd:b900。
1、可以省略地书写IPv6地址,首0可省略,即起始的0不用写出来,比如上图的IPv6地址240e:369:c328:8000:2040:b04:86dd:b900其中的第2段、第6段省略了起始的0,即原本的IPv6地址为240e:0369:c328:8000:2040:0b04:86dd:b900。
2、另外由全0组成的一段或多段的单个连续字符串可用一个双冒号::代替,且双冒号只能使用一次,例如IPv6地址12AB:0000:0000:CD30:0000:0000:0000:0000/60可简写成:12AB:0:0:CD30::/60。
(二)IPv6地址类型
IPv6地址常见类型可分为三种,分别是单播地址、组播地址和任意播地址。
1、单播地址
用于表示单台设备的地址,即点对点通信,单播地址分为全球单播地址和本地链路单播地址。
全球单播地址是全球唯一的,当前分配的全球单播地址的前缀为001(十六进制为2xxx::/4或3xxx::/4)。本地链路单播地址用于有些单位的网络使用TCP/IP协议但未连接到互联网这种情况,连接在这种网络上的主机可以通过使用这种本地地址进行通信,但不能与互联网上其它的主机进行通信,IPv6本地链路单播地址的前缀为1111 1110 10(十六进制为FE80::/10)。
2、多播地址
一对多通信,即多个设备组成一个多播组,一个多播数据中一个单播地址作为它的源地址,一个多播地址作为它的目的地址,多播地址的前缀为1111 1111(十六进制为FE80::/10),例如FF01::101就是个多播地址。
3、任意播地址
任意播地址是IPv6中新添加的类型,可以使相同的地址可以驻留在提供相同服务的一台或多台设备中,传播的终点是一组计算机,但数据报只交付其中一个,通常是距离最近的一个(路由器总选择到达最近的或代价最低的服务器路由),任意播地址的组成形式是子网前缀+全0。
另外IPv6地址类型还有未指定类型,即特殊地址不能作为目的地址,只能为主机作为源地址使用,且只有一个未指定地址,它为0:0:0:0:0:0:0:0(十六进制为::/128)。
分配 | 前缀(二进制) | 占地址空间的比例 |
全球单播地址 | 001 | 1/8 |
为NSAP地址保留 | 0000 001 | 1/128 |
为IPX地址保留 | 0000 010 | 1/128 |
保留 | 0000 0000 | 1/256 |
组播地址 | 1111 1111 | 1/256 |
链路本地单播地址 | 1111 1110 10 | 1/1024 |
站点本地单播地址 | 1111 1110 11 | 1/1024 |
(三)IPv6数据报
IPv6数据报由首部和有效载荷组成。
1、版本
长度为6位,标识数据报的IP版本号,IP协议版本号为6。
2、流量类型(通信量类)
长度为8位,区别不同优先级、类型的IPv6数据报文,它与IPv4中的ToS字段类似,用于支持QoS(QoS用于解决网络延迟和阻塞问题)。
3、数据流标签
长度为20位,用于标记需要IPv6路由器进行特殊处理的数据流。
4、有效负载长度
长度为16位,指明除首部以外的字节数(扩展首部也算在有效负载长度内),也包括上层协议数据单元(PDU)。
5、下一个首部
长度为8位,当IPv6数据报没有扩展首部时,其作用与IPv4的协议字段一样,即指出首部后面的数据应交付给IP层上的哪个高层协议,即是TCP还是UDP。当扩展首部时,其作用是标识扩展报头的下一个首部类型。
6、跳数限制
长度为8位,用于防止数据报在网络中一直转发,它与IPv4的TTL字段一样,每经一次转发,该字段减1,减到0时丢弃该包。
7、源地址和目的地址
都为128位,源地址是数据报发送端的IP地址,目的地址是数据报接收端的IP地址。
IPv6所带来的主要变化是:
(1) 更大的地址空间(采用128位的地址);
(2) 灵活的首部格式;
(3) 改进的选项;
(4) 支持即插即用;
(5) 支持资源的预分配;
(6) IPv6首部改为8字节对齐。
二、网络地址转换
NAT,即网络地址转换,用于替换数据报文中的IP地址,一般是将私有地址转换为公有地址来实现访问公网的目的,即在专用网连接到互联网的路由器上安装NAT软件,称为NAT路由器,它至少有一个有效的外部全球IP地址,NAT路由器使所有使用本地地址的主机在与外界通信时,在其上将本地地址转换为全球IP地址从而连接到互联网。
(一)基本NAT
基本NAT分为静态NAT和动态NAT,静态中内、外网IP地址映射是固定的。
(二)NAPT
使用端口号的NAT称为NAPT,即网络地址与端口转换,其中多对一地址转换或地址复用,NAPT同时映射IP地址和端口号,来自不同内部地址的数据报的源地址映射到同一个外部地址,端口号被转换为该地址的不同端口号,即NAPT出口数据报中的内网IP地址被NAT的公网IP地址代替,而出口分组的端口被另一个高端端口代替,外网进来的数据报根据对应关系进行转换。
通过使用NAPT将所有地址映射到一个外部IP地址,从而隐藏了内部网络的IP配置,节省了资源。
三、虚拟专用网
虚拟专用网VPN利用公网的互联网作为本机构各专用网之间的通信载体,内部使用互联网的专用地址,一个VPN至少要有一个路由器具有合法的全球IP地址,这样才能和本系统的另一个VPN通过互联网进行通信。
由两个场所的内部网络所构成的虚拟专用网VPN称为内联网,即内联网VPN,表示这两个场所属于一个机构;若有些机构需要外部机构参加,即称为外联网VPN。
远程接入虚拟专用网络(远程接入VPN)允许个人用户使用连接到互联网的计算机或其他受支持的iOS或Android设备,从远程位置连接到网络。
四、路由基础
(一)路由选择算法
根据路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,可分为静态路由选择策略(非自适应路由选择)和动态路由选择策略(自适应路由选择)。
两种路由对比:静态路由简单且开销较小,但不能及时适应网络状态的变化,可以说对于较简单的小型网络网络适合采用静态路由;而动态路由能够适应网络状态的变化,但实现较复杂且开销较大,所以动态路由适合于较复杂的大型网络。
路由算法 | 简易程度 | 适应网络状态变化 | 适合规模网络 | 开销 |
静态路由 | 简单 | 不能 | 小型网络 | 较小 |
动态路由 | 复杂 | 能 | 大型网络 | 较大 |
常与其提到的还有默认路由,通常它指本地网关的地址,当在路由表中未找到目标网络时使用默认路由。
(二)路由器原理
1、路由器的分类和组成
路由器工作在OSI模型的第三层,即网络层,是连接网络中各类局域网和广域网的设备,它会根据信道的情况自动选择和设定路由,并以最佳路径按前后顺序来发送信号。
路由器可由不同类型来分类,例如按性能分为高性能、中端和低端路由器;按结构分为模块结构路由器和非模块结构路由器;按网络位置分为核心路由器、分发路由器和接入路由器。
路由器中很多种内存,其中ROM用于存储引导软件,Flash用于存储操作系统,ROM是主存,NVRAM用于保存启动配置。设备接电时,当前运行配置存储在RAM中,设备断电后配置消失,而备份配置存储在NVRAM中,设备断电后仍存在,设备重新启动后使用该备份配置。
2、路由器的功能和工作原理
路由器的主要功能是进行路由处理和包转发。包转发是指单个路由器的运行动作,路由器接收数据包并检查数据包报头,根据其目的地址检查下一跳IP地址,修改TTL的值并重新计算校验和,然后将新数据附加新数据链路层报头转发;路由处理是多个路由器共同协作的过程,通过运行路由协议学习网络的拓扑结构,路由器之间相互交换信息,通过一定的规则建立和维系路由表,保持信息有效,且通过特定算法,依据路由表决定最佳路径。
松散源路由允许相邻两个IP地址之间跳过多个网络,只给出IP数据报必须经过源站指定的路由器;而严格源路由严格规定IP数据报要经过路径上的每一个路由器,相邻路由器之间不得有中间路由器,并且所经过路由器的顺序不可更改。
(三)静态路由表和动态路由表
路由表的作用是供路由选择使用,可分为静态路由表和动态路由表,二者区别是静态路由表由系统管理员事先设置固定的路由表,不会随网络结构的改变而改变,而动态路由表会根据网络的运行情况自动调整路由表,根据路由选择协议提供的功能自动学习和记忆网络运行情况且在需要时自动计算数据传输的最佳路径。
(四)自治系统
可以将整个互联网划分为很多较小的自治系统(AS),是指在单一技术管理下的一组路由器,它对于其它AS表现的是一个单一的和一致的路由选择策略。
简单的来说,AS也就是使用同一个内部路由协议的一组网络。路由选择协议分为内部网关协议(IGP)和外部网关协议(BGP)。
(五)内部网关协议(IGP)
内部网关协议即自治系统内部的路由选择协议,主要目的是发现和计算自治域内的路由信息,与其它自治系统选用什么路由选择协议无关,比如RIP、OSPF协议。
1、RIP
路由信息协议(RIP),是一种分布式基于距离向量的内部路由选择协议,且距离向量路由算法是动态路由算法,该协议基于UDP,路由协议单元被封装在UDP报文中进行传输,其端口号为520,RIP的特点是简单适合用于小型互联网。
这里的向量即距离方向。
RIP路由的更新周期为30s,180s内若无回应则说明该路由不可达,240s内若无回应则删除路由表信息,且RIP协议的最大跳数为15跳,16跳表示不可达,直连网络跳数为0,每经过一个结点跳数加1。
RIP按固定的时间间隔与相邻的路由器交换信息,交换当前到达本AS中所有网络的最短距离和到每个网络应经过的下一跳路由器,通过在相邻之间相互交换信息,路由器不断更新其内部的路由表。
RIP分为RIPv1、RIPv2和RIPng三个版本,RIPv1报文基于广播,RIPv2基于组播(组播地址为224.0.0.9),且属于无类协议,支持可变长子网掩码(VLSM)和无类别域间路由(CIDR),采用了触发更新机制来加速路由收敛,这里的收敛是网络设备的路由表与网络拓扑结构保持一致。
2、OSPF
开放式最短路径优先(OSPF),是一种用于单一AS内决策路由的内部网关协议,其特点是适合小中和较大规模的网络,它采用的是最短路径优先算法(SPF)来计算最小生成树,从而确定最短路径。
OSPF基于IP,采用组播方式来交换OSPF包,另外它通过链路状态广播(LSA)的方式来传送给某区域内的所有路由器。
OSPF使用IP包头封装5类报文,用于交换链路状态广播(LSA),如下:
Hello消息用于发现邻居(邻接路由器),能在NBMA网络上选举指定路由器(DR)以及备份指定路由器(BDR),默认的Hello报文发送时间间隔为10s,默认无效时间间隔为40s,即40s内没有从特定的路由器接收到这种分组则认为其不存在,另外Hello组播地址为224.0.0.5。
数据库描述(DD)消息用于交换各个LSA的摘要版本。
链路状态请求(LSR)消息用于请求一个或多个LSA,告知相邻路由器提供LSA的详细信息给发送路由器。
链路状态更新(LSU)消息包含LSA的详细信息,用于响应LSR消息。
链路状态应答(LSAck)消息用于确认已经收到的LSU消息。
OSPF的工作流程:首先启动OSPF进程的接口,发生Hello消息,从而交换Hello信息建立邻居关系,然后每台路由器对所以邻居发送LSA,路由器接受邻居发送的LSA后并保存在链路状态库LSDB中,发送一个LSAcopy给其它邻居,于是LSA泛洪至整个区域,区域所有路由器形成相同的LSDB,此时每台路由器以自身为根,根据最短路径算法(SPF)算出到达每个目的地的最短路径且通过最短路径构成自己的路由表,包含区域内最优路由、区域间路由、E1外部路由以及E2外部路由。
OSPF网络类型分为四种,分别是点到点网络,组播地址为224.0.0.5;点到多点网络,它不选举DR/BDR,可看成多个点到点链路的集合,数据传播方式为单播;广播型网络,选举DR/BDR,所有路由器和BR/BDR交换信息且不能被抢占,其中DR、BDR组播到224.0.0.5,DR/BDR侦听224.0.0.6;非广播型需要手动指定邻居,利用Hello消息单播。
(六)外部网关协议(BGP)
外部网关协议即自治系统之间的路由选择协议,当源主机传送一个数据报给目的主机(两个AS可能使用不同的内部网关协议),需要一种协议将路由选择信息传递给另一个AS中,即连接不同AS的相邻路由器之间交换路由信息的协议,比如BGP-4。
自治系统之间的路由选择叫做域间路由选择,而内部叫做域内路由选择。
1、对等体
在BGP中,两个路由器之间的相邻连接称为对等体连接,两个路由器互为对等体,若同在一个AS中,则称为IBGP对等体,否则称为EBGP对等体。
2、BGP报文和BGP工作流程
BGP有四种常见报文,OPEN报文建立邻居关系,KEEPALIVE报文用于保持活动状态,周期性确认邻居关系,对OPEN报文回应,UPDATE报文用于发送新的路由信息,NOTIFICATION报文用于报告检测到的错误。
首先BGP路由器直接就行TCP三次握手,建立TCP回话连接,然后交换OPEN消息确认版本等参数来确认邻居关系,路由器交换所有BGP路由直到平衡,之后只交换变化了的路由信息,路由的更新由UPDATE报文完成,可以通过KEEPALIVE报文验证路由器是否可用,若出现问题,则通过NOTIFICATION报文通知错误。