131
2008 年年年年年年年年 年年年年 年年年年年年 IPv6

第四章下一代互联网协议 IPv6

Embed Size (px)

DESCRIPTION

第四章下一代互联网协议 IPv6. 下一代互联网协议 IPv6. 为什么要引入 IP ? IPv4 的可扩展性问题 IPv6 概述 邻机发现机制 IPv6 地址自动配置 IPv6 中的一些其它机制 IPv4/IPv6 过渡 IPv6 相关应用程序接口 总结. 主要内容. 下一代互联网协议 IPv6. 为什么要引入 IP ? IPv4 的可扩展性问题 IPv6 概述 邻机发现机制 IPv6 地址自动配置 IPv6 中的一些其它机制 IPv4/IPv6 过渡 IPv6 相关应用程序接口 总结. 主要内容. 1. 为什么引入 IP. - PowerPoint PPT Presentation

Citation preview

Page 1: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

第四章下一代互联网协议 IPv6

Page 2: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 3: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 4: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

1. 为什么引入 IP 异构性( Heterogeneity )

不同网络的主机能够进行通信,包括以太网、 802.11 无线局域网、令牌环网、点对点链路等 编址方案、媒介访问协议、服务模型等不同

可扩展性( Scale ) 网络规模不断扩大 几百万甚至几十亿个节点互连

实现网络互连

Internet Protocol(IPv4/IPv6)

WMANIEEE

802.16/a/eIEEE 802.20

WLANIEEE

802.11/a/b/g

…令牌环网以太网

移动通信网(3G、2.5G)

数据 语音视频等多媒体业务

寻址( Addressing )路由选择( Routing )移动管理( Mobility )服务质量管理( QoS )安全

Page 5: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

1. 为什么引入 IP 以 IP 为核心,根据 IP 协议信息转发分组 IP 提供的是尽力传送服务( best-effort )

无连接,分组携带足够的信息能使网络将分组传送到目的地 不保证分组可靠到达目的地,可能出现分组的丢失,乱序

服务模型

路由器

设计原则:使网络尽可能的简单端系统 端系统

Page 6: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

1. 为什么引入 IP 寻址模型Internet

寻址应用进程(与端口号关联)

端口号( 16bits )IP 地址

( 32 或者 128bits )链路地址

(MAC 地址为 48bits )

发送数据的地址或者端口包括发送数据方的源地址或者源端口,接收数据方的目的地址或者目的端口端口:在主机上标识应用进程,由程序或者系统指定IP 地址:标识 Internet 上的某台主机,由程序或者系统指定链路地址( MAC 地址):标识链路上的某个接口设备,目的 MAC 地址由 ARP( IPv4 )或者邻机发现机制( IPv6 )获得

路由器

Page 7: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

1. 为什么引入 IP 数据传输流程Internet

寻址IBM Compatible运行 FTP应用程序

调用 FTP 应用层模块,将内容封装在 FTP 协议中

调用 TCP 模块,将上层内容封装在 TCP 协议中

调用 IP 模块,对每个数据段加上 IP 分组头

对每个 IP 分组加上以太帧头或帧尾将数据帧的二进制码转换成光电信号

应用层(与端口绑定,协议数据单元称为消息)

传输层:端口寻址,协议数据单元称为TCP 数据段

网络层: IP 地址寻址,协议数据单元称为 IP 分组

数据链路层: MAC 地址寻址,协议数据单元称为数据帧物理层

Seg1

Seg2

Seg3

IPH Seg1

IPH Seg2

IPH Seg3

FS IPH Seg1 FEFS IPH Seg2 FEFS IPH Seg3 FE

Page 8: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 9: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 IPv4 地址长度为 32 比特,理论上

IPv4 地址的最大数量为 232 ,大约为43 亿

问题描述 32 bits

网络号( NET ) 主机号( HOST )

10101010 01010101 00110011 11001100

8 bits

170 85 51 204十进制表示(W.X.Y.Z)

二进制表示

Page 10: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 IPv4 单播地址采用分类的方式进行分配

地址分配粒度太大!

IP 地址中网络号或主机号为全 0 或全 1 的一般用做特殊处理,不用来标识网络或主机

问题描述 (128 – 191) (192 – 223)

Class A

Class BClass C

(0–127)

Class DClass E

( 224-239 )( 240-247 )

HOST HOST HOSTNET HOST HOSTNET NET HOST

0 NET 10 NET 110 NET

播 地留 地

1110 11110 保

组 址址

单播地址

随着越来越多的设备接入 Internet, IPv4 地址资源出现衰竭迹象,保守估计到 2041年 IPv4 地址将耗尽随着越来越多的网络接入到 Internet ,路由器的路由表急剧膨胀(核心路由器路由表由 2000 年的 76,000 条路由增加到 2004 年中期的 160,000 条路由) [http://bgp.potaroo.net]

Page 11: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 采用层次结构

划分子网 无类别域间寻路

网络地址转换

解决方案—

概述基本思想:根据需要分配地址块大小,为提高 IP 地址的利用率,对 IP 地址进行汇聚,以减少路由协议中路由选择消息携带的和路由器的路由表中储存的网络号的数量

最终的解决方案是采用 IPv6

Page 12: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 子网 subnet :将大的 A/B/C 类网络划分为多个小的子网,对外仍然表现为一个单独的网络,只有一个网络号 IP 地址 = 网络号 + 子网 ID+ 主机号

解决方案—

划分子网 子网号子网号长度:子网掩码中 1 的个数例如: 202.38.75.65 是一个 C 类地址,如果子网掩码为 255.255.255.0 ,则子网号为 202.38.75.0 ,如果子网掩码为 255.255.255.192(11000000) ,则子网号为 202.38.75.64( 65=01000001 )

Page 13: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 无类别域间寻路 CIDR: Classless Inter-

Domain Routing RFC1518, RFC1519

采用可变长度的网络前缀 (network prefix)来取代地址分类中网络号长度固定的做法具有相同前缀的 IP 地址组成 CIDR Block ,表示为 A.B.C.D/N ,其中 N 为前缀长度

例如 202.38.208.0/20

解决方案—

无类别域间寻路

Page 14: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 CIDR Block 分配

IANA ( Internet Assigned Numbers Authority) --〉RIRs (Regional Internet Registries) -- 〉 ISPs ( Internet Service Providers) -- 〉 Subscribers

具有相同前缀的 IP 地址组成 CIDR Block ,前缀长, block 越大解决方案—

无类别域间寻路

Page 15: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题前缀汇聚: Prefix

Aggregation具有相同前缀的多个连续的 CIDR Block可以汇聚成一个更短前缀路由

解决方案—

无类别域间寻

路 Internet

MCI

Public Servers

Web Server

DataBase

ARS

208.130.0.0/11

202.130.28.33/32

208.130.28.0/22

FTP

ISP

Company

208.130.28.0/24

Page 16: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

208.130.16.0

208.130.31.0

....

R1

R0

202.130.16.0/24 R1…….. …..208.130.31.0/24 R1

16 条路由

前缀汇聚

16 个连续的网络

208.130.16.0

208.130.31.0

....

R1

R0

202.130.16.0/20 R1…….. …..

16 个连续的网络

16 个连续的 /24的 CIDR Block 可以汇聚成一条 /20 的路由208.130.16.0/24~208.130.31.0/24--〉(0001 0000~0001 1111)208.130.16.0/20

Page 17: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 路由表结构

< 网络前缀 /前缀长度、下一跳 > 在 CIDR 中,如果路由器上的路由表中有多条表项满足要求,则采用前缀最长匹配规则

解决方案—

无类别域间寻路

目的网络 下一跳128.96.0.0/16 R0

128.96.192.0/18 R1

128.96.128.0/18 R2

对于目的地址为 128.96.195.70 的分组,匹配的路由表表项包括两项( 128.96.0.0/16和 128.96.192.0/18 ),但是使用最长匹配规则选择下一跳为 R1

Page 18: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 根据作用范围的不同,分两种 IP 地址

全局 IP 地址:用于 Internet 上的分组转发,要求在 Internet范围内唯一, 私有 IP 地址:用于指定网络内的分组转发,只要求在指定网内部唯一

内部网络NAT 设备

全局 IP 地址私有 IP 地址

Internet

网络地址转换( NAT: Network Address Translation) :实现网络内的多台主机共享一个或者少量全局的 IP 地址

解决方案—

网络地址转换

Page 19: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 10.0.0.0 - 10.255.255.255

A single Class A network 172.16 .0.0- 172.31 .255.255

16 contiguous Class B networks 192.168.0.0 - 192.168.255 .255

256 contiguous Class C networks

解决方案—

网络地址转换

Page 20: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题NAT到

Internet到内部网络

源 IP 地址: 10.0.0.1

目的 IP 地址: 10.0.0.1

源 IP 地址: 202.38.75.11

目的 IP 地址: 202.38.75.11

Direction Field Old Value New Value

out 源 IP 地址 10.0.0.1 202.38.75.11

In 目的 IP 地址 202.38.75.11 10.0.0.1

转换表 ( 自动生成 )

202.38.75.11解决方案—

网络地址转换

Page 21: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

解决方法:使用 TCP 或者 UDP 端口号来区分,也就是说 NAT 的依据不再仅仅是 IP 地址,还包括端口号

问题:基本的地址转换只使用 IP 地址信息,在只有一个全局 IP 地址的情况下,对于从 Internet 到内部网络上的分组, NAT 设备无法知道分组所对应的内部主机,或者同一台内部主机上的应用

Internet

10.0.0.254

10.0.0.3

10.0.0.2

10.0.0.1

Web servera

b

c

NAT202.38.75.11

10.0.0.1, 10.0.0.2, 10.0.0.3mapped to 202.38.75.11

Request received and accepted.

Destination: 202.38.75.11?

Page 22: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

2. IPv4 的可扩展性问题 网络地址和端口转换 NAPT: Network

Address and Port Translation 最常用的一种 NAT 方式 使用 IP 地址和 TCP/UDP 端口号

端口号标识了同一台主机上不同的应用,例如 FTP 服务器进程一般运行在 21 号端口, web 服务进程一般运行在 80 号端口, TCP/UDP 根据端口号将数据投递给相应的应用进程

NAPT操作不仅仅要修改分组的 IP 头标,还要修改 TCP/UDP 头标中的端口号 在 NAT 设备上,虽然内部网络所有的主机共享同一个全局 IP 地址,但是它们所使用的端口号不同

解决方案—

网络地址转换

Page 23: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

Internet

10.0.0.254

10.0.0.3

10.0.0.2

10.0.0.1

Web servera

b

c

NAT

202.38.75.11

Connection request to port 80 from ‘c‘ to <web server> source 10.0.0.3, port 1025.

10.0.0.3, port 1025mapped to202.38.75.11, port 2000

Connection request from ‘c’ forwarded to <web server> source 202.38.75.11, port 2000.

direction Fields Old Value New Value

out 源 IP 地址:源端口号 10.0.0.3:1025 202.38.75.11:2000

out 源 IP 地址:源端口号 10.0.0.2:1023 202.38.75.11:1011

in 目的 IP 地址:目的端口号 202.38.75.11:2000 10.0.0.3:1025

In 目的 IP 地址:目的端口号 202.38.75.11:1011 10.0.0.2:1023

Page 24: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

Internet

10.0.0.254

10.0.0.3

10.0.0.2

10.0.0.1

Web servera

b

c

NAT

direction Fields Old Value New Value

out 源 IP 地址:源端口号 10.0.0.3:1025 202.38.75.11:2000

out 源 IP 地址:源端口号 10.0.0.2:1023 202.38.75.11:1011

in 目的 IP 地址:目的端口号 202.38.75.11:2000 10.0.0.3:1025

In 目的 IP 地址:目的端口号 202.38.75.11:1011 10.0.0.2:1023

响应发往 202.38.75.11:2000

将 202.38.75.11: 2000 转换为 10.0.0.3:1025

Page 25: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 26: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述为什么引入IPv6?

IPv4 可扩展性问题地址空间不足

路由表急剧膨胀IPv6地址长度 128 比特采用层次结构

实时应用支持自动配置

安全性

移动性

IPv4/IPv6 过渡机制

Page 27: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 IETF : http://www.ietf.org

IP Version 6 Working Group 制订 IPv6 规范和标准

IPv6 Operations 为运营 IPv4/IPv6共存的 Internet和在已有的 IPv4 网络或者新的网络安装中部署 IPv6 提供指导

其它 IPv6 相关工作组 6lowpan, mip6, mipshop, monami6, multi6, shim6…

3GPP : http://www.3gpp.org IP 多媒体子系统 (IMS) 使用 IPv6

ITU-T : http://www.itu.int/ITU-T/index.html 在电信网络中采用 IPv6技术

IPv6

标准化进程

Page 28: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 6BONE: http://www.6bone.net

1996年 IETF建立的 IPv6测试床 2004年 1月 1日:不再分配 3ffe前缀 2006年 6月 6日:结束使命

The IPv6 Forum: http://www.ipv6forum.com 倡导 IPv6 ,提升 IPv6 的市场和用户意识 IPv6 Ready Logo Program (Phase 2)

WIDE: http://www.wide.ad.jp KAME, USAGE, TAHI :实现和验证 IPv6 Nautilus6 :移动通信中的 IPv6 应用 ......

IPv6 Cluster: http://www.ist-ipv6.org 欧洲 IPv6研究和开发项目 IPv6 Cluster Member: Euro6IX , 6NET…

Moonv6 多家设备商参与部署的世界上最大的 IPv6 网络

国外IPv6

研究和应用

Page 29: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述国内IPv6

部署

Page 30: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述1 )扩展地址空间, 128位地址2 )改善了选项功能,简化头标3 )修订了参数,增加流标记域

V6: 6 fields + 2 addrV4: 10 fields + 2 addr + options

Deleted: Header length type of service identification, flags,fragment Header Checksum

Added Traffic class Flow label

Renamed: length -> Payload length Protocol -> Next header time to live -> Hop Limit

Redefined: Option mechanism

基本头标格式

Page 31: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 下一头标值 含义0 中继点选项头标4 IP

6 TCP

17 UDP

43 寻路头标44 分片头标45 IDRP

46 RSVP

50 封装化安全净荷51 认证头标58 ICMPv6

59 无下一个头标60 信宿选项头标

扩展头标

Page 32: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 IPv6基本头标 中继点选项头标 信宿选项头标 寻路头标 分片头标认证头标 封装化安全净荷 信宿选项头标

扩展头标处理顺序

中间路由器处理

目的节点处理

Page 33: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述寻路头标

地址 [n]

保留

地址 [0]

下一头标 头标长度 类型 剩余中继点数格式

……..

HL SL

Page 34: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 举例寻路头标

Page 35: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 数据链路层独立于上面的网络层,但是数据链层帧头标中的协议 ID 域需要指明载荷的网络层协议类型

IPv6

和数据链路层

Data-Link IPv4 Protocol ID IPv6 Protocol IDEthernet 0x0800 (Ethertype) 0x86DD (Ethertype)

ATM 0x08000 0x86DD

PPP(IPCP) 0x8021 0x8057

数据链路层IPv4 IPv6

Page 36: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 128位地址可产生 2128 个地址 理论上说,地球上每平方米有 665,570,793,348,866,943,898,599个 IPv6 地址 表示方法采用十六进制冒号分割法

如 1025:1ab6:0:0:0:87:a76f:1234 以上地址还可表示为 1025:1ab6::87:a76f:1234 混合表示

::FFFF:129.144.52.38 地址前缀表示: IPv6 地址 /前缀长度

2001:da8:d800::3/64 URL 中的 IPv6 地址

http://[2001:0:0:A1::1E2A]:7878/webpage.html

IPv6

地址

Page 37: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 IPv6 地址空间分配 :RFC4291

单播地址 (Unicast) 标识单个节点 , 目的地为单播地址的分组被转发到单个节点

组播地址 (Multicast)标识一组节点 , 目的地为组播地址的分组被转发到组中所有节点

任播地址 (Anycast)标识一组节点 , 目的地为任播地址的分组被转发到组中距离最近的节点 (依据路由协议度量的最近距离 )

IPv6

地址类型

•IPv4 地址空间分配•单播地址、组播地址、广播地址

IPv6 中没有广播地址 , 其功能被组播地址所代替

Page 38: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 全局地址

EX: 2001:0:0:A1::1E2A/64 Network Prefix: 2001:0:0:A1 站点局部 (site-local) 地址 (FEC0::/48)(弃用 )

链路局部 (Link-local) 地址 (FE80::/64)

单播地址

10 比特 38 比特 16 比特 64 比特1111 1110 11 0 子网 ID Interface ID

10 比特 54 比特 64 比特1111 111010 0 Interface ID

Network Prefix

Link-LocalSite-LocalGlobal

Page 39: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述格式组播地址

Scope (Hex) Scope (Binary) Description

1 0001 Interface-local scope

2 0010 Link-local scope

4 0100 Admin-local scope

5 0101 Site-local scope

8 1000 Organization-local scope

E 1110 Global-local scope

Page 40: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 根据单播地址前缀生成全局唯一的组播地址

单播地址前缀对应着一个组织的网络,因此这种方式可以为该组织生成全局的组播地址组播地址

Unicast Prefix: 2001:100:abc:1::/64 Unicast Prefix Scope Global: E (Global-local scope)Choose Group ID: 11FF:11EE Resulting Multicast Address: FF3E:0040:2001:100:abc:1:11FF:11EE

Page 41: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述已定义的常用的组播地址

全节点地址: FF01::1(node-local)FF02::1(link-local)

全路由器地址 : FF01::2(node-local)FF02::2(link-local)FF05::2(site-local)

被请求节点地址( Solicited-node address ) FF02:0:0:0:0:1:FFXX:XXXX (X 为单播或者任播地址的低 24 比特部分 )

例如 : 4037::01:800:200E:8C6C FF02::1:FF0E:8C6C

组播地址

Page 42: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述任播地址( anycast address) :从单播地址空间中分配

子网路由器的任播地址任播地址

n 比特 128-n 比特子网前缀 00000000000000000000

Page 43: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述特殊用途IPv6

地址

未指明地址:全 0(::) 在以下两种情况用作发送 IPv6 分组的网络节点的地址

网络节点还没有配置地址 网络接口配置的地址在本地链路上还不能确定是唯一的

回环地址( ::1 ) 指代网络节点本身

Page 44: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 IANA: Internet Assigned Numbers Authority

负责整个 Internet的 IP 地址分配和协调 RIR :地区 Internet注册机构

AfriNIC: Africa Region APNIC: Asia/Pacific Region ARIN: North America Region LACNIC: Latin America and some Caribbean Islands RIPE NCC: Europe, the Middle East, and Central Asia

全局单播地址分配

Page 45: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 APNIC 分配的地址块全局单播地址分配

[Last updated 2006-12-22] For APNICGlobal Unicast Prefix Assignment Date

--------------------- ---------- ------2001:0200::/23 APNIC 01 Jul 99

2001:0C00::/23 APNIC 01 May 022001:0E00::/23 APNIC 01 Jan 032001:4400::/23 APNIC 11 Jun 042001:8000::/19 APNIC 30 Nov 042001:A000::/20 APNIC 30 Nov 042001:B000::/20 APNIC 08 Mar 06

Page 46: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 IPv6 地址前缀分配过程全局单播地址分配

RIR: Regional Internet Registrie NIR: National Internet Registries ISP: Internet service provider LIR: Local Internet Registrie

Page 47: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述全局单播地址分配

Page 48: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

3. IPv6 概述 如果网络节点为主机,需要配置或者处理

Link-local 地址 单播地址 回环地址 全节点组播地址 单播地址所对应的被请求节点地址 节点所属组的组播地址

如果网络节点为路由器,除配置或者处理以上地址外,还需要配置或者处理 作为路由器的所有网络接口的子网路由器任播地址 配置的其它的任播地址 全路由器组播地址

需配置或者处理的地址

Page 49: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

Page 50: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

Page 51: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. 总结

主要内容

Page 52: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 邻机发现: Neighbor Discovery for

IPv6 RFC 2461 地址解析 邻机不可达检测 重定向功能( Redirect ) 路由器和前缀发现

概述

邻机发现机制基于 ICMPv6(Internet Control Message Protocol Version6) 消息实现,因此基本头标中的下一头标值为 58

Page 53: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 ICMPv6 消息

下一头标值为 58 ,指明为 ICMPv6 协议 用于邻机发现时,中继点限制设置为 255

将邻机发现限制在链路范围内概述

Page 54: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 MAC 地址和 IP 地址

数据帧在链路上传送使用 MAC 地址,源 MAC 地址为发送帧的接口的 MAC 地址,而目的 MAC 地址为同一链路上接收帧的接口的 MAC 地址 IP 分组在网络中传输使用 IP 地址,源 IP 地址为发送 IP 分组的主机的 IP 地址,而目的 IP 地址为接收 IP 分组的主机的 IP 地址

地址解析

结论:数据帧在不同链路上传输时,源和目的MAC 地址变化,而源和目的 IP 地址不变

IP

数据链路层

IPA1

MA1

IP

数据链路层

IPA2

MA21

IP

数据链路层IPA3

MA3MA22

Page 55: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 分组发送过程中的地址解析1. 主机查找路由表,确定分组转发的下一跳网络节点 N的 IP 地址

2. 根据网络节点 N的 IP 地址,通过地址解析过程得到其对应的 MAC 地址

3. 主机将节点 N的MAC 地址作为发送帧的目的MAC 地址

地址解析 网络节点 N和主机必在同一个子网内

地址解析过程涉及到的网络节点必在同一个子网内

帧的源 MAC 地址为发送该帧的网络接口的 MAC 地址

Page 56: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 IP 地址到 MAC 地址映射(地址解析)

IPv4组播地址:直接映射

IP 组播地址的低 23位映射到 MAC 地址的低 23位,前面加上 01:00:5E单播地址:地址解析协议 ARP ,链路层机制

IPv6组播地址:直接映射, IP 组播地址的低 32位映射到 MAC 地址的低 32位,前面加上 33:33单播地址:邻机发现机制,基于 ICMPv6 的地址解析,网络层机制

地址解析01 00 5E 0+IP 组播地址低 23位

Page 57: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 地址解析协议 ARP: Address Resolution

Protocol RFC 826

地址解析

Page 58: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 首先,每个主机都有 ARP缓存,用来存放一些 IP 地址与 MAC 地址的对应关系。主机根据分组头上的目的

IP 地址查阅自己的 ARP缓存,如果没查到,就向广播地址发送 ARP请求。 被请求的 IP 地址所对应的主机返回一个 ARP响应。 主机收到响应后,就可发送数据帧,并将该 IP 地址与

MAC 地址对存放在 ARP缓存中

地址解析目的 IP 地址所对应的主机和发送主机在同一个网络内,下一跳网络节点即为目的主机

ARP 过程

Page 59: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 主机上一般配置缺省路由,下一跳网络节点为缺省路由器,主机通过识别目的 IP 地址的网络号,知道它是子网外的主机,直接发给缺省路由器 在同一个子网内,主机通过 ARP 机制获得缺省路由器的 MAC 地址 路由器一般通过路由协议来动态维护路由表,也是通过 ARP 机制获得下一跳网络节点的 MAC 地址

地址解析目的 IP 地址所对应的主机和发送主机在两个不同的网络内,先通过查找路由表确定转发的下一跳网络节点的 IP 地址

ARP 过程

Page 60: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制

B 根据 D的 IP 地址的网络号知道它不属于 NET N1 ,直接将分组发送到缺省路由器 M1 如果在 ARP Cache 中没有缺省路由器的 MAC ,则需要通过 ARP 过程来获取 B 发送帧到路由器,帧的

SrcMAC=MB, SrcIP=N1B, DstMAC=M1, DstIP=N2D 路由器查找自己的 ARP Cache ,获得 D的MAC 地址,将分组向 D 转发,在 N2 网络上的帧的SrcMAC=M2, SrcIP=N1B, DstMAC=MD, DstIP=N2D

地址解析 路由器主机

A主机

B主机

D主机

C

MAC M1NET N1

MAC M2NET N2

B 发送分组给 D

ARP 过程

Page 61: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 ARP 帧格式地址解析 PA

(7B)SFD (1B)

DA (6B)

SA (6B)

Type(2B)

协议类型2B

物理地址长度 1B硬件类型

2B协议地址长度 1B

操作2B

发送者物理地址 发送者IP 地址 目的物理地址 目的

IP 地址

PAD CRC4B

帧类型( Type ): ARP请求及响应为 0X0806硬件类型:指发送者的网络接口类型,如以太网为 1协议类型:指发送者所采用的网络层协议类型,如 IP 协议为 0X0800操作: ARP请求—— 1 , ARP响应—— 2 , RARP请求—— 3 , RARP响应—— 4

Page 62: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制功能:将 IPv6 地址解析成对应的

MAC 地址地址解析

主机 IP地址 以太网地址工作站 FE80::A00:20FF:FE01:C782 08:00:20:01:C7:82

PC FE80::A07:1FF:FE33:D692 08:07:01:33:D6:92

Mac FE80::A00:FF07:FE04:0388 08:00:07:04:03:88

小型机 FE80::A00:FF5A:FE00:B2C4 08:00:5A:00:B2:C4

“ 谁是FE80::A07:1FF:FE33:D692?”

工作站 PC

Mac小型机

工作站 PC

Mac小型机

“ 我是FE80::A07:1FF:FE33:D692”邻机请求 邻机公告

Page 63: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 用于地址解析的邻机请求消息 (NS: Neighbor Solicitation )地址解析—

消息格式

6 业务量类型 流标记:0净荷长度:32 下一头标:58 中继点限制:255

源IP地址:FE80::A00:20FF:FE01:C782

目的IP地址:FF02::1:FF33:D692

IP头标

类型:135 代码:0 校验和

ICMP头标

ICMP选项

对象地址:FE80::A07:1FF:FE33:D692

选项代码:1 选项长度:1发信者链路地址:08002001C782

保留:0

中继点限制 =255, 将地址解析限制在链路范围内 目的地址为对象地址的 solicited-node address,减少开销

FE80:A07:1FF:FE33:D692FF02::1:FFXX:XXXX--FF02::1:FF33:D692MAC: 33:33:FF:33:D6:92

主机 IP地址 以太网地址工作站 FE80::A00:20FF:FE01:C782 08:00:20:01:C7:82

PC FE80::A07:1FF:FE33:D692 08:07:01:33:D6:92

Mac FE80::A00:FF07:FE04:0388 08:00:07:04:03:88

小型机 FE80::A00:FF5A:FE00:B2C4 08:00:5A:00:B2:C4

工作站请求 PC的MAC 地址

Page 64: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 用于地址解析的邻机公告消息 (NA:Neighbor Advertisement )地址解析—

消息格式

6 业务量类型 流标记:0净荷长度:32 下一头标:58 中继点限制:255

源IP地址:FE80::A07:1FF:FE33:D692

目的地址:FF80::A00:20FF:FE01:C782

类型:136 代码:0 校验和

对象地址:FE80::A07:1FF:FE33:D692

选项代码:2 选项长度:1对象链路地址:02070133D692

R S 保留:0

主机 IP地址 以太网地址工作站 FE80::A00:20FF:FE01:C782 08:00:20:01:C7:82

PC FE80::A07:1FF:FE33:D692 08:07:01:33:D6:92

Mac FE80::A00:FF07:FE04:0388 08:00:07:04:03:88

小型机 FE80::A00:FF5A:FE00:B2C4 08:00:5A:00:B2:C4

中继点限制 =255,将地址解析限制在链路范围内 目的地址为工作站

IPv6 地址

PC 应答自己的 MAC 地址

Page 65: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 与 ARP 机制相比较

两者实现相同的功能 ARP 是链路层协议, ARP请求帧在网络内广播,所有主机的链路层模块都必须接收和处理

IPv6 的地址解析机制通过 ICMPv6 消息实现,是网络层机制,而且用于地址解析的邻机请求消息的目的地址为组播地址(对象地址的 solicited-node address ),该地址的低 24位为对象地址的低 24位,因此减少了处理该消息的 主机的范围

地址解析 主机根据 ARP请求中包含的 IP 地址来决定是否回送 ARP响应

主机根据邻机请求中包含的 IP 地址来决定是否回送邻机公告

Page 66: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 邻机不可达检测 NUD: Neighbor

Unreachability Detection 检测主机与其邻近节点的可达性,包括主机到主机、主机到路由器、路由器到主机,只有需要发送分组时才执行 NUD 过程 检测方式

通过与邻机正在进行的高层通信来确认是否可达,例如TCP确认数据段可以用于接收主机可达的指示

通过发送邻机请求消息来看对方是否响应邻机公告来确认是否可达

邻机不可达检测

Page 67: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 邻机缓存 (Neighbor Cache)

记录与最近发送了数据的邻机相关信息 邻机缓存条目

单播地址,是查找的关键字 MAC 地址 ISRouter 标志 待发送的分组队列指针 可达性状态

INCOMPLETE :正在进行地址解析过程,发送了邻机请求 REACHABLE :在 ReachableTime 时间内收到邻机可达的确认 STALE :最近一次收到邻机可达确认超过了 ReachableTime DELAY :最近 DELAY_FIRST_PROBE_TIME 内发送了一个分组,但是还没有收到可达性确认(来自上层的确认指示) PROBE :发送邻机请求开始可达性确认过程

主机发送分组前,先根据目的地址检查邻机缓存中是否有相应的条目 如果没有,创建新条目,开始地址解析过程 如果有,是否有效(可达性状态为 REACHABLE ),如果有效,则直接使用,否则对邻机的可达性进行探测

邻机缓存

Page 68: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 邻机缓存状态转移邻机缓存

INCOMPLETE REACHABLE STALE

DELAYPROBE

发送分组发送邻机请求,开始地址解析过程

地址解析失败

Delete

收到可达性确认(上层确认或者被请求的邻机公告) 最近一次收到可达性确认超过 ReachableTime

节点给邻机发送一个分组

收到可达性确认在DELAY_FIRST_PROBE_TIME未 收到可达性确认发送邻机请求

发送MAX_UNICAST_SOLICIT 个邻机请求无相应

收到可达性确认

收到非请求的邻机公告 、路由器公告以及路由器请求、重定向、邻机请求等

Page 69: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

hclu@HP1:~$ /sbin/ip -6 neigh show

fe80::21d:fff:fe22:7431 dev eth0 lladdr 00:1d:0f:22:74:31 router STALE

hclu@HP1:~$ ping6 2001:da8:d800:1075::1

PING 2001:da8:d800:1075::1(2001:da8:d800:1075::1) 56 data bytes

64 bytes from 2001:da8:d800:1075::1: icmp_seq=1 ttl=64 time=6.33 ms

hclu@HP1:~$ /sbin/ip -6 neigh show

2001:da8:d800:1075::1 dev eth0 lladdr 00:1d:0f:22:74:31 router REACHABLE

fe80::21d:fff:fe22:7431 dev eth0 lladdr 00:1d:0f:22:74:31 router REACHABLE

发送数据前

发送数据后

2001:da8:d800:1075::1fe80::21d:fff:fe22:7431

Page 70: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 路由器为特定的目的主机发送重定向消息将主机重定向到一个更优的路由器或者告诉主机目的主机实际上是在同一链路上的邻居节点

重定向

PC

左路由器 右路由器 令牌环小型机

重定向

PC

左路由器 右路由器 令牌环小型机

“以后发往小型机的业务量”应向右路由器重定向重定向消息

Page 71: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制重定向

6 业务量类型 流标记:0净荷长度 下一头标:58 Hop限制:255

源IP地址:左路由器

目的IP地址:PC机

类型:137 代码:0 校验和保留:0

对象地址:右路由器

被重定向的目的IP地址:小型机

选项代码:2 选项长度:1对象链路地址:右路由器

选项代码:4 选项长度 保留:0保留:0

在重定向报文的总长度不超过1280字节的范围内把成为重定向的原数据报的一部分复制在此域内

PC

左路由器 右路由器 令牌环小型机

“以后发往小型机的业务量”应向右路由器重定向重定向消息

左路由器给 PC 机发送重定向消息

Page 72: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 路由器通过路由器公告来告诉主机自己的存在,并且在该消息中包含有子网 IPv6 地址前缀信息路由器和前缀发现

工作站 PC

Mac 小型机

路由器

“ ”我是路由器路由器公告周期性发送

Page 73: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 路由器公告消息 RA: Router Advertisement路由器和前缀发现—

消息格式

6 业务量类型 流标记:0净荷长度 下一头标:58 HOP限制:255

源IP地址:4C00::200:CFF:FE09:4B76

目的IP地址:FF02::1

类型:134 代码:0 校验和

最大中继点 M O 保留 路由器生存时间

可到达时间已过

选项代码:1 选项长度:1发送者链路地址:00000C094B76

选项代码:5 选项长度:1 保留

MTU尺寸选项代码:3 选项长度:4 前缀长度:64 L A

有效生存时间推荐生存时间

保留

前缀:4C00::200:CFF:FE09:4B76

可到达的重发间隔

中继点限制为 255 ,只在链路范围内有效目的地址为链路范围内全节点地址

Page 74: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 主机通过路由器请求消息实现路由器和子网

IPv6前缀发现路由器和前缀发现工作站 PC

Mac 小型机

路由器

路由器请求

笔记本电脑

Page 75: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 路由器请求消息

主机向链路范围内全路由器组播地址发送路由器请求消息 路由器响应路由器公告消息

路由器和前缀发现

6 业务量类型 流标记:0净荷长度:16 下一头标:58 Hop限制:255

源IP地址:FE80::260:8CFF:FE14:9252

目的IP地址:FF02::2

类型:133 代码:0 校验和

保留选项代码:1 选项长度:1

发送者链路地址:00608C149252

Page 76: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 代理邻机发现: Proxy Neighbor Discovery

RFC2461移动环境下的邻机发现 主机 A

主机B

路由器 R

主机A

移动

代理邻机发现:拦截发往主机 A的 IP 分组

Page 77: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

4. 邻机发现机制 代理邻机发现过程移动环境下的邻机发现

主机 AIP 地址: IPA

MAC 地址: MACA主机B

路由器 RMAC 地址: MACR

①邻机请求( 对象地址为 IPA)

②邻机公告( 对象链路地址MACR)

1 )代理主机 A 的邻机发现的路由器 R 加入 IPA 的被请求节点地址 (Solicited-node Address)2 )路由器 R 收到主机 B 发送的对象地址为 IPA 的邻机请求消息,它应答邻机公告消息,其中的对象链路地址为 MACR

此后,主机 B 发往 IPA 的分组将发送到路由器 R ,从而实现对到主机 A 的分组的拦截

Page 78: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 79: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 无状态 (stateless) 地址自动配置

RFC2462 不需要对主机进行手动配置 只需要很少的路由器配置 不需要额外的服务器 不易管理

有状态 (stateful) 地址自动配置 (DHCPv6) RFC3315 从服务器获取接口地址和 / 或者 DNS、WINS等配置信息 易于管理

概述

Page 80: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置

IPv6 接口标识 基于 EUI-64 地址 基于随机接口标识

地址重复检测

无状态地址自动配置

发送路由器请求消息接收到路由器公告消息

根据路由器公告消息中的网络前缀和生成 IPv6 接口标识,自动生成全局 IPv6 地址对生成的 IPv6 地址做地址重复检测,以确定没有被其它主机使用

成功?使用生成的全局 IPv6 地址

Y

N 其它处理

IPv6前缀 IPv6 接口标识64 bits

64 bits

路由器公告

全局地址

FE80 IPv6 接口标识64 bits

64 bits链路局部地址

Page 81: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 MAC 地址,也称为 IEEE 802 地址

U/L :全局 (0)还是本地管理 (1) I/G :单播 (0)还是组播 (1) 对于一般的 802 网络接口, U/L和 I/G 比特都设置为 0

无状态地址自动配置—EU

I-64

地址

Page 82: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 EUI-64 地址

RFC2373 一种新的网络接口地址标准

为网络接口卡制造商来提供了更多的地址空间 U/L :全局 (0)还是本地管理 (1) I/G :单播 (0)还是组播 (1)

无状态地址自动配置—EU

I-64

地址

Page 83: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 802 地址到 EUI-64 地址的映射

在 802 地址的 company ID和 extension ID之间插入 16 比特 (0xFFFE)

无状态地址自动配置—EU

I-64

地址

Page 84: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 EUI-64 地址到 IPv6 接口标识的映射

EUI-64 地址的 U/L 比特取反, I/G 比特不变无状态地址自动配置—

EUI-64

地址

Page 85: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 802 地址到 IPv6 接口标识的映射无状态地址自动配置—

EUI-64

地址

IPv6前缀 IPv6 接口标识64

bits64

bits

IPv6 地址

Page 86: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置无状态地址自动配置—

EUI-64

地址 主机 IP地址 MAC地址工作站 FE80::A00:20FF:FE01:C782 08:00:20:01:C7:82

PC FE80::A07:1FF:FE33:D692 08:07:01:33:D6:92

Mac FE80::A00:FF07:FE04:0388 08:00:07:04:03:88

小型机 FE80::A00:FF5A:FE00:B2C4 08:00:5A:00:B2:C4

基于 EUI-64生成链路局部地址实例

10 比特 54 比特 64 比特1111 111010 0 Interface ID

IPv6 接口标识FE80::

对于同一链路或者网络内的节点之间的通信,包括邻机发现机制,节点一般使用链路局部地址

Page 87: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 随机接口标识

RFC 3041 从安全角度考虑,提供一定程度的匿名性

不包括网络接口标识信息 (MAC 地址 ) 随机接口标识初始化过程

若不能存储历史信息 每次初始化 IPv6 协议栈的时候生成新随机接口标识

若支持存储历史信息1. 获取历史值,并且将其附到基于 EUI-64 地址的接口标识上2. 对于 1 中生成的值计算一个 128 比特的 MD5摘要3. 取 2 中最左边的 64 比特并且将第 6 比特(最左边的比特号为 0 )设置为 0 ,生成一个全局的随机接口标识4. 取 2 中最右边的 64 比特并且将其保存,作为下一次计算的历史值

无状态地址自动配置—

随机接

口标识

Page 88: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置临时地址

基于随机接口标识的全局 IPv6 地址也被称为临时地址 由 IPv6 地址前缀+随机接口标识构成 具有更小的 valid和 preferred lifetime 当 valid lifetime 过期后重新生成接口标识和临时地址

无状态地址自动配置—

随机接

口标识

Windows CE .NET 4.1及其以上版本生成基于随机接口标识的临时地址注意:为了保护隐私, Windows Vista和Windows Server Longhorn缺省使用随机接口标识生成非临时地址

Page 89: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 地址重复检测 DAD: Duplicate

Address Detection 当采用自动地址配置时,需要避免多台主机配置同一个 IPv6 地址。该功能由地址重复检测机制来完成

无状态地址自动配置—

地址

重复检测

Page 90: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置无状态地址自动配置—

地址

重复检测①路由器公告

②生成 IPv6 地址(DAD 地址 )随机延时0~1000ms

② DAD 地址状态设置为不可用(IFA_F_TENTATIVE)

④DAD 成功开始使用 DAD 地址 发送邻机请求的个数n=1发送间隔Tret=1000ms

注意:1. 在发送邻机请求前,接口必须加入全节点组播地址 (FF02::1)和生成 IPv6地址的 solicited-node 组播地址,即接收目的地址为这些 IPv6 地址的分组2. 邻机请求的对象地址域为需要 DAD 的地址,源地址为 :: 目的地址为对象地址的 solicited-node 组播地址3. 上图中给出的参数值是在 Linux操作系统下的缺省值,这些参数可根据需要配置

③邻机请求Solicited-node addr 0 ③邻机请求

0 solicited-node addr Prefix 3FFE:3216::/64

PC MAC 08:07:01:33:D6:92

则有:PC 基于 EUI-64 的地址3FFE:3216::A07:1FF:FE33:D692

PC Solicited_node addrFF02::1:FF33:D692

PC

Page 91: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 地址重复处理

当主机收到对象地址域为其正在做 DAD检测地址的邻机请求时,如果请求的源地址类型为 IPV6_ADDR_ANY(全0 地址 ::) ,则主机从接口上删除这个地址, DAD检测失败,否则主机不处理此请求

当主机收到对象地址域为其正在做 DAD检测地址的邻机公告时,则主机从接口上删除这个地址( DAD检测失败)

如果主机为某个 IPv6 地址完成 DAD检测后,收到来自其它主机发送的对象地址域为此 IPv6 地址的用作 DAD检测的邻机请求(此时该请求的源地址为 IPV6_ADDR_ANY ),则主机应该向全节点地址( ff02::1 )发送邻机公告

无状态地址自动配置—

地址

重复检测 有多台主机对同时对同一 IPv6 地址开始 DAD 过程

检测到地址重复

检测到地址重复

Page 92: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置无状态地址自动配置—

地址

状态

Page 93: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

5. IPv6 地址自动配置 首先,主机为网络接口自动配置链路局部地址

生成 64 比特的 IPv6 接口标识 48 比特 MAC 地址 64 比特 EUI-64 地址 IPv6 接口标识 随机接口标识

组合前缀 FE80::/64和 IPv6 接口标识 DAD

其次,主机为网络接口自动配置全局地址 主机发送路由器请求消息,路由器响应路由器公告消息 生成 64 比特的 IPv6 接口标识

48 比特 MAC 地址 64 比特 EUI-64 地址 IPv6 接口标识 随机接口标识

组合路由器公告网络前缀和 IPv6 接口标识 DAD

无状态地址自动配置—

总结 对于同一链路或者网络内的主机之间的通信,包括邻机发现机制,主机一般使用链路局部 地址

Page 94: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 95: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

6. IPv6 中的一些其它机制 路由最大传输单元( PMTU: Path

Maximum Transmission Unit ) PMTU=min{MTU1, MTU2, …, MTUn}

利用 ICMPv6差错消息 Packet Too Big

MTU1 MTU2 MTUn….Source

DestinationRouter1 Router2

路径最大传输单元发现在 IPv6 中,要求任何链路的 MTU 不能小于 1280字节 [RFC 2460]

Page 96: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

6. IPv6 中的一些其它机制 PMTU 发现过程

1. 最初,主机假设 PMTU 为第一跳链路的的 MTU ,并且使用该MTU 发送分组2. 如果分组的大小超过了路径上某个路由器到其连接链路

的MTU ,该路由器将丢弃分组,并且向发送该分组的源主机回送 Packet Too Big ICMPv6 消息,在该消息中包含了路由器连接链路的 MTU3. 收到 Packet Too Big ICMPV6 消息后,主机根据其中包含的 MTU 来发送分组,需要注意的是,主机不会使用小于 1280字节的 MTU4. 以上过程可能在分组到达最终的目的主机之前进行多次,当分组到达其最终的目的主机以后, PMTU 发现过程结束

路径最大传输单元发现从给定源主机到目的主机的路径可能变化,因此 PMTU也可能变化, PMTU 发现机制如何处理这种情况?

Page 97: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

6. IPv6 中的一些其它机制路径最大传输单元发现

Page 98: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 99: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡过渡过程

IPv4 OnlyIPv4

IPv6 IPv6

IPv6

IPv6

IPv4 IPv4

IPv4

IPv6 Only

当前状态

Page 100: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 IPv4/IPv6双协议栈 转换机制隧道技术

IPv4/IPv6

过渡机制

Page 101: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制双协议栈( Dual Stack )IPv4/IPv6

双协议栈—

结构 PA(7B)

SFD (1B)

DA (6B)

SA (6B)

Type(2B) PAD CRC

4BIPv4/IPv6 Packet

(0~1500B)

0x0800: IPv40x86dd: IPv6

Frame

UDP/TCP

Current (Linux, windowsXP) Next(windows Vista)

网络接口 网络接口

Page 102: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制

IPv4/IPv6

双协议栈—

原理

适配IPv6和IPv4的DNS服务器

IPv6/v4网络

IPv6/v4双协议栈主机

IPv6主机bbs6.ustc.edu.cn

IPv4主机bbs.ustc.edu.cn

①查询与主机名对应的IP地址

...

②根据指定的IPv6或IPv4地址开始通信

bbs6.ustc.edu.cnbbs.ustc.edu.cn

2001:da8:d800::3202.38.64.3

...

主机名 IP地址

Page 103: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制 NAT-PT: Network Address Translation-Protocol Translation转换机制

interface Ethernet0/0 ipv6 address 3ffe:100:200:1::2/64

interface Ethernet1/0 ip address 192.168.1.2 255.255.255.0

!Entry for static mapping of v4 source->v6-ipv6 nat v4v6 source 192.168.1.1 3ffe:b00:1::1!Entry for mapping of v6 source->dynamic v4ipv6 nat v6v4 source list pt1 pool v4poolipv6 nat v6v4 pool v4pool 10.50.10.1 10.50.10.10 prefix-length 24ipv6 nat prefix 3ffe:b00:1::/96!

Page 104: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制 IPv6 over IPv4 or IPv6-in-IPv4隧道封装隧道技术—

隧道封装通过将一个传输协议( IPv6 )作为负载封装在另一个协议( IPv4 )中,实现被封装的协议数据单元( IPv6 )通过封装协议的网络( IPv4 网络)进行传输

Page 105: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制隧道技术—

协议体系结构

Page 106: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制 IPv6 over IPv4 or IPv6-in-IPv4 Tunneling隧道技术—

隧道拓扑

Router-Router

Host-RouterRouter-Host

Host-Host

Page 107: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制隧道类型

手工配置隧道 (Configured Tunneling)对每个 IPv6 分组,都事先手工配置它所对应的隧道的端点,主要是用于隧道封装所需的 IPv4地址

自动配置隧道 (Automatic Tunneling)分组中所包含的 IPv6 地址决定隧道的端点,主要是指用于隧道封装所需的 IPv4 地址

隧道技术—

隧道类型

这里讨论的是 IPv6 分组如何通过 IPv4 网络传输的情况

自动配置的本质是建立一个 IPv6 地址到 IPv4 地址之间的映射关系

Page 108: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制隧道技术—

手工配置隧道

Page 109: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 6to4 ISATAP 6over4 :需要 IPv4 组播支持 Teredo: IPv6/IPv4 主机穿越 IPv4

NAT

隧道技术—

自动配置隧道

Page 110: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡机制 自动配置隧道时对应的地址隧道技术—

自动配置隧道

Router-Router

Host-RouterRouter-Host

Host-Host

6to4 地址

ISATAP 地址

ISATAP 地址、 Teredo 地址

自动配置的本质是建立一个 IPv6 地址到 IPv4地址之间的映射关系

Page 111: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 通过 IPv4 网络连接孤立的 IPv6 网络的自动隧道技术

Router—Router Tunneling ,隧道的两个端点为 6to4 路由器 6to4 网络中的 IPv6 主机使用 6to4 IPv6 地址:包含了作为隧道端点的 6to4 路由器的 IPv4 地址

自动配置隧道—6to4

Page 112: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡体系结构自动配置隧道—

6to4

6to4 主机:最少配置了一个 6to4 IPv6 地址6to4 路由器: IPv6/IPv4双栈路由器,执行隧道封装和解封装操作,在 6to4 主机和其它的 6to4 路由器或者 6to4 Relay 路由器之间通过隧道转发目的地址为 6to4 IPv6 地址的数据6to4 relay 路由器: IPv6/IPv4双栈路由器,在 IPv6 网络的主机和 6to4 路由器之间转发目的地址为 6to4 IPv6 地址的数据

Page 113: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 6to4 地址

6to4 路由器在连接的 6to4 网络中公告前缀 2002:V4ADDR:SubnetID::/64 ,主机根据该前缀自动配置 6to4 地址

自动配置隧道—6to4

6to4 路由器IPv4 地址

前缀

Page 114: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 实例自动配置隧道—

6to4

6to4路由器上路由表项: 2002::/16 其它 6to4站点 缺省 (::) 6to4 relay router

Src=2002:C251:2E01:1:IDA

Dst=2002:C253:6A06:2:IDB

Src=2002:C251:2E01:1:IDA

Dst=2002:C253:6A06:2:IDBA B

2002:C251:2E01:1::/64 2002:C253:6A06:2::/64

2002:C251:2E01:1:IDA 2002:C253:6A06:2:IDB

Page 115: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 ISATAP: IntraSite Automatic Tunnel

Addressing Protocol 通过多跳 IPv4 网络在主机和 IPv6 路由器以及主机和主机之间传输 IPv6 分组的自动隧道技术

Host—Host Tunneling Host—Router Tunneling

自动隧道—ISA

TAP

Page 116: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 ISATAP 地址自动隧道—

ISATA

P

ISATAP Identifier

ISATAP 主机根据自己 IPv4 地址生成 ISATAP 链路局部地址,然后向 ISATAP 路由器发送路由器请求(已配置 ISATAP 路由器的 IPv4 地址),该消息使用链路局部地址,并且通过隧道发送。ISATAP 相应路由器公告, ISATAP 主机根据公告中的前缀生成全局的 ISATAP 地址

Page 117: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡实例自动隧道—

ISATA

P A、 B 的缺省路由: 缺省 (::) FE80::5EFE:C0A8:0301

对于同一链路上的业务: ISATAP 地址前缀相同 A、 B交换 IPv6 分组使用链路局部地址,通过之间的 IPv6-in-IPv4隧道转发对于不同链路上的业务: ISATAP 地址前缀不同 根据缺省路由, A、 B将 IPv6 分组通过 IPv6-in-IPv4隧道发送到 ISATAP 路由器

Page 118: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 主机到主机的自动隧道机制

具体针对 IPv6/IPv4 主机位于 NAT之后的场景

Teredo 使用 UDP 封装 IPv6 分组,以穿越 IPv4 NAT

NAT<私有 IP 地址,端口号X>

< 全局 IP 地址,端口号Y>

自动隧道—Teredo

Page 119: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡

NAT前: IPint: 内部私有 IP 地址 Pint :内部端口号NAT后: IPext :外部全局 IP 地址 Pext :外部端口号IPdest :目的主机 IP 地址 Pdest :目的主机端口号

NAT 表:<IPint, Pint> <IPext, Pext>

自动隧道—Teredo

Page 120: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡

Teredo Client :位于 NAT之后需要访问 IPv6 网络的节点。该节点支持 Teredo UDP隧道接口,通过该接口可以将分组通过 Teredo Relay 发送给其它的 Teredo client 或者 IPv6 网络中的节点。 Teredo Client 通过Teredo Server 来获取前缀并且配置基于 Teredo的 IPv6 地址Teredo Server :帮助 Teredo Client 实现 IPv6 连接,包括帮助 Teredo Client 进行地址配置,帮助发起建立Teredo Client之间以及 Teredo Client和仅支持 IPv6 的主机之间的通信。 Teredo Server在 3544 端口上监听Teredo业务,例如接收和相应来自 Teredo Client 的路由器请求消息Teredo Relay :接收 IPv6 网络发往 Teredo Client 的数据,并且将其发送给 Teredo Client 的隧道接口。接收Teredo Client 通过隧道接口发送的数据,并且将其转发给 IPv6 网络

自动隧道—Teredo

Page 121: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡 Teredo 地址结构

Teredo 地址配置 Teredo Client和 Teredo Server交换路由器请求消息和路由器公告消息, Teredo Client 获得:

64 比特的前缀(包含在路由器公告中) NAT 类型 NAT后的 IP 地址和端口号(也通过路由器公告获得)

2001::/32 全局 IPv4 地址 NAT 类型 NAT后的端口号 NAT后的 IP 地址

注意: Teredo Client需配置 Teredo Server 的地址

自动隧道—Teredo

Page 122: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

7. IPv4/IPv6 过渡Teredo Client 与仅支持 IPv6 的主机通信, NAT 类型为 cone NAT

1. Teredo Client 通过 Teredo Server 发送 IPv6 Echo Request ,以确定为 IPv6 Only 主机提供服务的 Teredo Relay2. Teredo Server将 echo request 转发给 IPv6 Only 的主机3. IPv6 Only 主机发送 echo reply ,其目的地址为 Teredo Client 的地址。 IPv6 Only 主机通过到 2001::/32的路由将该分组发送给最近的 Teredo Relay4. Teredo Relay从 echo reply的 Teredo 地址中提取出外部 IP 地址和端口号,并且通过隧道发送给 Teredo

Client。由于使用的是 cone NAT ,该分组将穿越 NAT 发送给 Teredo Client5. Teredo Client 通过接收到的分组确定 Relay的 IPv4 地址,并且开始通过 Teredo Relay往 IPv6 Only 主机发送分组6. Teredo Relay 提取出 IPv6 分组,并且将其转发给 IPv6 Only 主机。接下来的通信也沿同一路径

自动隧道—Teredo

Page 123: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 124: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

8. IPv6 相关应用程序接口 应用程序使用 TCP 或者 UDP 协议进行通信

TCP 提供可靠的流服务,在发送数据之前需要连接建立过程 UDP 提供不可靠的数据报服务,不需要建立连接就可以发送数据

TCP和 UDP 以原语( Primitives )的方式向应用提供服务,原语带有参数来传递信息,这些参数包括源 / 目的端口号, IP 地址等

原语

Page 125: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

8. IPv6 应用程序接口 原语的实现形式依赖于具体的操作系统,一般以子程序或者函数调用的形式实现 基于 Socket 的原语实现成为 TCP/IP和 UDP/IP 应用程序编程事实上的 API 标准

Socket :不严格地说,用来描述通信端点的术语 类 Unix、Windows 等操作系统采用

Socket API

Page 126: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

8. IPv6 相关应用程序接口针对 IPv6 的扩展

核心 Socket函数 地址数据结构 地址相关函数

Socket API

扩展原因:地址长度不同, API 中需要指定具体的 IP 协议版本

RFC 3493

Page 127: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

8. IPv6 相关应用程序接口 核心 Socket函数

生成 socket 建立和拆除连接 发送和接收分组

Socket API

独立于协议,代码不需要修改,但使用时需要指明协议类型

IPv4 Socket IPv6 Socket

Page 128: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

8. IPv6 相关应用程序接口 地址数据结构

通用地址结构: socket函数使用

IPv4 协议地址结构

IPv6 协议地址结构

Socket API

Page 129: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

8. IPv6 相关应用程序接口 地址相关函数

名字(域名)到地址转换函数gethostbyname()getaddrinfo()

地址转换函数inet_addr()inet_pton()Inet_ntoa()inet_ntop

Socket API

Page 130: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

下一代互联网协议 IPv61. 为什么要引入 IP ?2. IPv4 的可扩展性问题3. IPv6 概述4. 邻机发现机制5. IPv6 地址自动配置6. IPv6 中的一些其它机制7. IPv4/IPv6 过渡8. IPv6 相关应用程序接口9. 总结

主要内容

Page 131: 第四章下一代互联网协议 IPv6

2008 年信息通信网课程

9. 总结 NAT 原理,特别是 NAPT 原理 IPv6与 IPv4 相比的特性 一些 IPv6 地址,例如链路范围内全节点

IPv6 地址、全路由器 IPv6 地址以及被请求节点的 IPv6 地址 IPv6 邻机发现机制,重点是地址解析、路由器和子网 IPv6前缀发现基于 EUI-64 地址的 IPv6 地址自动配置机制 IPv4/IPv6 过渡中重点是自动隧道机制,特别是 6to4 的原理

本章要点