单个区域配置OSPF
一、基础知识
1、OSPF是典型的链路状态型路由选择协议
2、OSPF可以运行在广播型网络或非广播型网络上。其网络拓扑结构对邻居关系的
创建是有影响的:
广播型网络,如:以太网。
点到点网络,如:T1串行线路。
非广播型多路访问,如:帧中继、X25、ATM。
二、在广播型多路访问网络拓扑中OSPF的运行(以太网)
邻居的建立和维护:hello协议,通过组播地址224.0.0.5从参与ospf的接口发送出
hello包。
hello包的信息如下:
1、RouterID:用32位的数字在一个自治系统内唯一的标识一个路由器,默认用活动
接口上的最高IP地址。在DR和BDR选举时,如果优先级相同,RouterID还可以用
来打破僵局。
2、hello间隔和down机判定间隔(dead interval):默认发送hello包的时间间隔
为10秒。dead interval是路由器认为相邻路由器失效前等待接收来自邻居消息
的时间,默认为hello的4倍。这些计时器在相邻路由器上的设置必须相同。
3、邻居:建立了双向通信的相邻路由器。双向通信指能够看到自己被列在邻居的hello
数据包中。在广播和NBMA中,路由器可能有多个邻居。
4、area ID:hello只在相同的area ID中网络中传输。
5、路由器优先级:8位,用来选举DR和BDR
6、DR和BDR的IP地址:如果知道的话。
7、认证口令:如果启用,所有同级路由器口令必须相同。不是必须要设置的。
8、末节(stub)区域标志:2台路由器都必须同意在hello数据包中的末节区域标志
(撒意思?)。
OSPF的包头,字节表示 :
版本号(1)、包类型(1)、数据包长度(2)、路由器ID(4)、区域ID(4)、校验和(2)、认证类型(2)、认证(8)、数据(可变)
版本号:使用OSPF的版本。
1、OSPF包类型:
Hello:建立和维持邻居关系。
Database Description:描述拓扑结构数据库的内容。初始化一个毗邻关系时将
交换这些消息。DR向网络中所有路由器发送其他路由器的链路状态信息。
Link State Request:向相邻路由器请求其拓扑结构数据库的部分内容。当路由
器对比此内容发现自己的拓扑结构数据库更新或过时的时候,交换这些消息。
Link State Update:对链路状态请求数据包的回应。这些消息也用于常规的LSA
(Link State Advertisement链路状态通告)散布。多个LSA可以包括在一个LSU内。
Link State Acknowledgement:对链路状态更新数据包的确认。
2、路由器ID:标识数据包的发送者。
3、其他省略......
DR和BDR:
1、DR运行时,BDR不执行任何DR的功能。它会接收所有信息,只是不作处理,由DR完成
转发和同步任务。
2、多路访问网络上,每台路由器都必须并且只和DR、BDR建立毗邻关系。各路由器只需
向DR、BDR发送链路状态信息。DR向网络中所有的路由器发送其他路由器的链路状态
信息。
3、在选举出了DR、BDR后,任何一台新加入的路由都值和DR、BDR建立毗邻关系。
4、DR和BDR的选举先看优先级,默认值为1(值为0表示不能作为DR、BDR),值越高优
先级越高;优先级一样看RouterID,选择活跃接口上IP最大的为RouterID(如果设
置了lookback地址,则此地址为RouterID),RouterID最大的为DR。
5、如果有一台有更高优先级的路由器加入到网络中,原来的DR和BDR保持不变。DR或BDR
只有在他们失效的时候才会改变。
6、在多路访问的环境中,每个网络分段都有自己的DR和BDR。
ospf的启动:
1、路由器A处于down,没有与任何路由器交换过信息。它从参与OSPF的接口发出hello
数据包(组播地址224.0.0.5)。
2、相邻的运行OSPF的路由器,从OSPF接口接受hello包,并把A添加到邻居表。这里是
init状态。
3、相邻的路由器向A发送hello包。
4、A接收到hello包,包那些包中含有自己routerID的路由器添加到邻居表中,这被称
为two-way状态。
5、通过上面的程序来决定DR和BDR。这个过程必须在路由器能够开始交换链路状态信息
之前发生。选择好后,这个状态称为exstart,准启动状态。
6、DR和BDR与其他路由器建立毗邻关系。个路由器与相邻的DR和BDR建立主从关系。
7、主从路由器之间交换一个或多个database decription。这时,路由器处于exchange
状态。DBD包含LSA的头部信息(头部信息有:链路状态类型、通告该信息路由器地址、
LSA的序列号)。
8、路由器接收到DBD时:
(1)、发送LSAck,确认收到DBD包。
(2)、检查LSA序列号,比较自己信息的新旧。如果DBD中的信息更新则发送LSR请求包。
(3)、主路由器用LSU回应LSR。从路由器收到LSU后发送LSAck确认包。这个过程叫loading。
9、所有路由器将新的链路状态条目添加到链路状态数据库中。
10、当给定的路由的所有LSR都得到满意回复时,毗邻的路由器就被认为达到了同步和
处于full状态。在路由器转发数据流之前,他们必须都处于full状态。这时,各个路由
器的链路状态数据库都是相同的。
开始选择路由,建立路由表:
以链路状态数据库作为输入,采用Dijkstra算法计算开销,选择最低开销的路径到路由表。
OSPF默认下可以选择4条开销相同的路径作负载均衡,最多可以是6条(配置maximum-paths)
路由表的维护
1、路由器注意到一个链路状态的变化,将含有更新过的LSA条目的LSU通过组播地址224.0.0.6
发送出去(该地址表示所有DR和BDR)。
2、DR接收到LSU并确认,再通过组播224.0.0.5发送给所属的从路由器。从路由器发送LSAck
进行确认。
3、对新的链路状态数据库使用SPF算法,生成新的路由表。在计算时,原来的路由表仍然可以
使用。
LSA有自己的老化计时器,默认为30分。在老化时间到时,产生该条目的路由器会再发送一个有
关该网络的LSU,来证实该链路依然有效。
三、点到点中OSPF运行
在点对点的链路上(如T1),一样使用224.0.0.5组播地址来检测邻居,相邻路由器能够相互通信
就形成了毗邻关系,没有DR和BDR的概念。
hello间隔和down间隔分别为10秒和40秒。
四、NBMA上运行OSPF(以帧中继为例)
hello间隔和down间隔分别为:30秒、120秒。
* RFC:NBMA、Point-to-Multipoint
* Cisco:Point-to-Multipoint nonbroadcast、Broadcast、Point-to-point
模式 期望拓扑 子网地址 毗邻关系
NBMA 全互连 邻居必须属同一子网 手动配置、选择DR和BDR
点到多点 全互连 同上 自动配置、无DR和BDR
广播 部分互连和星型 同上 自动配置、选举DR和BDR
点到多点非广播 部分互连和星型 同上 手动配置、无DR和BDR
点到点 通过子接口的互联 各子接口在不同子网 自动配置、无DR何BDR
和星型
五、配置
配置一:广播
注:一定确保中心路由器为DR
RA:
interface Serial0/0
ip address 1.1.1.1 255.255.255.0
encapsulation frame-relay IETF
ip ospf network broadcast
serial restart-delay 0
frame-relay map ip 1.1.1.2 102 broadcast
frame-relay map ip 1.1.1.3 103 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.1 0.0.0.0 area 0
network 10.10.10.1 0.0.0.0 area 1
RB:
interface Serial0/0
ip address 1.1.1.2 255.255.255.0
encapsulation frame-relay IETF
ip ospf network broadcast
ip ospf priority 0
serial restart-delay 0
frame-relay map ip 1.1.1.1 201 broadcast
frame-relay map ip 1.1.1.3 201 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.2 0.0.0.0 area 0
network 20.20.20.1 0.0.0.0 area 2
RC:
interface Serial0/0
ip address 1.1.1.3 255.255.255.0
encapsulation frame-relay IETF
ip ospf network broadcast
ip ospf priority 0
serial restart-delay 0
frame-relay map ip 1.1.1.1 301 broadcast
frame-relay map ip 1.1.1.2 301 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.3 0.0.0.0 area 0
network 30.30.30.1 0.0.0.0 area 3
配置二:非广播(默认、和广播的唯一区别就是手动设置邻居)
注:也是要指定中心路由器为DR
R1:
interface Serial0/0
ip address 1.1.1.1 255.255.255.0
encapsulation frame-relay IETF
frame-relay map ip 1.1.1.2 102 broadcast
frame-relay map ip 1.1.1.3 103 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.1 0.0.0.0 area 0
network 10.10.10.1 0.0.0.0 area 1
neighbor 1.1.1.2
neighbor 1.1.1.3
R2:
interface Serial0/0
ip address 1.1.1.2 255.255.255.0
encapsulation frame-relay IETF
ip ospf priority 0
frame-relay map ip 1.1.1.1 201 broadcast
frame-relay map ip 1.1.1.3 201 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.2 0.0.0.0 area 0
network 20.20.20.1 0.0.0.0 area 2
R3:
interface Serial0/0
ip address 1.1.1.3 255.255.255.0
encapsulation frame-relay IETF
ip ospf priority 0
frame-relay map ip 1.1.1.1 301 broadcast
frame-relay map ip 1.1.1.2 301 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.3 0.0.0.0 area 0
network 30.30.30.1 0.0.0.0 area 3
配置三、点到多点(自动设置邻居、无DR和BDR)
注:边缘路由器只需要一条从中心路由器IP到本地DLCI的映射,就能保证端到端的PING通。
R1:
interface Serial0/0
ip address 1.1.1.1 255.255.255.0
encapsulation frame-relay IETF
ip ospf network point-to-multipoint
frame-relay map ip 1.1.1.2 102 broadcast
frame-relay map ip 1.1.1.3 103 broadcast
no frame-relay inverse-arp
router ospf 100
network 1.1.1.1 0.0.0.0 area 0
network 10.10.10.1 0.0.0.0 area 1
R2:
interface Serial0/0
ip address 1.1.1.2 255.255.255.0
encapsulation frame-relay IETF
ip ospf network point-to-multipoint
frame-relay map ip 1.1.1.1 201 broadcast
no frame-relay inverse-arp
router ospf 100
log-adjacency-changes
network 1.1.1.2 0.0.0.0 area 0
network 20.20.20.1 0.0.0.0 area 2
R3:
interface Serial0/0
ip address 1.1.1.3 255.255.255.0
encapsulation frame-relay IETF
ip ospf network point-to-multipoint
frame-relay map ip 1.1.1.1 301 broadcast
no frame-relay inverse-arp
router ospf 100
log-adjacency-changes
network 1.1.1.3 0.0.0.0 area 0
network 30.30.30.1 0.0.0.0 area 3
配置四:点到多点非广播(和点到多点的唯一区别就是手动设置邻居)
省略......
配置五:点到点
注意中心路由器划分子接口为point-to-point,且在不同子网。
边缘路由器接口指定为point-to-point。
省略......
六、验证
Show ip protocols
show ip route
Show ip route ospf
Show ip ospf
Show ip ospf interface
Show ip ospf neighbor
Show ip ospf neighbor detail
Show ip ospf database
Debug ip ospf adj (监视DR和BDR的选举)