Establishing Bidirectional Communication
看看双向通信的建立过程,如下图:
http://www.show-tym.com/image/note/2004581603598423.jpg
1.刚开始A还没和别的路由器交换信息,还处于down的状态,接下来通过使用多播地址224.0.0.5开始发送hello包
2.B接收到hello包,把A加进自己的neighbor table中,并进入init状态,然后以单播的形式发送hello包对A做出应答
3.A收到以后把所有从hello包里找到的RID加进自己的neighbor table中,进入two-way状态
4.如果链路是广播型网络比如以太网,接下来选举DR和BDR,这一过程发生在交换信息之前
5.周期发送hello包保证信息交换
Discovering the Network Routes & Adding the Link-State Entries
当选举了DR和BDR,进入exstart状态,接下来就可以对链路状态信息进行发现并创建自己的LSDB,如下图:
http://www.show-tym.com/image/note/2004581604742936.jpg
1.在exstart状态里,邻接关系形成,路由器和DR/BDR形成主仆关系(RID等级最高的为主,其他的为辅)
2.主仆交换DBD包(DDP),路由器进入exchange状态
DBD包含了出现在LSDB中的LSA条目头部信息,条目信息可以为一条链路(link)或者一个网络.每个LSA条目头部信息包括链路状态类型,宣告路由器的地址,链路耗费和序列号(版本号)
3.路由器收到DBD以后,将使用LSAck做出确认;还将和自己本身就有的DBD进行比较,过程如下图:
http://www.show-tym.com/image/note/2004581605585766.jpg
如果DBD信息中有更新更全的链路状态条目,路由器就发送LSR给其他路由器,该状态为loading状态;收到LSR以后,路由器做出响应,以LSU作为应答,其中包含了LSR所需要的完整信息;收到LSU以后,再次做出确认,发送LSAck
4.路由器添加新的条目到LSDB中,进入full状态,接下来就可以对数据进行路由了
Maintaining Routing Information
当链路状态发生变化以后,路由器将洪泛LSA来对其他路由器做出通知,如下图:
http://www.show-tym.com/image/note/200458161758141.jpg
1.路由器意识到链路产生变化以后,对多播地址224.0.0.6和所有的DR/BDR发送LSU,其中LSU包含了更新了的LSA条目
2.DR对LSU做出确认,接着对多播地址224.0.0.5继续洪泛,每个收到LSU的路由器对DR做出确认(反馈LSAck),
3.如果路由器连接了其他网络,将通过转发LSU给DR(在点到点网络是转发给邻居路由器)来对其他网络进行洪泛
4.其他路由器通过LSU来更新自己的LSDB,然后使用SPF算法重新计算最佳路径
链路状态条目的最大生存周期是60分钟,60分钟只有,它将从LSDB中被移除
OSPF Link-State Sequence Numbers
LSDB中的每个LSA记录都有个序列号,序列号是32位长,以0x80000001开头,0x7FFFFFFF结尾.OSPF路由器默认每30分钟洪泛一次LSA来保证LSDB的同步,每洪泛1次,序列号就加1.如果序列号达到最大并回到初始值的时候,已经存在的LSA的生存周期将设置为最大(1小时)并刷新LSDB(造成网络波动)
如果收到2条LSA,将比较序列号,序列号越高表示LSA版本越新
可以使用show ip ospf database命令查看生存周期和序列号,如下:
RTC# show ip ospf database
OSPF Router with ID (203.250.15.67) (Process ID 10)
Router Link States (Area 1)
Link ID ADV Router Age Seq# Checksum Link count
203.250.15.67 203.250.15.67 48 0x80000008 0xB112 2
203.250.16.130 203.250.16.130 212 0x80000006 0x3F44 2
(略)
Debug IP OSPF Packet
使用debug ip ospf packet命令对OSPF包进行排错和验证,如下:
Router# debug ip ospf packet
OSPF: rcv. v:2 t:1 l:48 rid:200.0.0.117 aid:0.0.0.0 chk:6AB2 aut:0 auk:
(略)
一些输出的含义如下:
v:OSPF版本
t:OSPF包类型,如上是1,几种数字所代表的意义是:1为hello,2为DBD,3为LSR,4为LSU,5为LSAck
l:定义包长度,单位字节
rid/aid:RID/area ID
chk:校验和
aut:验证类型,0代表不进行验证,1代表明文密码,2代表MD5加密
auk:OSPF验证key
keyed:MD5 key ID
seq:序列号
Configuring Basic Single-Area OSPF
OSPF的单域的配置命令:在全局配置模式下输入router ospf [process-id]启动OSPF进程,接下来在路由配置模
式下输入network [address] [inverse-mask] area [area-id]
process-id只是在本路由器有效,所以可以设置成和其他路由器的process-id一样的号码
address和inverse-mask为网络(或接口)地址和wildcard mask
来看一个配置实例,如下图:
http://www.show-tym.com/image/note/2004581612066672.jpg
如图A是采用的网络地址,而B是采用的接口地址
Verifying OSPF Operation
一些验证性的命令如下:
1.show ip protocols:显示基于IP的路由协议信息
2.show ip route ospf:显示OSPF已知路由条目信息
3.show ip interface:显示RID,area ID和邻居信息
4.show ip ospf:显示RID,计时器和LSA等信息
5.show ip ospf neighbor (detail):显示邻居信息包括RID,优先级,邻接状态(比如exstart,full等)和dead timer.detail为详细参数.如下
RouterB#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.64.1.1 1 FULL/BDR 00:00:31 10.64.1.1 Ethernet0
10.2.1.1 1 FULL/- 00:00:38 10.2.1.1 Serial0
(略)
6.show ip ospf neighbor [type number] [neighbor-id] (detail):显示接口的邻居信息的命令.type为接口类型,number为接口号,neighbor-id为邻居ID
Manipulating OSPF Router ID
关于RID的分配,如下:
1.可以选择物理接口地址等级最高的做为RID(假如没有设置回环接口的话),接口不是必须参与OSPF进程,但是它的状态必须是up.否则将接收到如下错误提示:
Router(config)#router ospf 1
2wid: %OSPF-4-NORTRID: OSPF process 1 cannot start.
2.假如回环接口存在的话,可以选举等级最高的设置为RID(因为回环接口永远不会down掉)
3.可以使用router-id命令进行设置
一旦RID设置了,将不会改变,即使设置为RID的接口down掉了,RID也不会改变,除非路由器重新启动,或者OSPF进程重启
如果你想设置回环接口为RID,如下:
1.Router(config)#interface loopback [number]
创建回环接口
2.Router(config-if)#ip address [address] [mask]
分配IP地址(分配的地址等级高于物理接口的IP地址).mask参数一般为255.255.255.255
设置下次OSPF启动以后所采用的RID,如下:
1.Router(config)#router ospf [process-id]
2.Router(config-router)#router-id [ip-address]
创建新的RID.注意如果本次设置的新RID只会在下次OSPF进程中启用.可以重启路由器或者使用clear ip ospf process命令重启OSPF进程(这将暂时性的造成网络不稳定)
要查看RID的信息可以使用show ip ospf命令
Adjacency Behavior for a Point-to-Point Link & Broadcast Network
在点到点链路中一般采用PPP或者HDLC的封装格式,OSPF自动检测接口类型,并且不需要进行DR/BDR的选举.邻居通过对多播地址224.0.0.5进行多播hello包来动态发现邻居.默认hello包的发送间隔是10秒,dead间隔是40秒在多路访问(multiaccess)广播型网络中(比如以太网和TokenRing),需要进行DR/BDR的选举,所有的非DR/BDR(即DROTHER)路由器和DR/BDR形成完全邻接关系,即DROTHER通过DR/BDR交换信息,如下图:
http://www.show-tym.com/image/note/2004581612942464.jpg
到达DR的包使用多播地址224.0.0.6;经DR转发给DROTHRT的包使用多播地址224.0.0.5
Electing the DR/BDR
当选举DR/BDR的时候要比较hello包中的优先级(priority),优先级最高的为DR,次高的为BDR.默认优先级都为1.在优先级相同的情况下就比较RID,RID等级最高的为DR,次高的为BDR.当你把优先级设置为0以后,OSPF路由器就不能成为DR/BDR,只能成为DROTHER
当网络中新加入一个优先级更高的的路由器,不会影响现有的 DR/BDR,除非DR出故障,BDR随即升级为DR,并重新选举BDR;如果是BDR出故障了就重新选举BDR
BDR对DR是否出故障的判定是根据使用wait timer,如果BDR在wait timer超时前确认DR仍然在转发LSA的话,它就认为DR出故障
设置优先级的命令如下:
Router(config-if)#ip ospf priority [number]
number的范围是0到255.注意仅当现有DR状态down掉以后,新设置的接口优先级才会生效
Adjacency Behavior for an NBMA Network
NBMA网络比如帧中继,ATM和X.25,没有广播的能力.但是经验通过在每条PVC上复制hell包为广播和多播来实现广播和多播的能力(将占用额外的带宽)
默认在NBMA网络中,hello包的发送时间间隔和dead时间间隔分别是30秒和120秒
OSPF认为NBMA网络的运做类似其他的BMA比如以太网
NBMA网络中邻居不是自动发现,DR/BDR需要一张邻居列表
OSPF Commands for NBMA Frame Relay
帧中继网络的几种拓扑结构如下:
http://www.show-tym.com/image/note/200451213171355017.jpg
1.星型(star/hub-and-spoke):最常见的帧中继网络拓扑,代价最小
2.全互连(full-mesh):冗余,但是代价大,在这样的环境中计算VC的数量,使用n(n-1)/2的公式,n为网络中的节点数
3.部分互连(partial-mesh):前两种的折中方案
OSPF运行的两种RFC中定义的模式如下:
1.NBMA:一般和部分互连的网络结合使用,需要选举DR/BDR和人工指定邻居.优点是相对point-to-multipoint模式它的负载较低
2.point-to-multipoint:把非广播的网络当作点到点连接的集合,自动发现邻居,不指定DR/BDR,一般和部分互连的网络结合使用.优点是配置较为简便
一些其他的可运行模式如下:
1.point-to-multipoint nonbroadcast
2.broadcast
3.point-to-point
定义OSPF网络类型的命令如下:
Router(config-if)#ip ospf network [{broadcast | nonbroadcast | point-to-multipoint | point-to-multipoint nonbroadcast}]
几种选项的含义如下:
1.broadcast:使得WAN接口看上去像LAN接口;一个IP子网;多播hello包自动发现邻居;选举DR/BDR;要求网络全互连
2.nonbroadcast(NBMA):一个IP子网;邻居手工指定;选举DR/BDR;DR/BDR要求和DROTHER完全互连;一般用在部分互连的网络中
3.point-to-multipoint:一个IP子网;多播hello包自动发现邻居;不要求DR/BDR的选举;一般用在部分互连的网络中
4.point-to-multipoint nonbroadcast:如果VC中多播和广播能力没有启用的话就不能使用point-to-multipoint模式,也路由器没办法多播hello包;邻居必须人工指定;不需选举DR/BDR
5.point-to-point:一个子网;不选举DR/BDR;当只有2个路由器的接口要形成邻接关系的时候才使用;接口可以为LAN或WAN接口
Common OSPF Configuration for Frame Relay
先看看NBMA模式,如下图:
http://www.show-tym.com/image/note/200451213172674814.jpg
1.OSPF会把NBMA当作broadcast网络进行处理(比如LAN)
2.如图,所有的serial口处于同一子网
3.ATM,X.25和帧中继默认为NBMA操作
4.邻居手动指定
5.洪泛LSU的时候,要对每条PVC进行洪泛
6.RFC 2328兼容
对NBMA类型人工指定邻居使用如下命令:
Router(config-router)#neighbor [x.x.x.x] priority [number] poll-interval [number]
x.x.x.x为邻居的IP地址
priority [number]为优先级,如果设置为0的话将不能成为DR/BDR
poll-interval [number]是轮询的间隔时间,单位为秒.NBMA接口发送hello包给邻居之前等待的时间
下图是一个配置实例:
http://www.show-tym.com/image/note/200451213173645739.jpg
RouterA(config)#router ospf 100
RouterA(config-router)#network 140.140.0.0 0.0.255.255 area 0
RouterA(config-router)#neighbor 140.140.1.2 priority 0
RouterA(config-router)#neighbor 140.140.1.3 priority 0
如上,把邻居的优先级设置为0,保证A为DR.在部分互连的NBMA网络中,只需在DR/BDR上使用neighbor命令;如果拓扑结构是星形的话,neighbor命令应该使用在中心路由器上;在全互连的NBMA网络中,应该在所有的路由器上使用neighbor命令,除非是人工指定DR/BDR
查看OSPF邻居信息:show ip ospf neighbor [type number] [neighbor-id] [detail]
type number:接口类型和接口号,可选
neighbor-id:邻居路由器ID,可选
再看看point-to-multipoint模式,如下图:
http://www.show-tym.com/image/note/200451213183457424.jpg
1.适用于部分互连或星形拓扑结构里
2.不需DR,只使用单独的一个子网
3.自动发现邻居
4.LSU包被发送到每个邻居路由器的接口
如下图,point-to-multipoint的配置如下:
http://www.show-tym.com/image/note/200451213184748652.jpg
路由器A:
RouterA(config)#interface serial 0
RouterA(config-if)#encapsulation hdlc
RouterA(config-if)#ip address 120.120.1.1 255.255.255.0
RouterA(config)#interface serial 1
RouterA(config-if)#encapsulation frame-relay
RouterA(config-if)#ip address 140.140.1.1 255.255.255.0
RouterA(config-if)#ip ospf network point-to-multipoint
路由器B:
RouterB(config)#interface serial 0
RouterB(config-if)#ip address 140.140.1.2 255.255.255.0
RouterB(config-if)#encapsulation frame-relay
RouterB(config-if)#ip ospf network point-to-multipoint
验证如下:
RouterA#show ip ospf interface s1
Serial1 is up, line protocol is up
Internet Address 140.140.1.1/24, Area 1
Process ID 100, Router ID 120.120.1.1, Network Type Point-To-Multipoint, Cost: 64
Transmit Delay is 1 sec, State: Point_To_Multipoint
Timer intervals configured,Hello 30, Dead 120, Wait 120, Retransmit 5
Hello due in 00:00:11
Neighbor count is 2, Adjacent neighbor count is 2
Adjacent with neighbor 140.140.1.2
Adjacent with neighbor 140.140.1.3
(略)
接下来再看看point-to-multipoint nonbroadcast模式,这个模式是RFC兼容的point-to-multipoint的扩展;邻居必须人工指定;不选举DR/BDR;使用在某些邻居不能自动发现的场合下
然后是broadcast模式,要选举DR/BDR
最后是point-to-point模式,使用在当NBMA网络中只存在2个节点的时候;不选举DR/BDR;每条点到点的连接处在同一个子网中;一般只和point-to-point subinterface结合使用
定义subinterface的命令如下:
Router(config)#interface serial [number.subinterface-number] {point-to-point | multipoint}
默认在point-to-point的帧中继subinterface的OSPF模式是point-to-point模式;在multipoint的帧中继subinterface的OSPF模式是NBMA(nonbroadcast)模式;在帧中继物理接口的OSPF模式也是NBMA模式
下图就是一个point-to-point subinterface的例子:
http://www.show-tym.com/image/note/200451213185585082.jpg
如图每条VC要求一个单独的子网
下图是一个multipoint subinterface的例子:
http://www.show-tym.com/image/note/20045121319382913.jpg
如图,第一个subinterface S1.1为point-to-point模式;OSPF把第二个multipoint subinterface S1.2当作NBMA模式
下图是几种模式的一个比较:
http://www.show-tym.com/image/note/200451213191410024.jpg
debug ip ospf adj:用来跟踪OSPF邻居信息
Types of OSPF Routers
当OSPF area过大的话,带来的负面影响有:
1.太过频繁的SPF计算,造成路由器CPU负载过重
2.路由表过大
3.LSDB过大
解决方案是划分层次化的area路由(hierarchical area routing),减少了SPF运算的频率,减小了路由表的体积,减少了LSU的负载
OSPF路由器的类型如下图:
http://www.show-tym.com/image/note/200451213192229365.jpg
internal routers:所有的接口在一个area里,拥有相同的LSDB
backbone router:至少一个有接口连接到area 0里,和internal routers保持相同的OSPF进程和算法
ABR:接口连接了多个area,每个接口保持它所连的area的单独的LSDB
ASBR:至少有一个接口连接到外部网络比如其他的AS,非OSPF网络
当然,一个路由器同时可以扮演上述多个角色
OSPF LSA Types
一些LSA的类型如下:
类型1:router LSA
类型2:network LSA
类型3/4:summary LSA
类型5:AS external LSA
类型6:multicast OSPF LSA,使用在OSPF多播应用程序里
类型7:使用在Not-So-Stubby area(NSSA)里
类型8:特殊的LSA用来连接OSPF和BGP
类型9/10/11

paque LSA,用于今后OSPF的升级等
LSA类型1(router LSA),如下图:
http://www.show-tym.com/image/note/200451213193048970.jpg
类型1的LSA只在一个area里传播,不会穿越ABR.描述了和路由器直接相连的链路集体状态信息.RID鉴别类型1的LSA,LSA描述了链路的网络号和掩码(即link ID).另外类型1的LSA还描述了路由器是否是ABR或ASBR
类型1的LSA不同的链路类型的link ID如下:
1.point-to-point的link ID是邻居的RID
2.transit network的link ID是DR的接口地址
3.stub network的link ID是IP网络号
4.virtual link的link ID是邻居的RID
LSA类型2(network LSA),如下图:
http://www.show-tym.com/image/note/200451213193795300.jpg
类型2的LSA只在一个区域里传播,不会穿越ABR.描述了组成transit network的直连的路由器.transitnetwork直连至少2台OSPF路由器.DR负责宣告类型2的LSA,然后在transitnetwork的一个area里进行洪泛.类型2的LSA ID是DR进行宣告的那个接口的IP地址
LSA类型3(summary LSA),如下图:
http://www.show-tym.com/image/note/200451213194558820.jpg
类型3的LSA由ABR发出.默认OSPF不会对连续子网进行汇总.可在ABR上进行人工设定启用汇总.类型3的LSA可以在整个AS内进行洪泛
LSA类型4(summary LSA),如下图:
http://www.show-tym.com/image/note/200451213195581325.jpg
类型4的LSA只使用在area里存在ASBR的时候,类型4的LSA鉴别ASBR和提供到达ASBR的路由.类型4的LSA只包含了ASBR的RID信息.类型4的LSA由ABR生成,并在整个AS里进行洪泛
LSA类型5(external LSA),如下图:
http://www.show-tym.com/image/note/200451213201882605.jpg
类型5的LSA描述了到达外部AS的路由,由ASBR生成并在整个AS内洪泛
Interpreting the OSPF LSDB and Routing Table
使用show ip ospf database来查看OSPF的LSDB信息
一些route designator如下:
1.O:代表OSPF area内(intra-area)路由,为router LSA
2.O IA:在一个AS里的area之间(inter-area)的路由,为summary LSA
3.O E1/O E2:AS外路由,为external LSA
SPF算法根据LSDB运算出SPF树来决定最佳路径,步骤如下:
1.所有在各自的area里的路由器计算出最佳路径并放进路由表里,为LSA类型1和类型2.用O来标记
2.area之间的路由器计算出最佳路径,这些最佳路径是area间路由条目,或LSA类型3和LSA类型4.用O IA来标记
3.所有的除了stub area的路由器计算出到达外部AS的最佳路径(LSA类型5),标记为O E1或O E2
O E1和O E2的区别为是到达外部网络,前者要加内部cost,后者不加,如下图:
http://www.show-tym.com/image/note/20045162221920297.jpg
一般只有一个ASBR宣告到达外部AS的外部路由的时候,就使用O E2(O E2为默认类型);如果有多个ASBR宣告一条到达同一个外部AS的外部路由的时候,就应该使用O E2
Changing the Cost Metric
默认情况下,Cisco根据100Mbps/bandwidth来计算metric,比如64Kbps链路的metric约为1562,T1的为64,100Mbps的链路为1.当链路速率大于100Mbps的时候,应该在OSPF进程下使用如下命令:
RouterA(config-router)#auto-cost reference-bandwidth
在接口自定义cost的命令如下:
RouterA(config-if)#ip ospf cost [value]
这条命令将使得超越默认的cost计算,具有更高的优先权.value范围为1到65535.值越低,就越优先采用该接口
OSPF Route Summarization Concepts
OSPF路由汇总可以减少路由表条目,减少类型3和类型5的LSA的洪泛,节约带宽资源和减轻路由器CPU负载,还能够对拓扑的变化本地化
OSPF路由汇总的两种类型如下:
1.inter-area(IA) route summarization:发生在ABR上
2.external route summarization:发生在ASBR上
Configuring Route Summarization
因为OSPF是基于无类的路由协议,它不会进行自动汇总.手动在ABR上做IA route summarization的命令如下:
Router(config-router)#area [area-id] range [address] [mask]
在ASBR上做external route summarization的命令如下:
Router(config-router)#summary-address [address] [mask] [not-advertise] [tag tag]
如下图就是一个ASBR上的external route summarization的例子:
http://www.show-tym.com/image/note/20045162222844756.jpg
R1(config-router)#network 172.16.64.1 0.0.0.0 area 1
R1(config-router)#summary-address 172.16.32.0 255.255.224.0
Default Routes in OSPF
OSPF路由器默认不会产生默认路由到一般性的area里,但是可以通过相关命令启用默认路由.默认路由作为LSA类型5出现在LSDB中
创建OSPF默认路由的命令如下:
Router(config-router)#default-information originate [always] [metric value] [metric-type type-value] [route-map map-name]
参数always是不管路由表里是否存在默认路由,都会宣告一条默认路由0.0.0.0
metric value是指定默认路由的metric,默认为10
type-value可以为1或者2.1为O E1,2为O E2,默认是2
route-map map-name是如果满足route map的话就产生默认路由
实例如下图:
http://www.show-tym.com/image/note/20045162223786089.jpg
R1(config)#router ospf 100
R1(config-router)#netw 10.1.1.1 0.0.0.0 area 0
R1(config-router)#default-information originate metric 10
R2(config)#router ospf 100
R2(config-router)#netw 10.2.1.1 0.0.0.0 area 0
R2(config-router)#default-information originate metric 100
Types of OSPF Areas
一些OSPF area的类型如下:
1.standard area:接收链路更新,路由汇总和外部路由
2.backbone area(transit area):标记为area 0,拥有standard area的一切属性
3.stub area:不可以包含ASBR.不接收外部路由信息(LSA类型5),如果要到达外部AS的话就使用标记为0.0.0.0的默认路由.好处是可以减少路由表的条目.stub area没有虚链路(virtual link)穿越它们
4.totally stubby area:Cisco私有,不接收外部路由信息和路由汇总信息(LSA类型3,4和5).不可以包含ASBR.如果要到达外部AS的话就使用标记为0.0.0.0的默认路由.好处是最小化路由表条目
5.not-so-stubby area(NSSA):NSSA是OSPF RFC的补遗.定义了特殊的LSA类型7.提供类似stub area和totally stubby area的优点,可以包含的有ASBR
Stub Area Configuration
stub area的配置命令如下:
RouterA(config-router)#area [area-id] stub
所有在stub area里的路由器必须都使用stub命令,例子如下图:
http://www.show-tym.com/image/note/20045162224451808.jpg
R3(config)#router ospf 100
R3(config-router)#netw 192.168.14.0 0.0.0.255 area 0
R3(config-router)#netw 192.168.15.0 0.0.0.255 area 2
R3(config-router)#area 2 stub
R4(config)#router ospf 10
R4(config-router)#netw 192.168.15.0 0.0.0.255 area 2
R4(config-router)#area 2 stub
如上是把area 2配置为stub area,R3做为ABR自动向area 2(stub area)宣告一条metric为1的默认路由0.0.0.0
Totally Stubby Area Configuration
totally stubby area的配置命令如下:
RouterA(config-router)#area [area-id] stub no-summary
ABR默认宣告一条metric为1的默认路由到totally stubby area,修改这个metric的命令如下:
RouterA(config-router)# area [area-id] default-cost [cost]
配置实例如下图:
http://www.show-tym.com/image/note/20045162225191823.jpg
R3(config)#router ospf 100
R3(config-router)#netw 130.130.0.0 0.0.255.255 area 1
R3(config-router)#area 1 stub
R4(config)#router ospf 50
R4(config-router)#netw 130.130.0.0 0.0.255.255 area 1
R4(config-router)#netw 130.135.0.0 0.0.255.255 area 0
R4(config-router)#area 1 stub no-summary
R4(config-router)#area 1 default-cost 10
R4(config)#router ospf 50
R2(config-router)#netw 130.130.0.0 0.0.255.255 area 1
R2(config-router)#netw 130.135.0.0 0.0.255.255 area 0
R2(config-router)#area 1 stub no-summary
R2(config-router)#area 1 default-cost 5
如上,默认路由将选用R2上的,因为R2的metric更低
Not-So-Stubby Areas
之前说过stub area和totally stub area不可以包含的有ASBR,但是假如你想使用ASBR,又想使其具有stub area和totally stub area的优点(减少路由表条目)的话,就可以采用NSSA,如下图:
[img:b61272a7ab]http://www.show-tym.com/image/note/20045162225942579.jpg[/img:b61272a7ab]
RIP经过再发布(redistribution)到NSSA以后,NSSA的ASBR将产生只存在于NSSA中的LSA类型7,然后ABR将LSA类型7转换成LSA类型5
NSSA的配置命令为在OSPF进程下使用area [area-id] nssa,所有位于NSSA里的路由器都要使用这条命令.如下图是配置实例:
http://www.show-tym.com/image/note/2004516223789257.jpg
R2(config)#router ospf 100
R2(config-router)#summary-address 150.150.0.0 255.255.0.0
R2(config-router)#netw 130.130.20.0 0.0.0.255 area 1
R2(config-router)#netw 130.130.0.0 0.0.255.255 area 0
R2(config-router)#area 1 nssa default-information-originate
使用default-information-originate参数创建一条area 0到NSSA的默认路由.并且类型5的LSA将不会进入NSSA(类似stub area)
R1(config)#router ospf 100
R1(config-router)#redistribute rip subnets
R1(config-router)#default metric 150
R1(config-router)#netw 130.130.0.0 0.0.255.255 area 1
R1(config-router)#area 1 nssa
还可以将NSSA配置成具有totally-stub的特性,如下:
R1(config)#router ospf 100
R1(config-router)#redistribute rip subnets
R1(config-router)#default metric 150
R1(config-router)#netw 130.130.0.0 0.0.255.255 area 1
R1(config-router)#area 1 nssa
R2(config)#router ospf 100
R2(config-router)#summary-address 150.150.0.0 255.255.0.0
R2(config-router)#netw 130.130.20.0 0.0.0.255 area 1
R2(config-router)#netw 130.130.0.0 0.0.255.255 area 0
R2(config-router)#area 1 nssa no-summary
这样类型3,4和5的LSA将不会进入NSSA,no-summary参数只应用在ABR上就可以了,NSSA里的其他路由器只需使用area 1 nssa
The show Commands for Stub and NSSA
一些验证性命令如下:
show ip ospf:显示area类型
show ip ospf database:显示LSA类型7
show ip ospf database nssa-external:显示LSDB中每条类型7的LSA的信息
show ip route:显示标记为O N1/N2的NSSA路由条目(默认为O N2)
Defining an OSPF Virtual Link
在OSPF里所有的area都要和area 0相连,但是假如某个区域没有和area 0相连的话,就可以采用虚链路来连接它们,如下图:
http://www.show-tym.com/image/note/20045162231536814.jpg
虚链路一般是做为备份连接或者是临时连接
虚链路的配置命令如下:
Router(config-router)#area [area-id] virtual-link [RID]
一些其他可选参数如下:
authentication [message-digest|null]:指定验证方式为MD5加密还是明文口令
hello-intervals [second]:定义hello包发送时间间隔,默认为10秒
配置实例如下图:
http://www.show-tym.com/image/note/20045162232321535.jpg
R2(config)#router ospf 100
R2(config-router)#netw 10.3.0.0 0.0.0.255 area 1
R2(config-router)#netw 10.7.0.0 0.0.0.255 area 3
R2(config-router)#area 1 virtual-link 10.3.10.5
注意上面的RID,是指定虚链路中对方的RID,R1的配置如下:
R1(config)#router ospf 200
R1(config-router)#netw 10.2.3.0 0.0.0.255 area 0
R1(config-router)#netw 10.3.2.0 0.0.0.255 area 1
R1(config-router)#area 1 virtual-link 10.7.20.123
注意area-id都为area 1,因为area 1做为虚链路的transit area
使用show ip ospf virtual-links命令验证虚链路的配置