计算机网络
网络层- IPv6、其他网路层技术
IPv6协议
IPv6(Internet Protocol version 6)是IETF设计用于替代IPv4的下一代协议
初始动机:应付“32-bit地址空间耗尽”问题(CIDR和NAT都无法从根本上解决地址短缺问题),增加地址空间
后续动机
简化头部,加快处理与转发
提升服务质量
IPv6地址
IPv6 地址
地址长度为128bit,是IPv4地址长度的4倍
IPv6地址空间数量约为3*1038
IPv6地址表示法,冒分十六进制,x:x:x:x:x:x:x:x
简化方法:每个x前面的0可省略,可把连续的值为0的x表示为“::”, 且“::”只能出现1次
简化前地址,2001:0DA8:0000:0000:200C:0000:0000:00A5
简化后地址,2001:DA8:0000:0000:200C::A5
IPv6地址分类
未指定地址(::/128),不能分配给任何节点
回环地址(::1/128),表示节点自己,不分配,类似IPv4中的127.0.0.1
组播地址(FF00::/8)
链路本地地址(FE80::/10),也称为Link-local地址,仅在本地链路上使用,网络设备根据接口MAC地址自动生成
全局单播地址,其它地址
IPv6地址配置方式
手动配置
DHCPv6(IPv6动态主机配置协议)
无状态地址自动配置,基于邻居结点IPv6前缀信息,结合自己的链路层地址生成IPv6地址
IP数据报文
固定40字节头部长度
不允许传输途中分片(fragmentation)
IPv6头部
版本:4bit,协议版本号,值为6
流量类型:8bit,区分数据包的服务类别或优先级
流标签:20bit,标识同一个数据流
有效载荷长度:16bit ,IPv6报头之后载荷的字节数(含扩展头),最大值64K
下一个首部:8bit ,IPv6报头后的协议类型,可能是TCP/UDP/ICMP等,也可能是扩展头
跳数限制:8bit ,类似IPv4的TTL,每次转发跳数减1,值为0时包将会被丢弃
源地址: 128bit ,标识该报文的源地址
目的地址: 128bit ,标识该报文的目的地址
头部字段分析
IPv6头部长度固定40字节
所有“选项”字段都在IPv6扩展头部分(位于头部字段后面),通过“下一个首部”字段表明
与IPv4头部的比较
去除“首部长度”(首部长度固定为40字节)
去除“首部校验和”(传输层校验会涉及伪头部信息),提升转发速度
去除分片字段:“标识”“标志”“片偏移”,移至扩展头(分段头)
IPv6分片机制
IPv6分组不能在传输途中分片,只在源端进行分片
IPv6设计了专门的分片扩展头,分片字段不存在IPv6头部中
IPv6支持Path MTU发现机制
IPv6拓展头
IPv6报文可承载多个扩展头
每个扩展头都包含“下一个首部”字段(IPv6首部固定字段也有)
可指向下一个扩展头类型
或指明传统上层协议类型(最后一个扩展头): TCP/UDP/ICMP …
如有多个扩展头,需按规定顺序出现
逐跳选项头,转发路径上每个节点都需检查该扩展头的信息
路由头,指明转发途中需经过哪些节点,类似于IPv4的源路由机制
分段头,包含类似IPv4分片处理信息:片偏移、“更多段”标志、标识符
目的地选项头,目的端系统需要确认的信息
IPv6 ICMP改进
IPv6提供新版本ICMP协议,提供新功能
不同的Type值和Code值表示不同的消息
消息类型1:邻居请求(Neighbor Solicitation,NS)
类似于IPv4中的ARP请求报文,获取邻居的链路层地址,验证邻居可达,重复地址检测
消息类型2 :邻居通告(Neighbor Advertisement,NA)
类似于IPv4中的ARP应答报文,对NS消息进行响应
消息类型3 :路由器请求(Router Solicitation,RS)
端系统通过RS消息向路由器发出请求,请求地址前缀和其他信息,用于节点的自动配置
消息类型4 :路由器通告(Router Advertisement,RA)
路由器通过RA消息向端系统发布地址前缀(IPv6地址自动配置)和其他配置信息
消息类型5 :重定向(Redirect)
通知主机重新选择正确的下一跳地址(针对某个目的IPv6地址)
IPv6路由协议
RIPng for IPv6,RFC 2080,对RIP修改以适应IPv6环境
使用路由器的链路本地IPv6地址作为源地址,发送路由更新信息
OSPFv3 for IPv6,RFC 5340,适应IPv6网络
使用路由器的链路本地IPv6地址作为源地址,并作为下一跳地址
OSPFv3有7种类型的LSA,新增Link LSA和Intra Area Prefix LSA
MP-BGP(Multi-Protocol BGP),RFC 4760,支持多种网络层协议(IPv6和IPX)
MP-BGP向前兼容,并支持组播
BGP连接可以是IPv4或IPv6,报文内可传递其它网络协议的路由信息
多协议可达NLRI描述了到达目的地的信息:地址属于哪个网络层协议,下一跳地址
IPv4到IPv6迁移及过滤技术
IPv4协议和IPv6协议并不兼容,迁移可能经历很长时间
涉及:互联网用户、互联网服务提供商(ISP)、互联网内容提供商(ICP)、网络设备厂家
IPv4/IPv6过渡技术的关键要素
尽量保证端到端透明原则
高效、可行的编址及地址规划
路由可扩展性,避免路由表膨胀(消耗转发资源 )
状态维护,减少因为过渡机制引起的状态维护,如IPv4-IPv6映射关系
主流过渡技术
隧道技术
翻译技术
隧道技术
2个相同类型网络的设备,跨越中间异构类型网络进行通信
将一种网络的数据包作为另一种网络的数据载荷进行封装
报文长度在传输途中增大导致分片问题
途中分片与重组对传输性能影响较大
解决方法
提前分片,需要Path MTU发现机制
翻译技术
问题
破坏互联网端到端原则
通信双方只看到通信对端在本网络对应的地址
翻译网关处理传输层、应用层数据(上层数据无法透明传输)
异构地址寻址问题
通信双方至少有一方需感知本次通信涉及翻译技术
域名访问需DNS服务支撑
应用层内嵌IP地址
部分应用层协议内嵌IP地址,将使翻译技术实施难度极大
翻译导致报文变长可能导致分片问题,影响转发性能
其他类型网络层技术
现有Internet:无连接的分组交换服务
不需要提前建立连接
尽力而为:不提供任何服务质量承诺
简单、灵活、成本低
基于Internet仍有技术提供不同类型的服务
基于Internet的服务质量保障
基于Internet的面向连接服务
网络服务质量
网络服务质量?(QoS, Quality of Service)是网络在传输数据流时要满足一系列服务请求,具体可以量化为带宽、时延、抖动、丢包率等性能指标
QoS针对各种业务的不同需求,为其提供端到端的服务质量保证。在有限的带宽资源下,它允许不同的流量不平等地竞争网络资源,语音、视频和重要的数据应用在网络设备中可以优先得到服务
常用的网络服务质量机制包括:数据包调度;流量工程;流量整形:漏桶算法、令牌桶算法;综合服务;区分服务
数据包调度
路由器输出端口决定:把缓冲区中的哪些数据包发送到输出链路上
先来先服务FCFS(First-Come First-Serve)
公平队列算法(Fair Queueing)
加权公平队列算法(Weighted Fair Queueing)
优先级调度(Priority Scheduling)
流量工程
流量工程:根据对传输流量的预测,规划流量的传输路径
目的:提高带宽利用率、避免拥塞
通常需要线性规划、网络流算法
需要其他技术(如MPLS或者SDN)配合,进行流量区分
流量整形
流量整形(traffic shaping):其作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送
流量整形算法包括漏桶算法和令牌桶算法
漏桶算法(Leaky Bucket Algorithm):
平滑网络上的突发流量
突发流量可以被整形以便为网络提供一个稳定的流量
令牌桶算法(Token Bucket Algorithm):
允许突发数据的发送,但控制流速
综合服务
特点1:(面向连接)基于资源预留协议RSVP,在主机间建立传输流的连接
特点2:(预留资源)逐节点建立或拆除流的状态和资源预留状态,根据QoS进行路由
要求:需要所有的路由器支持综合服务,在控制路径上处理每个流的消息,维护每个流的路径状态和资源预留状态,在路径上执行基于流的分类、调度、管理
现实:难以实现
区分服务
在IP报头的8位区分服务字段(DS字段)中使用6位区分服务码点(DSCP)进行分组分类,指明分组的类型
路由节点在转发这种包的时候,只需根据不同的DSCP选择相应的调度和转发服务即可
面向连接服务
面向连接服务:如打电话
通信之间先建立逻辑连接:在此过程中,如有需要,可以预留网络资源
结合使用可靠传输的网络协议,保证所发送的分组无差错按序到达终点
虚电路
虚电路是逻辑连接,建立在Internet分组交换之上
虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接
注意,电路交换的电话通信是先建立了一条真正的连接
因此,虚电路和电路交换的连接只是类似,但并不完全相同
目标
转发策略
基于分组标签,即虚电路号
面向连接的虚电路
与数据包网络的比较
MPLS
MPLS (MultiProtocol Label Switching)全称是多协议标签交换
多协议表示在 MPLS 的上层可以采用多种协议,例如:IP,IPv6、IPX
达到“链路虚拟化”的目的
思想:基于IP转发 -> 基于标签转发
标签是指每个分组被分配一个标签,路由器根据该标签对分组进行转发
交换是指标签的交换,MPLS 报文交换和转发是基于标签的
MPLS 设计初衷为了提升查找速度
MPLS 主要有以下三个方面的应用
面向连接的服务质量管理
流量工程,平衡网络负载
虚拟专用网VPN
报文结构
给 IP 数据报加标签”其实就是在链路层的帧首部和IP数据报的首部之间插入一个 4 字节的 MPLS 首部
MPLS又称为2.5层协议
核心要素
标签交换路由器LSR
支持MPLS的路由器
具备标签交换、路由选择两种功能
MPLS域
所有相邻的支持MPLS技术的路由器构成的区域
标签分配协议LDP
用来在LSR之间建立LDP会话并交换Label映射信息
标签
标签仅仅在两个LSR 之间才有意义
LSR会维护一张转发表
| 入接口 | 入标记 | 出接口 | 出标记 |
| ----------- | ----------- |----------- |----------- |
| 0 | 3 | 1 | 1 |
表项含义:从入接口 0 收到一个入标记为 3 的IP 数据报,转发时,应当把该IP数据报从出接口 1 转发出去,同时把标记对换为 1
基本操作
加标签
在 MPLS 域的入口处,给每一个 IP 数据报加上 标签,然后对加上标记的 IP 数据报用硬件进行转发
标签交换
MPLS域内每台路由器,对加上标记的 IP 数据报修改标签并转发称为标签交换
去标签
当分组离开 MPLS 域时,MPLS 出口路由器把分组的标签去除。后续按照一般IP分组的转发方法进行转发
工作过程
MPLS转发等价类
不可能对每个报文分配各自标签
如果一组报文在网络上被以同样的方式处理,则构成一个转发等价类FEC
通常对一个FEC分配唯一的标签
FEC有多种定义方式
属于某特定组的组播报文
目的IP地址匹配了一个特定前缀的报文
有相同QoS策略的报文
属于同一个VPN的报文(MPLS VPN中)
报文的目的IP地址属于BGP学习到的路由,并且下一跳相同
其他
VPN
许多机构希望建立专用网络
连接该机构各部分网络
与Internet隔离的路由器、链路、以及DNS、DHCP等基础服务
缺点:代价昂贵
虚拟专用网(Virtual Private Network,VPN)
建立在Internet之上
通过加密与认证机制,保持逻辑上的隔离
VPN的设计原则
安全性、隧道与加密、数据验证、用户验证、防火墙与攻击检测
原理
VPN指利用公用网络架设专用网络的远程访问技术
VPN通过隧道技术在公共网络上模拟出一条点到点的逻辑专线,从而达到安全数据传输的目的
实现
安全性
其他实现方式
按功能位置
CPE-based VPN(基于客户端设备)
Network-based VPN(基于网络)
按业务构成
Access VPN(远程访问虚拟网)
Intranet VPN(企业内部虚拟网)
Extranet VPN(企业扩展虚拟网)
按实现层次
二层隧道VPN( L2TP 、 PPTP 、 L2F )
三层隧道VPN(GRE、IPSec、MPLS)
传输层隧道VPN(SSL、TLS)
按组网模型
VPDN:Virtual Private Dial Networks(虚拟专用拨号网络)
VPRN:Virtual Private Routed Networks(虚拟专用路由网络)
VPLS:Virtual Private LAN Segment(虚拟专用LAN 网段)
VLL:Virtual Leased Lines(虚拟租用线)
Segment Routing与SRv6
报文格式
Segment