首页 > 学院 > 网络通信 > 正文

Cisco IOS Cookbook 中文精简版第八章OSPF

2019-11-05 00:09:51
字体:
来源:转载
供稿:网友

8.1.  配置OSPF

提问 在网络中启用OSPF

回答

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#router ospf 87

Router5(config-router)#network 0.0.0.0 255.255.255.255 area 0

Router5(config-router)#exit

Router5(config)#end

Router5#

注释 这里OSPF的进程号是本地使用,不需要像EIGRP一样整个网络保持一致。在12.3(11)T以后有一个专门的命令来指定端口加入OSPF 区域,而不需要用network的命令

Router9#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router9(config)#router ospf 87

Router9(config-router)#exit

Router9(config)#interface FastEthernet0/0

Router9(config-if)#ip address 172.18.5.9 255.255.255.0

Router9(config-if)#ip ospf 87 area 10

Router9(config-if)#exit

Router9(config)#end

Router9#

8.2.  路由过滤

提问 进行路由过滤,只答应OSPF宣告特定路由进入路由表

回答

入方向

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#access-list 1 deny 172.20.10.0

Router5(config)#access-list 1 permit any

Router5(config)#router ospf 87

Router5(config-router)#distribute-list 1 in Ethernet0/0

Router5(config-router)#exit

Router5(config)#end

Router5#

注释 根据OSPF的机制,所有区域内的路由器LSA数据库内容必须保持一致,所以正常情况下不能对出方向进行过滤,入方向过滤也是防止其进入路由表,在本地的LSA数据库还是有此路由。当然假如确实需要对出方向进行过滤就必须对出方向所有的LSA进行过滤,这样会导致下游路由器的LSA数据库不完整,一般不推荐使用。

点对多点链路出方向过滤

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.


Router1(config)#router ospf 87

Router1(config-router)#neighbor 192.168.1.3 database-filter all out

Router1(config-router)#exit

Router1(config)#end

Router1#

广播,点到点链路出方向过滤

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#interface Serial0/0

Router1(config-if)#encapsulation frame-relay

Router1(config-if)#exit

Router1(config)#interface Serial0/0.10 multipoint

Router1(config-subif)#ip address 192.168.1.1 255.255.255.0

Router1(config-subif)#ip ospf network broadcast

Router1(config-subif)#ip ospf database-filter all out

Router1(config-subif)#frame-relay map ip 192.168.1.3 101 broadcast

Router1(config-subif)#frame-relay map ip 192.168.1.5 109 broadcast

Router1(config-subif)#exit

Router1(config)#router ospf 1

Router1(config-router)#network 0.0.0.0 255.255.255.255 area 10

Router1(config-router)#exit

Router1(config)#end

Router1#

8.3.  调整OSPF代价值

提问 调整OSPF链路的代价值

回答

全局调整

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#router ospf 87

Router5(config-router)#auto-cost reference-bandwidth 1000

Router5(config-router)#exit

Router5(config)#end

Router5#

接口调整

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#interface Ethernet0

Router5(config-if)#ip ospf cost 31

Router5(config-if)# exit


Router5(config)#end

Router5#

注释

8.4.  宣告缺省路由到OSPF

提问 宣告缺省路由到OSPF网络

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#ip route 0.0.0.0 0.0.0.0 172.25.1.1

Router1(config)#router ospf 55

Router1(config-router)#default-information originate metric 30 metric-type 1

Router1(config-router)#exit

Router1(config)#end

Router1#

注释 在这里不能使用再发布静态路由得命令来发布缺省路由

8.5.  再发布静态路由到OSPF

提问 宣告一条或者多条静态路由到OSPF

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#ip route 192.168.10.0 255.255.255.0 172.22.1.4

Router1(config)#ip route 172.24.1.0 255.255.255.0 172.22.1.4

Router1(config)#ip route 10.100.1.0 255.255.255.0 172.22.1.4

Router1(config)#router ospf 55

Router1(config-router)#redistribute static    

% Only classful networks will be redistributed

Router1(config-router)#exit

Router1(config)#end

Router1#

注释 根据上面得命令提示可以看到缺省情况下OSPF只再发布有类得路由,所以按照例子上虽然三条静态路由但是只有192.168.10.0/24是有类路由,能够发布出去,其它两个就不行。这时候就需要配置redistribute static subnets命令来发布子网,当然也可以添加metric等选项

 

8.6.  再发布外部路由到OSPF

提问 再发布其它路由协议得路由信息到OSPF

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#redistribute eigrp 11 subnets  

Router1(config-router)#exit

Router1(config)#end

Router1#

在12.3(2)T以后增加了下面得命令对再发布过来得条目做了限制

Router1(config-router)#redistribute maximum-PRefix 1000 80


 

注释 这里还是要注重subnet得参数。对于最后一个条目限制得命令,第一个1000是路由条目数,第二个80是百分比

8.7.  DR选举

提问 对DR选举做人为控制

回答

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#interface Ethernet0

Router5(config-if)#ip ospf priority 10                 

Router5(config-if)#exit

Router5(config)#end

Router5#

注释 DR选举人工控制最重要得两种情况是MOSPF和NBMA网络。在MOSPF网络中,MOSPF得DR和正常OSPF得DR是相同得,而假如DR不是一个MOSPF得路由器那么所有组播得路由就不能转发,思科路由器是不支持MOPSF得,所以在这种情况下必须使用ip ospf priority 0得命令来禁止其称为BDR或者DR。在NBMA得网络中要不DR设置在Hub路由器上。还有一个重要得问题是DR是不能强占得,假如网络中已经有了DR,这时即使新加入得路由器有更高得优先级他也不能称为DR,必须等待现在得DR出了问题才可以重新选举为DR。

8.8.  设置OSPF RID

提问 人工设定路由器得Router ID

回答

一种是Loopback地址方式

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#interface Loopback0

Router5(config-if)#ip address 172.25.25.6 255.255.255.255

Router5(config-if)#exit

Router5(config)#end

Router5#

一种是Router ID命令方式

Router5#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router5(config)#router ospf 87

Router5(config-router)#router-id 172.25.1.7

Router5(config-if)#exit

Router5(config)#end

Router5#

注释 缺省会用最大IP地址作为Router ID。Router id命令后面得IP地址可以随意,不需要必须是存在得地址。另外router id一旦定下来以后,即使重新修改了地址也不能变更,必须通过clear

ip ospf process得方式或者reload得方式来改变

8.9.  启用OSPF鉴权

提问 对邻居关系建立启用鉴权从而保证网络设备得安全性

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#interface Serial0/1


Router1(config-if)#ip ospf message-digest-key 1 md5 oreilly

Router1(config-if)#exit

Router1(config)#router ospf 55

Router1(config-router)#area 2 authentication message-digest

Router1(config-router)#exit

Router1(config)#end

Router1#

注释 注重得是不同厂商得OPSF MD5加密认证互联可能会有问题,因为RFC没有规范。对于新老密码替换得问题,通过配置新旧两个密码得方式来解决

8.10.  选择合适得区域类型

提问 不同得区域有不同得链路状态数据库,通过不同区域得选择来节省路由器资源和更快收敛

回答

Stubby Area

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#area 100 stub

Router1(config-router)#exit

Router1(config)#end

Router1#

Totally Stubby Area

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#area 100 stub no-summary

Router1(config-router)#exit

Router1(config)#end

Router1#

Not So Stubby Areas (NSSA), 同时生成一条缺省路由

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#area 100 nssa default-information-originate

Router1(config-router)#exit

Router1(config)#end

Router1#

Totally Stubby, Not So Stubby Area.

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#area 100 nssa no-summary

Router1(config-router)#exit


Router1(config)#end

Router1#

 

注释 这些都是在ABR上的配置,对于区域里面其它的路由器就是只有NSSA和stub的配置没有必要配置是否为totally stubby。

8.11.  在拨号接口上配置OSPF

提问 在拨号接口上启用OSPF,但又不想让OSPF的协议数据一直保持拨号链路处于激活状态

回答

下面例子是R4只能拨号到R1

Router4#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router4(config)#username Router1 passWord 0 cisco

Router4(config)#interface BRI0

Router4(config-if)#ip address 192.168.15.4 255.255.255.0

Router4(config-if)#encapsulation ppp

Router4(config-if)#ip ospf demand-circuit

Router4(config-if)#dialer map ip 192.168.15.1 broadcast 4165550000

Router4(config-if)#dialer-group 1

Router4(config-if)#isdn switch-type basic-ni

Router4(config-if)#isdn spid1 416555001000 4165550010

Router4(config-if)#isdn spid2 416555001100 4165550011

Router4(config-if)#ppp authentication chap

Router4(config-if)#ppp multilink

Router4(config-if)#exit

Router4(config)#dialer-list 1 protocol ip permit

Router4(config)#router ospf 87

Router4(config-router)#network 192.168.15.0 0.0.0.255 area 10

Router4(config-router)#exit

Router4(config)#end

Router4#

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#username Router4 password 0 cisco

Router1(config)#interface BRI0/0

Router1(config-if)#ip address 192.168.15.1 255.255.255.0

Router1(config-if)#encapsulation ppp

Router1(config-if)#dialer-group 1

Router1(config-if)#isdn switch-type basic-ni


Router1(config-if)#isdn spid1 416555000000 4165550000

Router1(config-if)#isdn spid2 416555000100 4165550001

Router1(config-if)#ppp authentication chap

Router1(config-if)#ppp multilink

Router1(config-if)#exit

Router1(config)#dialer-list 1 protocol ip permit

Router1(config)#router ospf 87

Router1(config-router)#network 192.168.15.0 0.0.0.255 area 10

Router1(config-router)#exit

Router1(config)#end

Router1#

 

注释 使用ip ospf demand-circuit 的命令可以保持邻居关系一直是FULL状态,而不管链路是否激活

8.12.  路由汇总

提问 减少路由表大小

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#area 100 range 172.20.0.0 255.255.0.0

Router1(config-router)#area 0 range 172.25.0.0 255.255.0.0

Router1(config-router)#area 2 range 10.0.0.0 255.0.0.0

Router1(config-router)#exit

Router1(config)#end

Router1#

注释 OSPF的路由汇总只能配置在ABR上。生成的汇总路由代价值缺省情况下和子网路由中最小的一致,也就是说汇总路由的稳定状态和代价值最小的那个路由条目相关,这也是RFC1583上的定义,在新的RFC中定义了汇总路由代价值和最大的那个路由条目相关,所以一定要确定所有路由器采用相同的计算方法,思科缺省使用RFC1583的方法,禁用可以使用no compatible rfc1583在ABR上启用汇总以后会自动生成一条汇总路由的丢弃路由(12.1(6))来避免路由回环

8.13.  在特定端口禁用OSPF

提问 禁止某个端口参与OSPF

回答

Router3#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router3(config)#router ospf 44

Router3(config-router)#network 0.0.0.0 255.255.255.255 area 100

Router3(config-router)#passive-interface Ethernet0

Router3(config-router)#exit

Router3(config)#end

Router3#


注释 OSPF也是通过配置被动接口的方式来不生成邻居关系从而避免参与OSPF。当然也可以通过不在network命令中包含此端口来禁止,下面就是另外一种很好的配置方法,network了所有接口,但是缺省所有端口是被动接口,对于需要的接口再使用no的命令才参与OSPF:

Router3(config)#router ospf 44

Router3(config-router)#network 0.0.0.0 255.255.255.255 area 100

Router3(config-router)#passive-interface default

Router3(config-router)#no passive-interface Ethernet0

Router3(config-router)#exit

Router3(config)#end

Router3#

8.14.  修改接口的网络类型

提问 修改某个端口缺省的网络类型

回答

Router9#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router9(config)#interface FastEthernet0/0

Router9(config-if)#ip ospf network ?

  broadcast            Specify OSPF broadcast multi-access network

  non-broadcast        Specify OSPF NBMA network

  point-to-multipoint  Specify OSPF point-to-multipoint network

  point-to-point       Specify OSPF point-to-point network

 

Router9(config-if)#

注释 上述四个要害词主要定义媒介是否支持广播或者组播数据包,是否需要选举DR。对于Broadcast网络,支持组播,DR可以自动选择,不需要配置。对于nonbroadcast网络,不支持组播,必须人工使用neighbor命令配置邻居关系。对于point-to-multipoint网络,不需要DR选举,也不需要neighbor命令,这时候需要注重的是framerelay配置中要答应broadcast:

Router9(config)#interface Serial0/0

Router9(config-if)#ip address 192.168.10.9 255.255.255.0

Router9(config-if)#encapsulation frame-relay

Router9(config-if)#frame-relay map ip 192.168.10.2 123 broadcast

Router9(config-if)#ip ospf network point-to-multipoint

Router9(config-if)#exit

Router9(config)#router ospf 1

Router9(config-router)#network 192.168.10.0 0.0.0.255 area 0

Router9(config-router)#exit

否则必须配置neighbor

Router9(config)#interface Serial0/0

Router9(config-if)#ip address 192.168.10.9 255.255.255.0


Router9(config-if)#encapsulation frame-relay

Router9(config-if)#frame-relay map ip 192.168.10.2 123

Router9(config-if)#ip ospf network point-to-multipoint non-broadcast

Router9(config-if)#exit

Router9(config)#router ospf 1

Router9(config-router)#network 192.168.10.0 0.0.0.255 area 0

Router9(config-router)#neighbor 192.168.10.2

Router9(config-router)#exit

最后一种point-to-point网络不需要DR,但必须支持组播来建立邻居,否则需要配置neighbor命令。

还有一个非凡的回环地址,缺省情况OSPF会宣告回环地址为/32的网络,但是你可以在回环接口上配置其为ip ospf network point-to-point,来强制他宣告正确的网络掩码

8.15.  路由标签

提问 对特定的路由打标签避免互相再发布出现路由回环

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#router ospf 55

Router1(config-router)#redistribute eigrp 11 metric-type 1 subnets tag 67

Router1(config-router)#exit

Router1(config)#end

Router1#

注释

8.16.  记录OSPF邻居状态变化

提问 记录OSPF邻居状态变化信息

回答

Router2#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router2(config)#router ospf 12

Router2(config-router)#log-adjacency-changes

Router2(config-router)#exit

Router2(config)#end

Router2#

注释 12.1后对上面命令增加了detail参数可以看到更多邻居状态变化的信息
8.17.  OSPF定时器

提问 调整定时器,加快收敛

回答

Router1#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router1(config)#interface Serial0/1

Router1(config-if)#ip ospf hello-interval 5

Router1(config-if)#ip ospf dead-interval 20

Router1(config-if)#exit

Router1(config)#end


Router1#

注释 要保证和此端口相连的设备采用相同的定时器值,否则邻居关系不能建立

8.18.  减少OSPF协议流量

提问 在稳定的网络要不需要LSA的过多数据包传递

回答

Router9#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router9(config)#interface Serial0/0

Router9(config-if)#ip address 192.168.10.9 255.255.255.0

Router9(config-if)#ip ospf flood-redUCtion

Router9(config-if)#exit

Router9(config)#end

Router9#

注释 正常情况下OSPF会每隔一小时进行所有的LSA泛洪,在稳定网络里面一般不需要,所以通过这种方式设定LSA的DoNotAge位,避免过多流量

8.19.  OSPF虚拟链路

提问 把两个分开的路由器通过虚拟链路的方式相连

回答

Router9#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router9(config)#router ospf 1

Router9(config-router)#area 10 virtual-link 10.54.0.1

Router9(config-router)#exit

Router9(config)#end

Router9#

注释 通过show ip ospf virtual-links来验证。需要注重的是这个需要两个路由器都进行配置,IP地址是对方的Router ID,要确保这个地址是通的,area后面跟的是穿越的Area

8.20.  使用域名查看OSPF状态

提问 在OSPF的show命令中现实设备域名而不是地址

回答

Router3#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router3(config)#ip ospf name-lookup

Router3(config)#end

Router3#

注释 无

8.21.  OSPF排错

提问 对OSPF进行排错

回答

Router3#debug ip ospf adj

OSPF adjacency events debugging is on

Router3#

注释 OSPF排错命令很多,这里只提供了对邻居关系的排错命令,因为邻居是OSPF的基础



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表