您的位置:首页 > 其它

OSPF学习笔记

2010-01-06 02:37 176 查看
OSPF[/b]学习笔记[/b][/b]
・ 第一部分
OSPF的一些基本概念

在链路状态路由协议中,路由器和路由器之间交换的是链路状态。而距离矢量路由协议中,路由器与路由器之间交换的是路由表。链路状态路由协议能够识别更多的网络信息,所以选出的路由比距离矢量路由协议选出的路由更优。在OSPF中,一共维护着三个数据库:所有的邻居,区域内所有的路由器(链路状态),到达目的地最佳路径。OSPF是通过链路状态表中整个区域的链路状态来计算出路由表的。
OSPF中的三张表:邻居表(adjacency database),拓扑表,路由表。

OSPF的网络在设计时应该设计为层次性的网络,这是一个强制要求。有两个级别的层次一个为主干区Transit
area(backbone or area 0),另一个为非主干区域Regular areas(nonbackbone areas)。可以认为,在区域内部交换的是链路状态,而在区域和区域之间交换的则是路由信息。
OSPF区域的特点:

1. 减小路由表的条目;

2. 本地化拓扑结构,只在本区域传播,将拓扑变化影响减到最小;

3. 详细的LSA的洪泛将终结在区域的边界上;

4. 需要层次化的网络设计;

5. 一般情况下,所有的非主干区域都应该与主干区域相连,非主干区域之间是不会交换信息的;
ABR称为区域边界路由器,作用就是将非主干区域和主干区域连接起来。
链路状态数据结构(邻居表):

1. OSPF通过交换Hello包来发现邻居;

2. 通过检查Hello包中的一些选项或者变量后建立邻居关系的;

3. 在点到点的广域网环境中,邻居之间是全互联的;

4. 在局域网环境中,所有路由器只与DR和BDR形成邻接关系(adjacency),而其他的路由器(DROTHERs)之间则只是two-way的关系;

5. 路由更新和拓扑信息之在邻接关系的路由器之间进行传播;
所有的路由更新,以及链路状态信息都是通过网络中的DR和BDR传输的。也就是说,所有的DROTHER都会与DR还有BDR建立邻接关系(adjacency)。
SPF算法:在每个路由器的链路状态表中都应用Dijkstra’s SPF 算法。

1. 每个路由器上都会有一个链路状态数据库;

2. 每个路由器都会先将自己作为一个根,然后建立起一个SPF树;

3. 最优路径的计算是到达目的地的所有路径开销的总和;

4. 最优路径将被放到路由表中;
LSA的操作:

1. 首先,与自己的链路状态表对比一下,看看是否在其中;

2. 如果没有的话,把它加到自己的链路状态数据库中,同时发出一个确认包;

3. 如果有的话,比较顺序号,如果顺序号相同,则忽略。如果小于自己的,则给源发送一个LSU;

4. 然后洪泛传输自己的LSA给其他路由器;

5. 运行SPF算法,重新计算路由表;

PS:LSA传输的时候,每次只能传输一跳。

第二部分 OSPF包的类型
OPSF中几种包的类型:

1. Hello包,建立邻居关系;

2. 数据库的描述包;

3. 链路状态请求;

4. 链路状态的更新;

5. 链路状态的确认;
OSPF是通过发送Hello包来建立邻居关系的,OSPF的Hello包是通过多播向外发送的,所有运行OSPF的路由器都会接收这个多播包。 Hello包中的内容:Router ID、Hello和死亡时间间隔、邻居、区域ID、Router的优先级、DR的IP地址、BDR的IP地址、验证密码、stub区域标记。在OSPF 中,为红色字体的那些内容必需要相同才能形成邻居关系。
DROTHER之间的稳定状态是two-way状态,DR或BDR与DROTHER之间的稳定状态是full state状态。
所有路由器给DRs发送LSU的多播地址时224.0.0.6,DR给其他路由器发送LSU的多播地址是224.0.0.5。
LSA的顺序号:

1. 每一个记录在链路状态数据库中的LSA都包含一个顺序号;

2. 顺序号是一个4byte的数字从0X80000001到0X7fffffff;(如果到达最大号,网络可能会出现短暂的波动。也是攻击OSPF网络的一个方法)

3. OSPF的LSA在每隔30分钟回洪泛一次,来同步数据库信息。每次都将顺序号增加一;

4. 当同时收到两个LSA时,通过顺序号的高低来判断版信息的新旧;

第三部分 OSPF的基本配置(单区域)
Router(config)#router ospf process-id

Router(config-router)#network address inverse-mask area [area-id]

Router#show ip route ospf (显示所有通过ospf学习到的路由)

Router#show ip ospf interface (显示ospf的router ID,area ID,邻接关系等信息)

Router#show ospf (显示ospf的router
ID,计时器等信息)

Router#show ospf neighbors [detail] (显示ospf邻居信息,包括DR和BDR的信息)
OSPF的Router
ID:

1. 路由器了解OSPF网络是通过Router ID的;

2. 链路状态数据库是使用Router ID来区分的;

3. 默认的情况下,Router ID是使用在启用OSPF进程时路由器上活跃端口中IP地址最大的IP地址作为Router
ID的;

4. 如果在路由器上设置了loopback端口,则由启用OSPF进程时路由器上活跃loopback端口中IP地址最大的IP地址作为Router ID的;

5. 可以使用router-id这个命令来更改OSPF的Router ID;

第四部分 OSPF的网络类型
点对点的链路:

1. 通常一个串行口都是运行PPP或者HDLC的链路层封装;

2. 也有可能是点到点的子接口,通常是帧中继和ATM;

3. 在点到点的链路上不需要DR或者BDR;

4. OSPF对链路类型的检测是自动检测的;

5. OSPF包发送仍然是使用多播包到224.0.0.5;
多路访问的广播网络:

1. 通常使用的技术就是LAN和令牌环网;

2. 需要进行DR和BDR的选举;

3. 只有DR和BDR才需要和全网络内的路由器形成邻接关系;

4. DR发送包使用的是多播包到224.0.0.5;

5. 其他路由器发送包到DR或者BDR使用多播包到224.0.0.6;
DR和BDR的选举:

1. 通过多播来交换Hello包;

2. 拥有最高的OSPF优先级的被选为DR,默认情况下为1;

3. 当优先级相同时,选择Router ID高的为DR;

4. 选举是在每个路由器上各自进行的,当然最后的结果都是相同的;

5. 当DR消失了,BDR则自动升级为DR,然后网络重新选举一个BDR;

6. 当新加入到OSPF网络中一个Router ID较高的路由器时,不会重新进行DR和BDR的选举;

7. 不想成为DR和BDR的路由器可以把优先级设置为0;
为DR选举设置优先级:

1. 命令Router(config-if)#ip ospf priority number

2. 这个命令是设置OSPF的优先级到端口;

3. 每个端口可以分配到不同的优先级;

4. 优先级默认的情况下是1,优先级设置的范围是0-255;

5. 优先级0意味着这个路由器只能为DROTHER,不能成为DR或者BDR;
非广播的多路访问拓扑:

1. 一个端口可以连接多个站点;

2. NBMA的拓扑支持多个路由器,但是不能够进行广播;

3. OSPF的邻居不能够自动的被路由器发现;
NBMA网络中的DR选择:

1. OSPF认为NBMA和其他的广播介质是一样的;

2. DR和BDR需要所有的路由器进行全互联,但是NBMA的网络不总是全互联的;

3. DR和BDR需要列出所有的邻居,NBMA的接口是不能自动的检测到邻居的;
NBMA的操作模式:

标准的:

1. Nonbroadcsat(NBMA)

2. Point-to-multipoint

Cisco添加的:

1. Point-to-multipoint
nonbroadcast

2. Broadcast

3. Point-to-point
配置OSPF网络类型:

Route(config-if)#ip ospf
network[{broadcast|nonbroadcast|point-to-multipoint|point-to-multipoint
nonbroadcast}]
NBMA模式:

1. 将一个全互联的NMBA网络当做一个广播网络;

2. 所有的串行口都在相同的子网中

3. 帧中继,X.25,ATM网络,默认情况下都是当做NBMA网络来操作;

4. 邻居必须静态配置;

5. LSA必须给每一个邻居都发送一个;

6. 命令Router(config-router)#neighbor address [priority
number] [poll-interval number]
点到多点模式:

1. 点到多点可以应用在NBMA网络上的;

2. 点到多点模式一般应用于部分全互联和星型网络上;

3. 没有DR选举,而且也是使用一个子网;

4. 每隔30秒发一次Hello包;

5. 要在所有路由器的对应端口上配置;

6. Inverse ARP默认情况下是Enable的;
点到多点NBMA模式:

1. 必须像一般的NBMA那样静态的指定邻居;

2. 像点到多点模式那样,不需要选举DR;
使用子接口:

1. 是一个全局模式下的命令;

2. 每一个物理的串行口可以分作多个逻辑的接口;

3. 每一个PVC和SVC都可以得到一个子接口;

4. 限制:首先,每个子接口都要有自己的子网。其次,Hello和LSA的数目是根据你的子接口的数目来决定的。Hello每10秒发出一次。

第五部分 OSPF中路由器的类型和LSA
当一个网络很大,而且使用单区域的OSPF时,一个小的网络变化便会发出一个LSA,而且传遍整个网络。每个路由器会收到很多的LSA。还有一个就是使用单区域时,由于路由器很多,所以,链路状态数据库会很大,邻居表和路由表也会相应的变大的,消耗掉了很多内存。每次的网络变化,通告LSA之后,每个路由器就会重新计算路由。
当网络很大的时候,通常会把网络划分为若干个区域,主干区域和非主干区域。但是必须设置成为层次性的结构。所有的非主干区域要和主干区域连接在一起。每个区域内的路由器只需要知道自己区域内部的链路状态就可以了,相应的邻居表和路由表也小了。
OSPF中路由器的类型:

1. 主干路由器:在区域0里面的路由器都是主干路由器;

2. 区域边界路由器:在区域的边界连接两个区域的路由器;

3. 自治域系统边界路由器:在自治域系统边界上连接两个自治域系统的路由器;

4. 内部路由器:除了边界路由器以外的路由器;
LSA的类型:

1. 类型1,路由的链路通告;

2. 类型2,网络的链路通告;

3. 类型3或者4,汇总的链路通告;

4. 类型5,自治域系统外的链路通告;

5. 类型6,多播的OSPF的LSA;

6. 类型7,定义使用在SSA区域中的;

7. 类型8,扩展属性的LSA或者用于BGP;

而通常在路由器上配置的就是1、2、3、4、5、7这几种。
类型1的LSA:

1. 是一个路由器自己生成的只在区域内进行传输,包含了直连的链路和分配到每条链路的IP地址等信息;

2. 通常都是用RouterID来标识路由器;

3. 仅仅是在区域内洪泛,不会通过ABR洪泛到其他区域;
类型2的LSA:

1. 是传给一个区域中的每一个广播网络或者NBMA网络的,其中包括:在这个链路上连的路由器有哪些和这条链路上的子网掩码是什么;

2. 是由DR在广播介质中通告的;

3. 仅仅是在区域内洪泛,不会通过ABR洪泛到其他区域;
类型3的LSA:

1. 是由ABR生成的,是把一个特定区域的路由信息传播出去;

2. 传播的是一个区域的路由信息而不是链路状态信息,其他区域的路由器只知道去某个目的如何走,但是不知道那个区域内部的其他任何信息;

3. 可以洪泛到这个AS内部;
类型4的LSA:

1. 用来宣告有ASBR路由器到这个AS内所有的区域;

2. 可以洪泛到整个AS内部;

3. 只包含ASBR的Router ID;

4. 每经过一个ABR都会重新生成一次,重新生成后,其中包含的Router
ID会发生变化,变为重新生成的LSA的路由器的Router
ID;
类型5的LSA:

1. 是由ASBR宣告的,可以洪泛到整个AS内部的;

2. 经过ABR不会改变其中的Router ID;

3. 是用来通告AS外部的路由信息的;

第六部分 OSPF的汇总技术
路由汇总的好处:

1. 减少路由表的大小;

2. 将拓扑变化本地化;

3. 减少LSA类型3和类型5的洪泛,并且减少了CUP的开销;
在OSPF中,路由汇总必须做在ASBR或者ABR上,而不像EIGRP那样,可以做在任何路由器的任何接口上。如果要做路由汇总,必须有一个很好的IP地址规划方案。
路由汇总的配置命令:

Router(config-router)#area area-id range address mask 通常用在ABR上

Router(config-router)#summary-address address mask [not-advertise] [tag tag] 通常用在ASBR上

第七部分 OSPF的特殊区域类型
末节(stub)区域的规则:

1. 不能够包含ASBR,而且一般有一个ABR与主干区域相连;

2. 如果有多于一个的ABR,那么去往外部的自治域系统的路径也许就不是最优路径了;

3. 不能够有虚拟链路穿越末节区域,但是可以通过跨越其他区域的虚拟链路与主干区域相连;

4. 所有末节区域内的路由器都必须配置成末节区域;

5. 外部的LSA和汇总的LSA不可以进入;
配置命令:Router(config-router)#area area-id stub
完全末节区域(totally stubby):

1. 外部的LSA和汇总的LSA不可以进入;

2. 路由会表减到更小;

3. 所有路由器都必须配置为末节区域;

4. ABR必须配置为完全末节区域;

5. 完全末节区域是cisco私有的;
配置命令:Router(config-router)#area area-id stub no-summary (no-summary加在ABR上)

Router(config-router)#area area-id default-cost cost

第八部分 OSPF中的虚拟链路
默认情况下,所有的区域都应该与主干区域直接相连。但是在实际工作中,有很多时候由于地理区域问题,一些区域有可能不可以直接连接到主干区域上。所以这个时候就可以使用虚拟链路来通过一个非主干区域连接到主干区域。
虚拟链路是一种逻辑上的链路。一般的推荐临时使用或者是当做备份链路来使用。
配置:Router(config-router)#area area-id virtual-link router-id
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: