OSPFV3
一、OSPFv3概述:协议号89
1、概念:
OSPFv3是ospf(开放式最短路径优先)版本3的简称,主要提供对IPV6的支持,遵循的标准为RFC2740(OSPF for IPv6),主要作用于IPV6路由功能,是IPv6网路中路由技术的主流协议。
2、OSPFv3和OSPFv2相同点:
- Router ID,Area ID仍然是32位
- 相同类型的报文:Hello报文,DD(数据库描述)报文,LSR(链路状态请求)报文,LSU(链路状态更新)报文和LSAck(链路状态确认)报文。
- 相同的邻居发现机制和领接形成机制
- 相同的LSA扩散机制和老化机制
- 路由计算方法
3、OSPFv3和OSPFv2的不同主要有:
- OSPFv3是基于链路运行,OSPFv2是基于网段运行
- 使用链路本地地址
- 认证变化
- stub区域的支持
- 报文的不同
- Option字段不同
- LSA的异同
- OSPFv3在同一条链路上可以运行多个实例
- ospfV3是通过Router ID来标识领接的邻居。OSPFv2则是通过IP地址来标识领接的邻居
(1).基于 链路的运行:OSPFv3不受网段限制,所以两个具有不同IPV6前缀的节点可以在同一条链路上建立邻居关系。
OSPFv2是基于网络运行的,两个路由器要形成邻居关系必须在同一网段
OSPFv3的实现是基于链路,一个链路可以划分为多个子网,节点即使不在同一个子网内,只要在同一链路上就可以直接通话
(2). 使用链路本地地址:OSPFv3的路由器使用链路本地地址作为发送报文的源地址。一个路由器可以学习到这个链路上所有其他路由器的链路本地地址,并使用链路本地地址作为下一跳转发报文。在虚链路上,必须使用全球范围地址或者站点本地地址作为OSPFv3协议报文的源地址。链路本地只在本链路上具有意义,只能在本链路上泛洪,因此链路本地地址只能出现在Link LSA中。
(3).链路支持多实例复用:
OSPFv3使用“Instance ID”标识不同实例,路由器子啊报文接收时对该字段进行判断,实例号和接口相匹配时报文才会处理,否则丢弃。
(4).通过Router ID唯一标识邻居:
在ospfv2中,当网络类型为点到点或虚连接与邻居相连时,通过Router id来标识邻居路由器,当网络类型为广播或NBMA时,通过邻居接口的IP地址来标识邻居路由器。
在OSPFv3中,无论是什么网络类型,都通过router-id来唯一标识邻居。
(5)认证的变化:
OSPFv3协议自身不在提供认证功能,而是通过使用IPV6提供的安全机制来保证自身报文的 合法性,所以,OSPFv2报文中的认证字段,在OSPFv3报文头中取消。
4.OSPFv3的协议报文:
和OSPFv2一样,OSPFv3也有五种报文,分别是 Hello、DD、LSR、LSU和LSAck报文。
这五种报文有相同的 报文头,但是它是OSPFv2的报文头有一些区别,其长度只有16字节,且没有认证字段。另外就是多了一个Instance ID字段,用来支持在同一条链路上运行多个实例。
- Version:ospf版本号。对于ospfv3,来说值为3.
- Type:OSPF报文的类型。其值1到5,分别对应Hello、DD、LSR、LSU、LSAck报文。
- Packet Lengeh:OSPF报文的总长度,包括报文 头在内,单位为字节
- Instance ID:同一条链路上的实例标识
- 0:保留位,必须为0.
5.OSPFv3的LSA类型:
LSA(链路状态通告)是OSPFV3协议计算和维护路由信息的主要来源。在RFC2740中定义了七类LSA,描述如下:
- 路由器LSA(Router-LSA):描述在特定区域内的路由器接口的链路状态及链路开销。该类型LSA仅在接口所在的区域内传播。该类型LSA还指示出产生该类型LSA的路由器是否是一台ABR或ASBR,以及路由器是否是虚链路的一端。类型1LSA也被用来通告端(stub)网络。
- 网络LSA(Network-LSA):由DR产生,用来描述DR所代表的网络的链路状态信息和链路开销信息。该LSA是BMA网络上的所有链路信息和链路开销信息的集合信息。
- 区域间前缀LSA(Inter-Area-Prefix-LSA):这种类型LSA在OSPFv2中叫做‘概括的网络链路状态条目(summary net link states)’。该类型LSA由ABR产生,用来把一个区域内的路由信息通告到另外一个区域。这种类型的LSA既可以描述一条具体的路由信息,也可以描述总结的路由信息。在OSPFv3中,地址是用前缀和前缀长度表达的,而不再使用地址和掩码的表达形式。缺省路由的前缀长度用0代表。
- 区域间路由器LSA(Inter-Area--Router-LSA):由ASBR产生,用以通告ASBR的位置。试图把数据送达外网的路由器使用该LSA确定通往下一跳的最佳路径。
- 自治系统外LSA(AS-External-LSA):用来携带自治系统外路由信息的LSA。例如,把其它AS的路由再发布到OSPF中的路由信息。在该类型的LSA中,地址用前缀和前缀长度表达,缺省路由的前缀长度用0表达。
- 类型7 LSA(Type-7 LSA):由NSSA中的ASBR产生,只在NSSA中传播。在ABR上它被转换成类型5并且被扩散到骨干区域。
- 链路LSA(Link-LSA):该类型LSA仅在本链路上传播,具有以下3种目的:向本链路上的其它路由器提供路由器的本链路地址;向本链路上的其它路由器通告IPv6地址前缀,使其与本链路相关联;允许路由器在该类型LSA中插入一些选项比特,与为本链路产生的网络LSA相关联。
- 区域内前缀LSA(Intra-Area-Prefix-LSA):该类型LSA在本区域内传播,具有以下两种功能之一:通过参考网络LSA把IPv6地址前缀与转递网络(transit network)相关联;或者通过参考路由器LSA把IPv6地址前缀与路由器相关联。一台路由器可以为给定的区域产生多个该类型的LSA,这些LSA使用链路状态ID字段(Link State ID)区分。DR为它所代表的链路产生一个或多个该类型的LSA,向整个区域内通告该链路的地址前缀。
6、ospfv3配置:
[RT1]ospfv3 1 //进入ospfv3视图
[RT1-ospfv3-1]router-id 1.1.1.1 //配置视图路由器的ID
- 与OSPFV2不同,OSPFV3的Router ID必须手工配置,如果没有配置ospfv3将无法运行
- 配置router ID时,必须保证自治系统中任意两台路由器的Router id都不相同。 如果在同一台路由器上运行了多个OSPFv3进程,必须为不同的进程设置不同的Router ID
[RT1-GigabitEthernet0/0] ospfv3 1 area 0.0.0.1 //指定的网络接口上使能OSPFv3
在配置接口链路本地地址时,在同一条本地链路上,两边地址不能一样。路由器之间只需要配置链路本地地址就可以建立邻居关系。
RIPng
一、概念
- RIPng(下一代rip协议):是针对IPV6的RIP协议。
- 与RIPV2一样是基于D-V(距离矢量)算法的路由协议,具有距离矢量路由协议的所有特点
RIPNG的特点:
- UDP端口号,使用UDP的521端口发送和接收路由信息
- 组播地址,使用FF02::9作为链路本地范围内的RIPng路由器组播地址
- 前缀长度。目的地址使用128比特的前缀长度
- 下一跳地址:使用128比特的IPV6地址
- 源地址:使用链路本地地址fe80::/10作为源地址发送RIPng路由信息更新报文
- RIPng工作机制与RIPv2基本相同。。
实验:
[RT1]ripng 1 //开启ripng进程
[RT1-GigabitEthernet0/0]ripng 1 enable //是RIPNG进程在接口上收发RIPng路由。
- 如果接口没有使能RIPng进程,既不发送也不接受RIPng路由
ISIS For IPv6
一、概述:
- 随着IPv6网络的建设,同样需要动态路由协议为IPv6报文的转发提供准确有效的路由信息。IS-IS路由协议结合自身具有良好的扩展性的特点,实现了对IPv6网络层协议的支持,可以发现和生成IPv6路由。支持IPv6协议的IS-IS路由协议又称为IS-ISv6动态路由协议。
- IS-ISV6新增CLV
- IETF( 国际互联网工程任务组)中规定了IS-IS为支持IPv6所新增的内容,主要是新增两个CLV,以及在支持协议CLV中的NLPID字段将有一个值为0x81标识其支持IS-ISv6功能
- IPv6可达性CLV:IS-ISv6中IPv6可达性CLV对应于IS-IS中普通可达性TLV和扩展可达性TLV
Code:取值为236,表示该CLV是IPV6可达性CLV。
Length:CLV长度。
Metric:度量值,使用扩展的Metric值
U:up/down状态标志位,用来防止路由环路
X:外部路由引入标识,取值1表示该路由是从其他协议引入的
S:当CLV中不携带Sub-CLV时,S位置“0”,否则置“1”,表示IPv6前缀后面跟随Sub-CLV信息。
Reserve:保留位。
Prefix Length:该路由器可以到达的IPv6路由前缀长度。
Prefix:该路由器可以到达的IPv6路由前缀
Sub-CLV/Sub-CLV Length:Sub-CLV字段以及Sub-CLV字段长度,该选项用于以后扩展用。
- IPv6接口地址CLV:IPv6接口地址CLV对应于IS-IS中IPV4接口地址CLV:
Code:取值232,表示该CLV类型是Ipv6接口地址CLV。
Length:CLV长度
Interface Address:使能IS-ISV6功能的接口IPv6地址,Hello报文中接口IPv6地址CLV中填入的是使能了IS-ISv6功能接口的IPv6链路本地地址,LSP报文中填入的是使能了IS-ISv6功能的非IPV6链路本地地址,即接口的IPv6全球单播地址。
*:表示该项可选。
- 支持协议CLV:用来指定报文的始发路由器所支持的协议,对于每一种支持的协议,CLV中的NLPID都会有一个相应的NLPID值。当路由器支持IS-ISv6功能时,该CLV中的NLPID将有一个值为0x81。
IS-ISv6领接关系:
- IS-IS使用Hello报文来发现同一条链路上的邻居路由器并建立邻接关系,当邻 接关系建立完成后,将继续周期性的发送Hello报文来维持邻接关系。为了支持IPv6路由,建立IPv6邻接关系,IS-ISv6对Hello报文进行了补充:
- 在支持协议CLV中增加一个8bit的NLPID,取值为0x81,表示当前路由器支持IS-ISv6功能。
- 在Hello报文中添加使能IS-ISv6功能的接口IPv6地址的CLV,Interface Address字段填入使能了IS-ISv6功能接口的IPv6链路本地地址。