华南理工大学《高级计算机网络》复习资料
[Part1].IPv6协议
【IPv4的危机】
地址危机(最大的危机,但可通过NAT、CIDR、VLSM)、端到端业务模式无法实施、QoS和性能问题、配置复杂、安全问题、路由表的膨胀、移动性支持不够
? 组播地址(Multicast Address) ? 任播地址(Anycast Address)
【1.本地链路地址】
? ? ? ?
用在单一链路上
带有链路本地源或目的地址的数据包不转发到其它链路 支持IPv6的网络接口都需要有本地链路地址 IPv4不会自动生成,IPv6主机会自动创建。
【IPV4与IPV6地址空间】
IPV4:232≈43亿
IPv6:2128=3.4×1038≈340涧
【1.本地链路地址生成】
只在同一本地链路中使用,范围:FE80::/64 后64位为EUI-64地址:
【IPv6的改进之处】
简化的报头格式,地址扩展到128位,增强的安全性和服务质量,可以实现更高效得路由基础,提供了对移动特性得支
【IPv9网络】
每个y是32bit部分,如
。。。
EUI-64生成:
【TCP/IPv6参考模型】
【1.本地链路地址用途】
? 主机使用路由器本地链路地址作为默认网关地址。
? 路由器使用本地链路地址交换动态路由协议消息。 ? 转发数据包时,路由器的路由表使用本地链路地址确定
下一跳路由器。
【IPv6特点】
地址及寻址
全新的报文格式,高效的报头 全新的地址配置方式,即插即用 更好的QoS支持 内置的安全性
全新的邻居发现协议 良好的扩展性 内置的移动性 端点分片
【2.环回地址】
* 地址:::1/128
*主机用来将数据包发送给本身,不能分配给物理接口 *启用Ping命令,测试本地主机TCP/IP配置
【3.未指定地址】
地址:::/128
不能分配给接口,仅作为源地址
【IPv6地址分类】
单播地址用于唯一标识支持IPv6 的设备上的接口。源地址必须是单播地址
? 单播地址(Unicast Address)
-
本地链路地址、环回地址、未指唯一本地地址、嵌入式Ipv4地址、全局单播地址、定地址
【4.唯一本地地址】
地址:从FC00::/7 到FDFF::/7
在一个站点内或有限站点数之间用作本地地址,在全局不具可路由性。
【6.可聚合全球单播地址】
地址:前缀(FP)=001,第一组16进制数范围:2000~3FFF 设计目标是聚合或汇总该地址以便产生有效路由基础结构
300113TLA8RES24NLA16SLA64Interface ID【一台主机的多IPv6地址】
提供商分配的前缀Site接口ID- ISP商分配的前缀:/48
- Site拓扑:由组织机构划分子网
- 接口ID:64(全1可以分配给主机,全0分配给路由) ? 接口ID生成方法:EUI-64、随机生成、手工设置
【特殊单播地址】
IPv6兼容地址:0:0:0:0:0:0:w.x.y.z 或::w.x.y.z(双协议栈) IPv4映射地址:0:0:0:0:0:FFFF:w.x.y.z 或::FFFF:w.x.y.z(IPv6网络中的IPv4节点表示)
单播地址:
- -
每个接口的链路本地地址
每个接口的单播地址(可以是一个站点本地地址和一个或多个可聚集全球地址)
- 回环(loopback)接口的回环地址(::1)
【组播地址】 监听组播地址:
- -
节点本地范围内所有节点组播地址(FF01::1); 链路本地范围内所有节点组播地址(FF02::1);
请求节点组播地址(如果主机的某个接口加入请求节点组); 组播组组播地址(如果主机的某个接口加入任何组播组)
Flags:用来表示permanent(0000)或临时组播组(0001) Scope:表示组播组的范围 Group ID:组播组ID
例子:FF02::1:链路范围所有节点组播地址
FF02::2:链路范围所有路由器组播地址 FF01::1、FF01::2:节点范围。。。
(高八位不是全1的,即为单播地址)
-
-
【各类地址的应用范围】
【被请求节点组播地址】
用于重复地址检测和获取邻居节点 地址:前104位:FF02::1:FF/104
后24位:单播地址的后24位
(凡是单播地址后24位相同的接口自动加入相应请求节点组播组)
【IPv6子网规划】
? IPv4 子网划分是管理地址稀缺性
? IPv6 子网划分是根据路由器的数量及它们所支持的网
络来构建寻址分层结构
(IPv6可以利用接口ID继续划分子网)
【任播地址】
? ? ? ?
目标地址为任播地址的数据报将发送给最近的一个接口 适合于One-to-One of Many的通讯场合
从单播地址空间中分配,用于标识一组网络接口 仅能做目标地址,且仅分配给路由器
[Part2].IPv6地址配置
【配置方式】
手工配置
无状态地址自动配置(ND协议) 有状态地址自动配置(DHCPv6)
【手工配置】
时间和有效时间有关:
ValidTentativePreferredDeprecatedInvalidPreferred LifetimeValid Lifetime
(1) 在Preferred Lifetime周期内的前缀生成的地址,任何上层应用
都可不受限制地使用;
(2) 在超过Preferred Lifetime 但未超过Valid Lifetime周期内的前缀
生成的地址,正在使用该地址的上层应用可继续使用,但任何新的上层应用不能使用这个地址;
(3) 在超过Valid Lifetime周期内的前缀构造的地址,任何上层应用
都不能使用该地址
【无状态地址自动配置(SLAAC)】
? 无须任何配置即可和外界通信,真正的即插即用(没有
维护网络地址信息的服务器)
? 地址结构:64位前缀,和路由器前缀一致;64位EUI-64 ? ND协议也即邻居发现协议,包括:Router Solicitation Router
Advertisement 、Neighbor Solicitation 、Neighbor Advertisement 、Redirect (RS, RA, NS, NA, Redirect)
【SLAAC消息】
Router Solicitation(RS):
主机向路由器发送请求报文,促使路由器发送Router advertisment消息(通过FF02::2)地址 Router Advertisement(RA):
路由器向主机通告前缀等信息(通过FF02::1地址) * 两者都为ICMP报文
其中,tentative地址为进行DAD之前的地址。一个链路本地地址的优先时间和有效时间是无限的,永不超时。
【RA消息中的M、O】
M=0,O=0:使用SLAAC(使用RA)
M=0,O=1:使用无状态DHCP:SLAAC和DHCPv6 (使用RA和DHCPv6服务器)
M=1,不含O:使用有状态DHCPv6(使用DHCPv6服务器)
【SLAAC三个机制】
路由器发现:
* 主机选择默认网关
* 主机发现前缀,生成前缀列表
* 参数发现:发现相关参数,如MTU,跳数限制、地址配置方式等
【前缀重新编址中的2个地址】
在转换期间,节点有两个单播地址使用: - 旧地址:基于旧的前缀,用以维持以前已经建立的连接; - 新地址:基于新的前缀,用来建立新的连接
当旧的前缀的有效时间递减为0时,旧的前缀完全废止,此时,RA中只包含新的前缀
重复地址检测(DAD):
* 是节点确定即将使用的地址是否在链路上唯一的过程
* 所有单播地址,不管是自动配置还是手动配置,都必须要通过DAD * DAD机制通过ND中的NS/NA两种消息实现:
1.节点发送Neighbor Solicitation;
2.如果收到Neighbor Advertisment就证明地址重复
(a.接收者如果发现其中的Target域中的地址对它而言是tentative 的,则放弃使用这个地址;b.如果发现其中的Target域中的地址是一个它正在使用的地址,则发送Neighbor Advertisment消息);
【DHCP工作原理】
DHCP客户发送请求广播
DHCP服务器单播应答
DHCP客户接收应答,获取IP等信息
【DHCP运行方式】
(1) (2) (3) (4)
DHCP客户机在本地发送DHCPDISCOVER广播包;
DHCP服务器单播发送携带租约信息的DHCPOFFER包; DHCP客户机确认租约信息并发送DHCPREQUEST广播包; DHCP服务器单播送回DHCP ACK確认完成IP地址租用
3.尝试若干次发送请求,都没有收到邻居通告,即可启用该地址
前缀重新编址(Redirect):
1.允许网络从以前的前缀平稳地过渡到新的前缀,提供对用户透明的网络重新编址能力
2.在前缀重新编址时,路由器会继续通告当前前缀,只是优先时间和有效时间被减小到接近0,同时,路由器开始通告新的前缀,这样,链路中至少有两个前缀共存
3.节点收到这样的RA,会发现当前前缀的生命周期较短,停止使用;同时开始用新的前缀配置接口,并进行DAD,通过后获得新地址使用
【DHCP地址分配】
? 自动分配-由DHCP分配一个永久的IP。
? 手动分配-网络管理员预先安排分配,由DHCP转达。 ? 动态分配-由DHCP分配具有租约期的IP。
【SLAAC注意事项】
*为避免RS泛滥,节点启动时最多只能发送3 个RS
*主机收到路由器的RA之后,自动设置默认路由器,建立 默认路由器列表、前缀列表及其它参数
*路由器会主动周期性地发送RA(默认值200秒)
*自动配置的IPv6地址在系统中有一个生存周期,跟优先
【有SLAAC为何需要DHCPv6】
? 需要动态指定DNS服务时
? 当不希望MAC地址成为IPv6地址的一部分时 ? 当需要良好的扩展性时
【DHCPv6特点】
1. 使用UDP来交换报文,546/547
2. 使用本地链路地址或其它机制获得的地址发送和接收
DHCPv6报文
3. 没有广播,客户机只需发送给链路范围组播地址(FF02::1:2) 4. 取消了DHCPv4中的Discover和Offer消息
【DHCPv6获取地址和参数的典型过程】
Protocol(协议) -> Next Header(下一个头)
Type of Service(服务类型) -> Traffic Class(业务等级) 删掉的项
Fragmentation fields(分段偏移量) IP options(标志、标识符)
Header Checksum eliminated(报头校验和) Header Length field(报头长) Length field (数据总长度) 增加的项
Flow Label(流标识)
【扩展报头顺序】
逐跳选项报头?目标选项报头1(当存在路由报头时,用于中间目标)?路由报头?片段报头?身份验证报头?封装安全有效载荷报头?目标选项报头2(用于最终目标)
DHCP和SLAAC是无状态全局单播地址配置的2种方式。
[Part3].IPv6报文
【IPv4与IPv6报文】
【ICMPv4与ICMPv6】
? ICMPv6保留了ICMPv4的常用功能
-
如回声请求、抑制消息、重定向、参数错误等
? 还进行了很大的扩展(ARP、IGMP)
- - -
邻居发现 无状态地址配置 路径MTU发现(PMTU)
【ICMPv6报文类型】
差错报文,通告IPv6分组传输中出现的错误:
-
目标不可达、数据包超长、超时、参数问题
信息报文,提供诊断和附加的主机功能:
-
MLD、ND (ARP,redirect…)、回声请求(128)和应答(129)
IPv6扩展报头:Pv6将一些IP层的可选功能实现在上层封装和基本IPv6基本头部之后的扩展头部中
主要的扩展报头:逐跳选项、路由报头、分段报头、认证报头、封
装安全有效载荷报头、目标选项
【ICMPv6报文格式】
差错报文:Type=0×××××××=0~127 信息报文:Type=1×××××××=128~255
【ICMPv6三个应用】
? Ping ? Tracert
- - - - - -
第一个请求:HopLim=1
第一跳路由器收到,发送超时消息 得到第一跳路由器的信息 第二个请求:HopLim=2
第二跳路由器收到,发送超时消息 得到第二跳路由器的信息 。。。。。。
直到目的地,目的机通常发送端口不可达报
- -
报文变化总结:
修正项
地址:32位 -> 128位
Time to Live(生存时间) -> Hop Limit(跳数限制)
? PMTU发现
* MTU:最大传输单元(载重能力)
* IPv4网络可能由路由器承担分段;易遭受分片型攻击
* IPv6规定分段不能由路由器承担,只能由发送方分段
* 要求源节点,必须在发送数据前知道整个传送路径的最小MTU PMTU发现原理(试探) 核心:路由表(包括静态路由IPv4/6:ip/ipv6 route和动态路由)
【DestinationCache(目的缓存表)】
IPv6独有的一个数据结构,Show DestinationCache
? 初始时为空;
? 某个地址在表中查不到时,改查路由表,做on-link判断:
- -
是on-link的,将目的地址本身加入DC表的nexthop域; 是off-link的,将路由表中的下一跳加入DC的nexthop域。
如,源机发送MTU=1500数据包,B返回超长消息,指定MTU=1400
【源和目的在同一链路的数据转发】
(路由:为一个数据分组找到一根能够到达目的地的路径)
*类似于IPv4同一网段的数据路由
*通过地址前缀判断是否同一链路:on-link *发起地址解析(不同于v4的ARP)
-独立于媒体层、利用三层安全机制、改广播为组播,降低了骚扰范围
【IPv4、IPv6共存技术】
双栈:网络设备上运行IPv6/IPv4双协议栈 隧道:IPv6网络上承载IPv4分组,或相反 翻译/转换:地址、分组、端口的转换
*由ND协议完成
【双栈技术】
【ND协议】 替代ARP邻居不可达检测(NUD)路由器发现接口ID自动生成DAD前缀重新编址地址解析ND无状态地址自动配置? 适用于混合环境
? 基础设施设备,如路由器、交换机、公用服务器等,需
要运行和支持双栈
? 非基础设施设备:单协议或双协议
(使用高优先级地址,IPv6失败再尝试IPv4)
【隧道技术】
? 手动隧道:事前配置
? 自动隧道:创建和拆除都依赖当前网络条件 - IPv6分组作为载荷搭载到IPv4分组中,在这种情形下,
IPv4分组头部的protocol=41。(v4转v6一样道理)
协议报文为ICMP报文,其中Type:RS(133)、RA(134)、NS(135)、NA(136)、Redirect(137)
路由器重定向【IPv6地址解析】
(1) 首先查找邻居缓存表,没有则进行地址解析(类似于ARP
表)
(2) 源主机发送组播NS报文,该报文的目的地址为目标IPv6
地址所对应的请求节点组播地址(Solicited-node),在其中也包含了自己的链路层地址;
(3) 目标主机收到NS报文后,就会了解到发送主机的IPv6地
址和相应链路层地址;
(4) 目标主机向源单播发送主机发送一个邻接点公告报文
(NA),该报文中包含自己的链路层地址。(单播)
【翻译/转换技术】
? 从IPv4转换到IPv6,或反过来,不仅发生在网络层,还
有传输层和应用层。
? 当双栈和隧道都无法使用的时候,才使用;适用纯IPv4
节点和纯IPv6节点间的通信
[Part4].IPv4回顾
【OSI、TCP/IP模型】
【地址分类】
【源和目的不在同一链路的数据转发】
主机发给哪个路由器?(主机-路由器):
1.具有一个合法的IPv6地址
2.一条目的包含PC2,下一跳RT1的路由
【特殊IP地址】
32位全为0(0.0.0.0):Cisco路由器指定的默认路由
32位全为1(255.255.255.255):Flood(local) Broadcast 主机部分全为0(如172.16.0.0):网络地址
路由器发给哪个路由器?(路由器-路由器)