单区域OSPF

命令:

R1(config)#router ospf 1       

R1(config-router)#router-id 1.1.1.1       

R1(config-router)#network 172.16.1.0 0.0.0.255 area 0       

R1(config-router)#network 172.16.1.0 255.255.255.0 area 0       

说明:网络地址的后面即可以跟通配符掩码,在高版本IOS中也可以跟网络掩码,IOS会自动转换成通配符掩码。

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由

R1(config)#router ospf 1

R1(config-router)#router-id 1.1.1.1

R1(config-router)#network 172.16.1.0 0.0.0.255 area 0

R1(config-router)#network 172.16.12.0 0.0.0.255 area 0

R2(config)#router ospf 1

R2(config-router)#router-id 2.2.2.2

R2(config-router)#network 172.16.2.0 0.0.0.255 area 0

R2(config-router)#network 172.16.12.0 0.0.0.255 area 0

R2(config-router)#network 172.16.23.0 0.0.0.255 area 0

R3(config)#router ospf 1

R3(config-router)#router-id 3.3.3.3

R3(config-router)#network 172.16.3.0 0.0.0.255 area 0

R3(config-router)#network 172.16.23.0 0.0.0.255 area 0

R3(config-router)#network 172.16.34.0 0.0.0.255 area 0

R4(config)#router ospf 1

R4(config-router)#router-id 4.4.4.4

R4(config-router)#network 172.16.4.0 0.0.0.255 area 0

R4(config-router)#network 172.16.34.0 0.0.0.255 area 0

说明:

1.OSPF路由进程ID的范围在1-65535之间,而且只有本地含义,不同路由器的路由进程ID可以不同。如果要想启

2.区域ID是0-4294967295的数,也可以是IP地址的格式A.B.C.D。当网络区域为0或0.0.0.0时称为主干区域。

3.Router ID选择遵循如下顺序:

   

    ②使用“router-id”后,应使用命令“clear ip ospf process”重置ospf进程,新配置的RID才能生效;

    ③2、3步只有在下次重启路由器时才会生效,即后来加入大的IP地址也不能选举为RID直到路由器重启。

4.Router ID重新选举规则:

实验调试

show ip route ospf 1       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_02

以上输出结果表明在同一个区域内,通过OSPF路由协议学习到的路由条目用代码“O”表示。

OSPF度量值cost计算公式 = 所有链路入接口的cost之和;

接口cost计算公式 = 108/带宽(bps)取整;环回接口的cost值为1。

说明:

1.环回接口所在网络的OSPF路由条目的掩码长度都是32位,这是环回接口的特性,尽管通告了24位,解决的办法

 R1(config-if)#ip ospf network point-to-point       

 

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_03

 OSPF定义了6种网络类型,分别为:点对点、广播多路访问(BMA)、非广播多路访问(NBMA)、点对多点、环回接

 口、虚拟链路(Virtual Links)。
2.路由条目“172.16.4.4/32”的度量值为“193”,到路由器R1经过的入接口包括:R4的loopback0、R3的

 S0/0、R2的S0/1及R1的S0/0,所以计算如下:1+108/1544000+108/1544000+108/1544000=193。也可以直接通过

  R1(config-if)#ip ospf cost 64       

 

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_04

R1#show ip protocols       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_05

R1#show ip ospf 1        //可查看OSPF进程ID、RID、OSPF区域信息以及上次计算SPF算法的时间

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_06

R1#show ip ospf interface       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_07

R1#show ip ospf neighbor       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_R3_08

OSPF邻居关系不能建立的常见原因:

1.Hello间隔和Dead间隔不同;

   

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_09

   R1(config-if)#ip ospf hello-intrval 10       

   R1(config-if)#ip ospf dead-interval 40       

   

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_10

2.区域ID不一样;

3.特殊区域(如stub、nssa等)区域类型不匹配;

4.认证类型或密码不一致;

5.路由器ID相同;

6.Hello包被ACL拒绝;

7.链路上的MTU不匹配;

8.接口下OSPF网络类型不匹配。
R1#show ip ospf database       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_11


广播多路访问链路上的OSPF

命令:

R1(config-router)#auto-cost reference-bandwidth 1000 //修改OSPF计算度量值的参考带宽,单位MB/s

ospf如何单独引入一条直连路由 ospf引入直连路由命令_R3_12

R1(config)#router ospf 1

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

R2(config)#router ospf 1

R2(config-router)#auto-cost reference-bandwidth 1000
R3(config)#router ospf 1

R3(config-router)#auto-cost reference-bandwidth 1000
R4(config)#router ospf 1

R4(config-router)#auto-cost reference-bandwidth 1000
说明:“auto-cost reference-bandwidth”命令是修改计算OSPF度量值参考带宽的。如果以太口带宽为千兆,而采用默认的百兆参考带宽,计算出来的cost是0.1,这显然是不太合理的。修改参考带宽要在路由器内所有的OSPF路由器上配置,目的是确保参考标准是相同的。

另外,当执行命令“auto-cost reference-bandwidth”时,系统也会提示如下信息:

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_13

实验调试
R4#show ip ospf neighbor       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_14

以上输出表明在该广播多路访问网络中,路由器R4是DR,路由器R3是BDR,路由器R1和路由器R2是DROTHER。

说明:

1.DR和BDR有自己的组播地址224.0.0.6;

2.DR和BDR的选举是以各网络为基础的,也就是说DR和BDR选举是路由器的接口特性,而不是整个路由器的特性;

3.DR选举是非抢占的,除非人为地重新选举。

4.DR选举的原则:

   果没有新的OSPF路由器启动,它就被选举为DR,如果有新的路由器启动那么它们将按照②、③进行选举;
 

  

  

 R1(config-if)#ip ospf priority 150       

 

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_15

5.重新选举DR/BDR的方法:

R4#show ip ospf int f0/0       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_R3_16

从上面的路由器R1和路由器R4的输出得知,邻居关系和邻接关系是不能混为一谈的,邻居关系是指达到2-Way状态的两台路由器,而邻接关系是指达到FULL状态的两台路由器。


OSPF区域认证

命令

区域简单口令认证:

R1(config-router)#area 0 authentication       

R1(config-if)#ip ospf authentication-key cisco       

区域MD5认证:

R1(config-router)#area 0 authentication message-digest       

R1(config-if)#ip ospf message-digest-key 1 md5 cisco       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_17

区域简单口令认证

R1(config)#router ospf 1

R1(config-router)#area 0 authentication

R1(config)#int s0/0

R1(config-if)#ip ospf authentication-key cisco

R2(config)#router ospf 1

R2(config-router)#area 0 authentication

R2(config)#int s0/0

R2(config-if)#ip ospf authentication-key cisco

实验调试

R1#show ip ospf

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_18

以上输出表明区域0采用了简单口令认证。

R1#show ip ospf int s0/0

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_19

以上输出最后一行信息表明该接口启用了简单口令认证。

R1#debug ip ospf packet

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_20

以上输出表明接收到认证类型为1的Hello数据包。

认证:

1.如果R1区域0没有启用认证,而R2区域0启用简单口令认证,则R2会出现下面的信息:

R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_21

2.如果R1和R2的区域0都启用简单口令认证,但R2接口下没有配置密码或密码错误,则R2会出现下面的信息:

R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_22

区域MD5认证

R1(config)#router ospf 1

R1(config-router)#area 0 authentication message-digest

R1(config)#int s0/0

R1(config-if)#ip ospf message-digest-key cisco

R2(config)#router ospf 1

R2(config-router)#area 0 authentication message-digest

R2(config)#int s0/0

R2(config-if)#ip ospf message-digest-key cisco
实验调试
R1#show ip ospf

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_23

以上输出表明区域0采用了MD5认证。

R1#show ip ospf int s0/0

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_24

以上输出最后两行信息表明该接口启用了MD5认证,而且使用密钥ID为1进行认证。

R1#debug ip ospf packet

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_25

以上输出表明接收到认证类型为2,Key ID为1,序列号为0x3C7ECCC1的Hello数据包。

认证

1.如果R1的区域0启用MD5认证,而R2的区域0启用简单口令认证,则R2会出现下面的信息:

R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_26

2.如果R1和R2的区域0都启用MD5认证,但R2的接口下没配置Key ID和密码或错误密码,则R2会出现下面的信息:
R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_27

OSPF接口认证

命令

接口简单口令认证:

R1(config-if)#ip ospf authentication       

R1(config-if)#ip ospf authentication-key cisco       

接口MD5认证:

R1(config-if)#ip ospf authentication message-digest       

R1(config-if)#ip ospf message-digest-key 1 md5 cisco       

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_28

接口简单口令认证

R1(config)#int s0/0

R1(config-if)#ip ospf authentication

R1(config-if)#ip ospf authentication-key cisco

R2(config)#int s0/0

R2(config-if)#ip ospf authentication

R2(config-if)#ip ospf authentication-key cisco

实验调试

R1#show ip ospf int s0/0

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_29

以上输出最后一行信息表明该接口启用了简单口令认证。

R1#debug ip ospf packet

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_30

以上输出表明接收到认证类型为1的Hello数据包。

认证:

1.如果R1的s0/0没有启用认证,而R2的s0/0启用简单口令认证,则R2会出现下面的信息:

R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_31

2.如果R1和R2的s0/0都启用简单口令认证,但R2的s0/0没有配置密码或密码错误,则R2会出现下面的信息:

R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_32

接口MD5认证

R1(config)#int s0/0

R1(config-if)#ip ospf authentication message-digest

R1(config-if)#ip ospf message-digest-key cisco

R2(config)#int s0/0

R2(config-if)#ip ospf authentication message-digest

R2(config-if)#ip ospf message-digest-key cisco
实验调试
R1#show ip ospf int s0/0

ospf如何单独引入一条直连路由 ospf引入直连路由命令_优先级_33

以上输出最后两行信息表明该接口启用了MD5认证,而且使用密钥ID为1进行认证。

R1#debug ip ospf packet

ospf如何单独引入一条直连路由 ospf引入直连路由命令_R3_34

以上输出表明接收到认证类型为2,Key ID为1,序列号为0x3C7EC76D的Hello数据包。

认证

1.如果R1的s0/0启用MD5认证,而R2的s0/0启用简单口令认证,则R2会出现下面的信息:

R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_ospf如何单独引入一条直连路由_35

2.如果R1和R2的s0/0都启用MD5认证,但R2的s0/0没配置Key ID和密码或错误密码,则R2会出现下面的信息:
R2#debug ip ospf events

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_36

默认路由再发布(本地:静态默认路由 S*;其它:通告缺省默认外部路由 O*E2)

ospf如何单独引入一条直连路由 ospf引入直连路由命令_R3_37

命令:

R1(config)#ip route 0.0.0.0 0.0.0.0 loopback 1       

R1(config)#router ospf 1

R1(config-router)#default-information originate       

说明:“default-information originate”命令后面可以加可选的“always”参数,如果不使用该参数,路由器上必须存在一条默认路由,否则该命令不产生任何效果。如果使用该参数,无论路由器上是否存在默认路由,路由器都会向OSPF区域内注入一条默认路由。

实验调试

R4#show ip route

ospf如何单独引入一条直连路由 ospf引入直连路由命令_R3_38

以上R4路由表的输出表明,通过命令“default-information originate”确实可以向OSPF区域注入“O*E2”的默认路由。同样,R2、R3的路由表中也包含一条“O*E2”的默认路由。

R4#show ip ospf database

ospf如何单独引入一条直连路由 ospf引入直连路由命令_OSPF_39

通过查看R4的拓扑结构数据库可以看到,确实从外面注入了一条类型5的LSA。