IP V6单播数据转发 ISSUE 4.0 此为封面页,需列出课程编码、课程名称和课程开发室名称。 要求:每个子课程(6位编码的课程)要求做一个这样的胶片,胶片文件命名为“课程编码 课程名称.ppt”。 此页胶片仅在授课时使用,胶片+注释中不使用。 封面页按产品分为4个,各产品使用自己的封面,把其他封面直接删除即可。
学习目标 学习完本课程,您应该能够: 理解IP V6单播报文在路由器和PC之间的转发过程 理解IP V6单播路由协议基本原理及其功能 2 此页列出学习本课程需要达到的目标。 此页胶片仅在授课时使用,胶片+注释中有单独的文字说明课程目标,不需要再使用该页胶片。 2
概述 IP V6报文转发基本思想与IP V4类似: IP V6报文转发的基本数据结构 根据目的地址获得下一跳三层地址和发送接口 通过地址解析获取下一跳三层地址对应的链路地址 IP V6报文转发的基本数据结构 路由表:完全类似于IP V4路由表 邻居缓存:类似于ARP表,其中存储同一链路上邻居二三层地址之间的对应关系 IP V6报文转发的基本问题就是:如何建立、维护与利用这两个数据结构 3
IP V6邻居缓存 与IP V4不同的是,IP V6邻居表不是依赖链路层建立和维护的,而是利用ICMP V6协议在网络层建立与维护的。IP V6 Neighbor Discovery包含这个功能。 4
IP V6路由表 我们将介绍主流的IP V6路由协议! 5
两种情形 为了清晰描述IP V6转发技术,我们准备讨论如下两种情形下的IP V6通信 源和目的在同一个链路上 源和目的不在同一个链路上 地址解析 邻居维护 源和目的不在同一个链路上 Pc-Router 路由器发现, 重定向, 目的表维护 Router-Router RIPng, OSPF, IS-IS, BGP 6
课程内容 同一链路上的数据转发 不同链路上的数据转发 7 此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。 7
我们的研究对象 我们将探讨如下组网中PC1和PC2的通信过程 两台PC均为支持IP V6的Windows XP主机 1::1 1::2 Switch 8
大致通信过程 设若PC1要发送一个报文给PC2,主要的通信流程为: 9 Switch 1::1 1::2 Switch Application want to send packet to 1::2 S:1::1 D:1::2 data [Multicast] ICMP Neighbor Solicitation Please tell me Link Address for 1::2 Create a 1::2 entry in neighbor cache [Unicast] ICMP Neighbor Advertisement Link Address for 1::2 is 00-10-5c-e5-f2-39 Add <1::2, 00-10-5c-e5-f2-39> map to Neighbor Cache D:00-10-5C-E5-F2-39 S:00-0D-56-6D-6F-FC S:1::1 D:1::2 data 9
一个问题! 注意到这里没有“掩码 ” 的概念,那么这里就有一个问题: PC1怎么触发地址解析动作的呢? 这里有一个重要假设:在没有路由信息的情况下,PC1假定1::2就和它自己在同一个链路上,由此触发地址解析过程。 10
Neighbor Solicitation 如下是PC1发出的Neighbor Solicitation 11
Neighbor Solicitation的IP V6头部 Neighbor Solicitation的Hop Limit被设置为255而不是显见的1的主要原因可以防止远程用户发送Neighbor Discovery报文。 Neighbor Solicitation发送的目的地址FF02::1:FF00:2是一个Solicited-Node组播地址,它是基于1::2映射得到的:1::2自然属于这个组。 这种方法比IP V4的广播方法有什么好处? 12
Node Solicitation的ICMP部分 Target字段用来提出问题:请告诉我1::2的链路地址 ICMP选项Source Link-Layer Address用于向对方通告自己的链路层地址以供对端回应二层单播Neighbor Advertisement之用 13
Neighbor Advertisement 如下是PC2回应给PC1的Neighbor Advertisement Same as Solicitation R Router flag S Solicited flag O Override flag 14
ICMP部分 Target 1::2和Target Link-layer Address选项回答了Solicitation提出的问题:即1::2的链路层地址。 Solicited标志用于保证Pc1和Pc2之间是双向可达的 IP V4的ARP机制有在单向可达情况下安装一条ARP表项的可能性 15
邻居缓存 地址解析的结果使得Pc1在邻居表中添加了如下表项,这样后续的通信就可以使用这个表项进行通信了. 那么,如何维护邻居状态呢? 16
邻居缓存表项状态 每个邻居缓存表项可能处于如下几个状态,我们将以一个典型通信过程来说明这些状态。 INCOMPLETE REACHABLE STALE DELAY PROBE 17
典型邻居状态迁移 Switch 18 PC1 PC2 1::1 1::2 上层要发送报文 <1::1, 1::2> 邻居表中没有1::2项: 添加[1::2, , Incomplete] Multicast Neighbor Solicitation:[1::2, ?], [1::1, MAC1] 添加邻居缓存项 <1::1,MAC1, STALE> Unicast Neighbor Advertisement:[1::2, MAC2] 修改为[1::2,MAC2,Reacheable] [MAC1 to MAC2]Echo Request 修改 <1::1, MAC1, Delay> [MAC2 to MAC1]Echo Reply 修改 <1::1, MAC1,Probe> Unicast Neighbor Solicitation:[1::1,?],[FE80::,MAC2] Neighbor Advertisement:[1::1,MAC1] 修改 <1::1, MAC1, Reachable> RECHEABLETIME以后。。。 Neighbor Unreachability Detection 修改 <1::1, MAC1, Stale> 上层要发送报文 <1::2, 1::1> Unicast Neighbor Advertisement:[1::2, MAC2] 18
为什么这样? V6 VS V4 地址解析消息目的地为组播地址减少了无效处理 邻居不可达性检测加强网络“鲁棒性” IP V6地址解析可以检测出单向可达路径 255的Hop Limit可以提供某种安全机制 地址解析功能在三层实现加强了媒体独立性,同时可以利用三层安全机制 19
课程内容 同一链路上的数据转发 不同链路上的数据转发 20 此页为了让学员和老师对课程安排有一个大致的了解。 此页列出本课程的主要培训标题,列出每章的名称即可。如果章下面的节不多,在此页可以一并列出。 此页胶片仅在授课时使用,胶片+注释中有专门的目录和标题,不需要重复使用该页面。 20
不在同一链路上节点间的通信 简单来说,不在同一链路上的节点之间的通信涉及如下两个问题: 如何在PC与路由器之间转发数据 Router & Prefix Discovery Next-hop Determination Redirect 如何在路由器和路由器之间转发数据 Routing Protocols 21
Topics PC-Router Router-Router 22 此页用来描述该章的授课内容,方便老师授课。 这种形式适合于本章下面不再细分节的情况。 内容处将本章要讲解的主要内容列成简练的标题。 此页仅授课时使用,胶片+注释不引用。 22
Router & Prefix Discovery IP V6通信的前提是主机要有一个IP V6地址。IP V6地址可以是手工配置的、有状态自动配置或是无状态自动配置的。 和IP V4一样,一个主机要和不在同一链路上的主机通信必须要在主机上有路由:一般来讲就是一个缺省网关。网关一样可以是手工配置、有状态自动配置或是无状态自动配置的。 我们的重点是无状态自动配置。 23
Router & Prefix Discovery 正如我们在“IP V6地址自动配置”中所讲的那样,Router & Prefix Discovery功能主要由Neighbor Discovery协议的Router Solicitation和Router Advertisement两个消息完成。 Router Solicitation 主机发送的用于探测路由器的存在,希望链路上的路由器给它回应Router Advertisement Router Advertisement 路由器回应Router Solicitation,分发网关和前缀等信息 路由器“伪定期”自动发送的用于刷新维护网关和前缀等信息 24
Pc-Router Startup案例 我们用如下例子来讨论Router Discovery. RT1 自动 配置 自动 配置 PC2 ipv6 interface Ethernet1/0 ipv6 address 1::1/64 undo ipv6 nd ra halt interface Ethernet3/0 ipv6 address 2::1/64 25
Router Solicitation 三个关键点 源地址是链路本地地址 目的地址是ALL ROUTERS 携带Source link-layer address 26
Router Advertisement 关键点 目的地址是ALL_NODES Router Lifetime非零表示源地址“FE80::2e0:fcff:fe20:d6a8”准备成为一个缺省路由器 Prefix用于地址自动配置 27
结果 结果有二 获得一个全局IP V6地址 获得一个缺省网关 28
Next-Hop Determination Pc1如果要和Pc2通信,那么一个必然的步骤就是根据Pc2的目的地址确定下一跳,即根据路由查找到RT1 E1/0的三层地址 和IP V4不同的是:IP V6在ND协议里明确规定了主机应该缓存这个查找结果以加快后续查找过程 RT1 自动 配置 E1/0 E3/0 自动 配置 PC2 PC1 29
优化 确定了下一跳地址以后,就可以查找邻居表得到其二层地址并将报文发送给路由器了。[如果没有命中呢?] 问题: 如果一个链路上有多个路由器,PC如何选择合适的路由器呢?答案有二: 路由:PC上可以将“缺省网关”按照路由的方式来管理。 重定向:由路由器通知PC使用合适的缺省网关。 在没有网关的情况下,PC缺省认为一个目的地与自己在同一链路上;有网关的情况下,PC会将它认为不在同一链路上的数据包都送给缺省网关,这里的问题是:如果路由器发现这个目的原来是和源在同一网段呢? 答案依然是重定向 30
ICMP Redirect 重定向过程 31 RT1 PC1 PC2 RT2 PC2-1 Redirect to RT2 Default Gateway! Change Destination Cache! PC1 PC2-1 PC2-2 PC2-1 RT2 PC2 PC2-2 31
重定向报文 关键点 源地址必须是路由器地址 目的地址是报文源 Target是重定向地址:建议网关地址或是目的地址(如果目的地址和源在同一链路上) 32
下一步呢? 路由器收到报文以后怎么办呢? 33
Topics PC-Router Router-Router 34 此页用来描述该章的授课内容,方便老师授课。 这种形式适合于本章下面不再细分节的情况。 内容处将本章要讲解的主要内容列成简练的标题。 此页仅授课时使用,胶片+注释不引用。 34
Router-Router IP V6路由器的基本思想与IP V4完全一致: 数据转发以IP V6路由表为基础 35
IP V6路由来源 与IP V4类似,IP V6路由可能来自于 链路层直接发现 静态路由 动态路由协议 36
链路层直接发现的路由 链路层发现的路由是指路由器接口主机路由与前缀路由 37 [rt1]dis ipv6 routing-table Destinations : 6 Routes : 6 Destination : ::1 PrefixLength : 128 NextHop : ::1 Preference : 0 Interface : InLoopBack0 Protocol : Direct State : Active NoAdv Cost : 0 Refrence Count : 1 Destination : 1:: PrefixLength : 64 NextHop : 1::1 Preference : 0 Interface : Ethernet1/0 Protocol : Direct State : Active Adv Cost : 0 Destination : 1::1 PrefixLength : 128 State : Active NoAdv Cost : 0 Destination : FE80:: PrefixLength : 10 NextHop : :: Preference : 0 Interface : NULL0 Protocol : Direct State : Active NoAdv Cost : 0 37
静态路由 配置命令 ipv6 route-static ip-address prefix-length { interface-name [ nexthop-address ] | gateway-address } [ preference preference-value ] 缺省路由 ipv6 route-static :: 0 2::2 Destination : :: PrefixLength : 0 NextHop : 2::2 Preference : 60 Interface : Ethernet3/0 Protocol : Static State : Active Adv GotQ Cost : 0 Refrence Count : 2 38
动态路由协议 目前公认支持IP V6的重要动态路由协议包括 RIPng OSPF V3 ISIS MBGP RIPng/ISIS/BGP由于本身的实现不直接依赖于IP,所以仅需在支持IP V4的版本作简单修改即可支持IP V6。OSPF由于直接基于IP协议实现,所以需要较大修改。 39
动态路由协议 RIPng ISIS MBGP OSPF V3 40
RIPng 与RIP V2一样, RIPng具备如下特性 RIPng必须支持IP V6所以RIPng报文格式及路由数据库与RIP V2不同。 RIPng是距离矢量路由协议,利用UDP传输机制[端口号为521] RIPng用跳数度量路由,16跳为不可达 RIPng利用水平分割与毒性逆转技术来减少环路发生可能性 RIPng必须支持IP V6所以RIPng报文格式及路由数据库与RIP V2不同。 41
RIPng路由学习过程 RIPng以如下方式获得路由信息 RIPng删除路由表中的某些路由项的原因可能有 向RIPng邻居发送request期望获得对方的response回应 RIPng邻居周期性[30s]自动发送response消息 RIPng删除路由表中的某些路由项的原因可能有 300s未有刷新 Cost为不可达 42
RIPng报文结构 Command 1 - request 2 – response 43
典型RIPng配置 RT1与RT2之间运行RIPng协议 sysname rt2 sysname rt1 ipv6 ipv6 1::1/64 2::1/64 2::2/64 3::1/64 sysname rt2 ipv6 interface Ethernet0/0 nterface Ethernet1/0 ipv6 address 3::1/64 ripng 1 enable interface Ethernet3/0 ipv6 address 2::2/64 ripng 1 sysname rt1 ipv6 interface Ethernet1/0 ipv6 address 1::1/64 undo ipv6 nd ra halt ripng 1 enable interface Ethernet3/0 ipv6 address 2::1/64 ripng 1 44
结果 RIPng路由信息 45
报文交互 RT1与RT2之间运行RIPng协议 46 RT1 RT2 1::1/64 2::1/64 2::2/64 3::1/64 Request Response 46
RIPng其他配置 RIPng的其他一些配置 路由聚合:ripng summary-address ipv6-address/prefix-length 环路预防: ripng split-horizon,ripng poison-reverse 路由引入:import-route protocol [process-id ] [ cost value ] [ route-policy route-policy-name ] 路由度量 default-cost value ,preference value,ripng metricin value,ripng metricout value 路由过滤 filter-policy gateway ip-prefix-name import,filter-policy { acl-number | ip-prefix ip-prefix-name } import 47
ISIS IS-IS本身是一个可扩展路由协议,它对IP V4的支持本身就是在对OSI网络的一个扩展。为使其支持IP V6,我们需要定义“IPv6 Reachability” 和 “IPv6 Interface Address”两个TLV. IPv6 Reachability IPv6 Interface Address 48
MBGP Multi-protocol BGP是一个旨在让BGP可以传输多种协议(不仅仅IP V4)的扩展。与IS-IS类似,MBGP支持IP V6也是比较容易,只需要将IPV6前缀信息和下一跳信息置于新定义的MP-NLRI即可。 MP-NLRI 49
OSPF V3 OSPF V3在基本运行机制上未有改变 (flooding, DR election, area support, SPF calculations) OSPF V3在如下意义上被重新定义 OSPF报文和基本的LSA去除了编址语义以更好支持多协议 OSPF V3新定义了一些LSA以携带地址和前缀 OSPF基于链路而不是基于网段运行 “Flooding”范围被一般化 OSPF认证机制被去除 50
小结 一个简单IP V6端到端通信过程为 PC-Router Router-Router Router-Pc 51
华为3Com技术有限公司 华为3Com公司网址: www.huawei-3com.com