实验一:点到点型网络配置单区域ospf和MD5认证R1配置: R1#conf t R1(config)#hostname R1 R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1255.255.255.0 R1(config-if)#ex R1(config)#int s1/0 R1(config-if)#ip add 192.168.12.1255.255.255.0 R1(config-if)#clock rate 64000 //串口连接配置时钟频率64000 R1(config-if)#ip ospf authenticationmessage-digest//激活接口下的OSPF认证, R1(config-if)#ip ospfmessage-digest-key 1 md5 kkfloat//设置MD5认证的密码为kkfloat R1(config-if)#no sh R1(config-if)#ex R1(config)#router ospf 1 R1(config-router)#network192.168.12.0 255.255.255.0 area 1 R1(config-router)#network 1.1.1.0255.255.255.0 area 1 R1(config-router)#area 1authentication message-digest//开启区域0认证,所有处于区域0的接口都需要配置同样的认证 R1(config-router)#ex R2配置 R2#conf t R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2255.255.255.0 R2(config-if)#ex R2(config)#int s1/0 R2(config-if)#ip add 192.168.12.2255.255.255.0 R2(config-if)#clock rate 64000 R2(config-if)#ip ospf authenticationmessage-digest R2(config-if)#ip ospfmessage-digest-key 1 md5 kkfloat R2(config-if)#ex R2(config)#int s1/1 R2(config-if)#ip add 192.168.23.2255.255.255.0 R2(config-if)#clock rate 64000 R2(config-if)#ip ospf authenticationmessage-digest R2(config-if)#ip ospfmessage-digest-key 1 md5 kkfloat R2(config-if)#ex R2(config)#router ospf 1 R2(config-router)#net 2.2.2.0255.255.255.0 area 1 R2(config-router)#net 192.168.12.0255.255.255.0 area 1 R2(config-router)#network192.168.23.0 255.255.255.0 area 1 R2(config-router)#router-id 2.2.2.2 R2(config-router)#area 1authentication message-digest 配置R3: R3#conf t Enter configuration commands, oneper line. End with CNTL/Z. R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3255.255.255.0 R3(config-if)#no sh R3(config-if)#ex R3(config)#int s1/0 R3(config-if)#ip add 192.168.23.1255.255.255.0 R3(config-if)#clo R3(config-if)#clock R R3(config-if)#clock Rate 64000 R3(config-if)#ip ospf authenticationmessage-digest R3(config-if)#ip ospfmessage-digest-key 1 md5 kkfloat R3(config-if)#ex R3(config)#router ospf 1 R3(config-router)#net 3.3.3.0255.255.255.0 area 1 R3(config-router)#net 192.168.23.0255.255.255.0 area 1 R3(config-router)#roouter-id 3.3.3.3 R3(config-router)#area 1authentication message-digest 检查各个路由器ospf学习到的路由信息,ospf的邻居信息,ospf的数据库。测试全网互通性。 Show ip route ospf Show ip ospf nei Show ip ospf database debug ip ospfevents 通过实验看出在点到点网络中ospf不会选举DR/BDR,通过组播地址224.0.0.5发送hello包,自动发现邻居,建立邻接关系,并支持MD5密文认证。另外在帧中继环境中也有点到点模式,该模式通常用于点到点子接口上,每个点到点链路都是一个独立的IP子网,如同运行在点到点拓扑中一样。 总结该模式的特点: 1、 通过点到点子接口的部分全互连逻辑拓扑或星型拓扑。 2、 不需要手工配置邻居。 3、 不选举DR/BDR。 4、 各个子接口属于不同的子网。 实验二:广播型网络配置单区域OSPF R4配置: R4#conf t R4(config)#int lo0 R4(config-if)#ip add R4(config-if)#ip add4.4.4.4 255.255.255.0 R4(config-if)#int e0/0 R4(config-if)#ip add192.168.1.4 255.255.255.0 R4(config-if)#no sh R4(config-if)#ex R4(config)#router ospf 1 R4(config-router)#network4.4.4.0 255.255.255.0 a 1 R4(config-router)#network192.168.1.0 255.255.255.0 a 1 R4(config-router)#router-id4.4.4.4 R5配置: R5#conf t R5(config)#int lo0 R5(config-if)#ip add5.5.5.5 255.255.255.0 R5(config-if)#ex R5(config)#int e0/0 R5(config-if)#ip add192.168.1.5 255.255.255.0 R5(config-if)#no sh R5(config-if)#ex R5(config)#router ospf 1 R5(config-router)#net5.5.5.0 255.255.255.0 area 1 R5(config-router)#net192.168.1.0 255.255.255.0 a 1 R5(config-router)#router-id5.5.5.5 R5(config-router)# R6配置: R6#conf t R6(config)#int lo0 R6(config-if)#ip add6.6.6.6 255.255.255.0 R6(config-if)#ex R6(config)#int e0/0 R6(config-if)#ip add192.168.1.6 255.255.255.0 R6(config-if)#no sh R6(config-if)#ex R6(config)#router os R6(config)#router ospf 1 R6(config-router)#net6.6.6.0 255.255.255.0 a 1 R6(config-router)#net192.168.1.0 255.255.255.0 a 1 R6(config-router)#router-id6.6.6.6 R7配置: R7#conf t R7(config)#int lo0 R7(config-if)#ip add R7(config-if)#ip add7.7.7.7 255.255.255.0 R7(config-if)#ex R7(config)#int e0/0 R7(config-if)#ip add192.168.1.7 255.255.255.0 R7(config-if)#no sh R7(config-if)#ex R7(config)#router ospf 1 R7(config-router)#net7.7.7.0 255.255.255.0 a R7(config-router)#net7.7.7.0 255.255.255.0 area 1 R7(config-router)#net192.168.1.0 255.255.255.0 a 1 检查各个路由器ospf学习到的路由信息,ospf的邻居信息,ospf的数据库。测试全网互通性。此时发现在广播型网络中选举了DR/BDR,并且自动发现邻居。而且在端口默认优先级1下,根据router-id大少决定了DR是R7,BDR是R6,DROTHER是R4和R5。此时R4和R5只跟R7发送LSA包,他们是邻接关系;R6跟R4,R5是邻居关系。R6与R7通过组播地址224.0.0.6通信。R4,R5通过组播地址224.0.0.5与R7通信。注意并不是先启动ospf进程的路由器就是DR,而是有一个时间间隔让路由器来等待其他路由器,在这个时间间隔内,路由器相互监听hello包中的dr和bdr字段,并且服从优先级原则,这个时间间隔与dead interval时间相同都是40S。因为刚开机时是一台路由器接下一台这样配置的,所以最先启动的路由器就认为自己是DR了。而且OSPF没有DR,BDR的抢占机制,也就是说我们配置完成后,必须重启所有路由器或者重启所有路由器的ospf路由器协议 Show ip route ospf Show ip ospf nei Show ip ospf database debug ip ospf events 此时我们还可以通过更改端口优先级,来更改谁是DR和BDR,甚至不参与DR与BDR选举。 实验三:NBMA(非广播多路访问网络)配置单区域OSPF 实验以帧中继网络中的NBMA(非广播多路访问网络)为例,NBMA用于精确模型X.25和帧中继环境,这些模型不具备内部广播和多点传送能力。帧中继是一种高性能的WAN协议,它运行在OSI参考模型的物理层和数据链路层。它是一种数据包交换技术,是X.25的简化版本。它省略了X.25的一些强健功能,如提供窗口技术和数据重发技术,而是依靠高层协议提供纠错功能,这是因为帧中继工作在更好的WAN设备上,这些设备较之X.25的WAN设备具有更可靠的连接服务和更高的可靠性,它严格地对应于OSI参考模型的最低二层,而X.25还提供第三层的服务,所以,帧中继比X.25具有更高的性能和更有效的传输效率。 帧中继广域网的设备分为数据终端设备(DTE)和数据电路终端设备(DCE),Cisco路由器作为 DTE设备。帧中继技术提供面向连接的数据链路层的通信,在每对设备之间都存在一条定义好的通信链路,且该链路有一个链路识别码。这种服务通过帧中继虚电路实现,每个帧中继虚电路都以数据链路识别码(DLCI)标识自己。DLCI的值一般由帧中继服务提供商指定。帧中继即支持PVC也支持SVC。 帧中继本地管理接口(LMI)是对基本的帧中继标准的扩展。它是路由器和帧中继交换机之间信令标准,提供帧中继管理机制。它提供了许多管理复杂互联网络的特性,其中包括全局寻址、虚电路状态消息和多目发送等功能。
NBMA网络类型的hello-time默认时间为30s,dead-time时间为120s。在NBMA设置里,OSPF一次只发送一个呼叫包(在路由器间周期性发送的建立和确认临近关系的包)而不是多广播式的发送给他们。呼叫计时器(它控制路由器每发送一个呼叫包需要隔多少时间)需要延迟10到30秒,失效路由器计时器(它控制在决定临近路由器失效时应该等待多少时间)需要延迟40到120秒。NBMA:一般和部分互联的网络结合使用,需要选举DR/BDR和人工指定邻居。在此注意,OSPF运行在物理接口上,默认的运行模式即NBMA模式,因此不需要明确使用Ip OSPF network non-broadcast。 FR配置: FR#conf t FR(config)#frame-relayswitching//开启帧中继交换功能 FR(config)#int s0/1 FR(config-if)#encapsulationframe-relay ietf//配置接口帧中继封装模式 FR(config-if)#frame-relaylmi-type ansi//配置LMI类型 FR(config-if)#frame intf-typedce //帧中继接口缺省接口类型为 DTE ,DCE类型只有在设备用作帧中继交换或者模拟帧中继局方设备时才使用的 FR(config-if)#clock rate64000 //设置时钟频率,串口同步时间 FR(config-if)#frame-relayroute 102 interface s0/2 201//配置本地端口DLIC值及虚链路对应出口和对端DLIC FR(config-if)#frame-relayroute 103 interface s0/3 301 FR(config-if)#no sh FR(config-if)#exit FR(config)#int s0/2 FR(config-if)#encapsulationframe-relay ietf FR(config-if)#frame-relaylmi-type ansi FR(config-if)#frameintf-type dce FR(config-if)#clock rate64000 FR(config-if)#frame-relayroute 201 int s0/1 102 FR(config-if)#frame-relayroute 203 int s0/3 302 FR(config-if)#no sh FR(config-if)#exit FR(config)#int s0/3 FR(config-if)#encapsulationframe-relay ietf FR(config-if)#frame-relaylmi-type ansi FR(config-if)#frameintf-type dce FR(config-if)#clock rate64000 FR(config-if)#frame-relayroute 301 int s0/1 103 FR(config-if)#frame-relayroute 302 int s0/2 203 FR(config-if)#no sh FR(config-if)#exit 配置R1: R1#conf t R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1255.255.255.0 R1(co2nfig-if)#int s0/1 R1(config-if)#encapsulationframe-relay itef R1(config-if)#frame-relaylmi-type ansi R1(config-if)#ip add192.168.0.1 255.255.255.0 R1(config-if)#no frame-relayinverse-arp //关闭动态反向ARP映射 R1(config-if)#frame-relaymap ip 192.168.0.2 102 //手动添加对端IP与本地DLIC映射 R1(config-if)#frame-relaymap ip 192.168.0.3 103 R1(config-if)#no sh R1(config-if)#exit 配置R2: R2#conf t R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2255.255.255.0 R2(config-if)#int s0/2 R2(config-if)#encapsulationframe-relay itef //设置帧中继封装类型 R2(config-if)#frame-relaylmi-type ansi //设置帧中继LMI类型 R2(config-if)#ip add192.168.0.2 255.255.255.0 R2(config-if)#no frame-relayinverse-arp//关闭动态反向ARP映射 R2(config-if)#frame-relaymap ip 192.168.0.1 201//手动添加对端IP与本地DLIC映射 R2(config-if)#frame-relaymap ip 192.168.0.3 203 R2(config-if)#no sh R2(config-if)#exit R3配置: R3#conf t R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3255.255.255.0 R3(config-if)#int s0/3 R3(config-if)#encapsulationframe-relay itef //设置帧中继封装类型 R3(config-if)#frame-relaylmi-type ansi //设置帧中继LMI类型 R3(config-if)#ip add192.168.0.3 255.255.255.0 R3(config-if)#no frame-relayinverse-arp//关闭动态反向ARP映射 R3(config-if)#frame-relaymap ip 192.168.0.1 301//手动添加对端IP与本地DLIC映射 R3(config-if)#frame-relaymap ip 192.168.0.2 302 R3(config-if)#no sh R3(config-if)#exit 查看各个路由器帧中继网络的映射,此时各个路由外部接口应该是互通的。但是却不能ping通内部的地址。此时我们使用平时的方法配置opsf动态路由协议看看情况如何: R1(config)#router ospf 1 R1(config-router)#net1.1.1.0 255.255.255.0 area 1 R1(config-router)#router-id1.1.1.1 R1(config-router)#net192.168.0.0 255.255.255.0 area 1 R2(config)#router ospf 1 R2(config-router)#net2.2.2.0 255.255.255.0 a 1 R2(config-router)#net192.168.0.0 255.255.255.0 a 1 R2(config-router)#router-id2.2.2.2 R3(config)#router ospf 1 R3(config-router)#net3.3.3.0 255.255.255.0 a 1 R3(config-router)#net192.168.0.0 255.255.255.0 a 1 R3(config-router)#router-id3.3.3.3 完成配置后查看R1、R2、R3的路由表你会发现根本没有OSPF学习到的路由也没有邻居 sh ip route ospf sh ip ospf neighbor debug ip ospf events 原因是由于NBMA网络中允许存在多台Router,物理上链路共享,通过二层虚链路(VC)建立逻辑上的连接,此时网络不是没有广播的能力,而是广播针对每一条VC发送,这样就使得一台路由器在不是Full-Mesh的NBMA拓扑中,发送的广播或组播分组可能无法到达其他所有路由器,而OSPF路由协议是依靠组播去发现邻居和传送LSA包的。所以OSPF正常就要手动指定邻居: R1(config)#router ospf 1 R1(config-router)#nei 192.168.0.2 R1(config-router)#nei 192.168.0.3 R1(config-router)#exit R1(config)#exit R1#clear ip ospf process R2(config)#router ospf 1 R2(config-router)#nei 192.168.0.1 R2(config-router)#nei 192.168.0.3 R2(config-router)#exit R2(config)#exit R2#clear ip ospf process R3(config)#router ospf 1 R3(config-router)#nei 192.168.0.1 R3(config-router)#nei 192.168.0.2 R3(config-router)#exit R3(config)#exit R3#clear ip ospf process 此时我们再查看R1,R2,R3路由表,和ospf邻居关系表和数据库,就正常了 sh ip route ospf sh ip ospf neighbor sh ip ospf database debug ip ospf events 如此同时我们也发现,此NBMA网络选举了R3作为DR,R2作为BDR,R1作为DROTHER.路由器间使用单播地址而不是使用组播建立邻居关系和交换路由信息。 总结该模式的特点:此模式不推荐使用,一是配置复杂,而是需要选择DR,邻居建立慢。
各R之间使用PVC建立完全互连的逻辑拓扑。 邻居属于同一子网。 手工配置邻居 R之间选举DR/BDR LSA和LSAck分别被发送到各个邻居路由器。
实验四:点到多点广播型网络配置单区域OSPF 同样以帧中继为例 FR配置: FR#conf t FR(config)#frame-relayswitching//开启帧中继交换功能 FR(config)#int s0/1 FR(config-if)#encapsulationframe-relay ietf//配置接口帧中继封装模式 FR(config-if)#frame-relaylmi-type ansi//配置LMI类型 FR(config-if)#frameintf-type dce //帧中继接口缺省接口类型为 DTE ,DCE类型只有在设备用作帧中继交换或者模拟帧中继局方设备时才使用的 FR(config-if)#clock rate64000 //设置时钟频率,串口同步时间 FR(config-if)#frame-relayroute 102 interface s0/2 201//配置本地端口DLIC值及虚链路对应出口和对端DLIC FR(config-if)#frame-relayroute 103 interface s0/3 301 FR(config-if)#no sh FR(config-if)#exit FR(config)#int s0/2 FR(config-if)#encapsulationframe-relay ietf FR(config-if)#frame-relaylmi-type ansi FR(config-if)#frameintf-type dce FR(config-if)#clock rate64000 FR(config-if)#frame-relayroute 201 int s0/1 102 FR(config-if)#no sh FR(config-if)#exit FR(config)#int s0/3 FR(config-if)#encapsulationframe-relay ietf FR(config-if)#frame-relaylmi-type ansi FR(config-if)#frameintf-type dce FR(config-if)#clock rate64000 FR(config-if)#frame-relayroute 301 int s0/1 103 FR(config-if)#no sh FR(config-if)#exit R1配置 R1#conf t R1(config)#ints0/1 R1(config-if)#encapsulationframe-relay ietf R1(config-if)#frame-relaylmi-ty ansi R1(config-if)#nosh R1(config-if)#exit R1(config)#ints0/1.12 multipoint R1(config-subif)#ipadd 192.168.0.12 255.255.255.0 R1(config-subif)#frame-relaymap ip 192.168.0.2 102 R1(config-subif)#nosh R1(config-subif)#exit R1(config)#ints0/1.13 multipoint R1(config-subif)#ipadd 192.168.0.13 255.255.255.0 R1(config-subif)#frame-relaymap ip 192.168.0.3 103 R1(config-subif)#nosh R1(config-subif)#exit R1(config)#int lo0 R1(config-if)#ipadd 1.1.1.1 255.255.255.0 R2配置: R2#conf t R2(config)#ints0/2 R2(config-if)#encapsulationframe-relay ietf R2(config-if)#frame-relaylmi-type ansi R2(config-if)#ipadd 192.168.0.2 255.255.255.0 R2(config-if)#frame-relaymap ip 192.168.0.12 201 R2(config-if)#nosh R2(config-if)#exit R2(config)#int lo0 R2(config-if)#ipadd 2.2.2.2 255.255.255.0 R3配置: R3#conf t R3(config)#ints0/3 R3(config-if)#encapsulationframe-relay ietf R3(config-if)#frame-relaylmi-type ansi R3(config-if)#ipadd 192.168.0.3 255.255.255.0 R3(config-if)#frame-relaymap ip 192.168.0.13 103 R3(config-if)#nosh R3(config-if)#exit R3(config)#int lo0 R3(config-if)#ipadd 3.3.3.3 255.255.255.0 R3(config-if)#exit 完成配置后R2可以Ping通R1可以互Ping外部接口地址, R3可以Ping通R1外部接口地址.但是都不能ping对方的内部地址。我们再按照平常的方法配置OSPF动态路由协议: R1(config)#router ospf 1 R1(config-router)#net 1.1.1.0 255.255.255.0 a 1 R1(config-router)#net 192.168.0.0 255.255.255.0 a 1 R2(config)#router ospf 1 R2(config-router)#net 2.2.2.0 255.255.255.0 a 1 R2(config-router)#net 192.168.0.0 255.255.255.0 a 1 R3(config)#router ospf 1 R3(config-router)#net 3.3.3.0 255.255.255.0 a 1 R3(config-router)#net 192.168.0.0 255.255.255.0 a 1 完成配置后查看R1、R2、R3的路由表你会发现根本没有OSPF学习到的路由也没有邻居 sh ip route ospf sh ip ospf neighbor debug ip ospf events 因为我们忘记在子接口下明确定义ospf运行的模式,同时由于点到多点模式是模仿点到点模式的链路上的运行方式,路由器仍然使用组播,所以要用broadcast参数设置是在该接口上发送广播信息,使底层支持组播。 R1(config)#int s0/1.12 R1(config-subif)#ip ospf networkpoint-to-multipoint R1(config-subif)#frame-relay map ip192.168.0.2 102 broadcast R1(config)#int s0/1.13 R1(config-subif)#ip ospf net point-to-multipoint R1(config-subif)#frame-relay map ip 192.168.0.3 103 broadcast R2(config)#int s0/2 R2(config-if)#ip ospf network point-to-multipoint R2(config-if)#frame-relay map ip 192.168.0.12 201 broadcast R3(config)#int s0/3 R3(config-if)#ip ospf net point-to-multipoint R3(config-if)#frame-relay map ip 192.168.0.13 301 broadcast 此时在查看各个路由器的路由表,ospf邻居表和数据库,应该就正常,当然全网互通也没有问题。 sh ip route ospf sh ip ospf neighbor debug ip ospf events 与此同时我们还会发现此网络不会选举DR和BDR,邻居是自动发现的。路由器之间通过组播去交换信息。 总结模式的特点: 实验五:点到多点非广播单区域OSPF 拓扑结构和点到多点模式相同。点到多点非广播模式是Cisco定义的一种模式,该模式是对RFC点到多点模式的进行了扩展。RFC点到多点模式运行在底层支持广播和组播能力的点到多点虚电路,因此能动态发现邻居。但是有些点到多点底层不支持组播和广播,因此只能采用点到多点非广播模式。点到多点非广播模式和点到多点模式的指定没有太大的区别,只需要在指定运行模式的命令上附加Non-broadcast即可。但是路由器的工作模式却有本质的改变——用单播替代了组播完成信息的交换。由于不支持组播所以要手工指定邻居。 FR配置: FR#conf t FR(config)#frame-relayswitching//开启帧中继交换功能 FR(config)#int s0/1 FR(config-if)#encapsulationframe-relay ietf//配置接口帧中继封装模式 FR(config-if)#frame-relaylmi-type ansi//配置LMI类型 FR(config-if)#frameintf-type dce //帧中继接口缺省接口类型为 DTE ,DCE类型只有在设备用作帧中继交换或者模拟帧中继局方设备时才使用的 FR(config-if)#clock rate64000 //设置时钟频率,串口同步时间 FR(config-if)#frame-relayroute 102 interface s0/2 201//配置本地端口DLIC值及虚链路对应出口和对端DLIC FR(config-if)#frame-relayroute 103 interface s0/3 301 FR(config-if)#no sh FR(config-if)#exit FR(config)#int s0/2 FR(config-if)#encapsulationframe-relay ietf FR(config-if)#frame-relaylmi-type ansi FR(config-if)#frameintf-type dce FR(config-if)#clock rate64000 FR(config-if)#frame-relayroute 201 int s0/1 102 FR(config-if)#no sh FR(config-if)#exit FR(config)#int s0/3 FR(config-if)#encapsulationframe-relay ietf FR(config-if)#frame-relaylmi-type ansi FR(config-if)#frameintf-type dce FR(config-if)#clock rate64000 FR(config-if)#frame-relayroute 301 int s0/1 103 FR(config-if)#no sh FR(config-if)#exit R1配置 R1#conf t R1(config)#ints0/1 R1(config-if)#encapsulationframe-relay ietf R1(config-if)#frame-relaylmi-ty ansi R1(config-if)#nosh R1(config-if)#exit R1(config)#ints0/1.12 multipoint R1(config-subif)#ipadd 192.168.0.12 255.255.255.0 R1(config-if)# ip ospf network point-to-multipointnon-broadcast//指明网络为点到多点非广播 R1(config-subif)#frame-relaymap ip 192.168.0.2 102 R1(config-subif)#nosh R1(config-subif)#exit R1(config)#ints0/1.13 multipoint R1(config-subif)#ipadd 192.168.0.13 255.255.255.0 R1(config-if)# ip ospf network point-to-multipointnon-broadcast//指明网络为点到多点非广播 R1(config-subif)#frame-relaymap ip 192.168.0.3 103 R1(config-subif)#nosh R1(config-subif)#exit R1(config)#int lo0 R1(config-if)#ipadd 1.1.1.1 255.255.255.0 R1(config-if)#exit R1(config)#router ospf 1 R1(config-router)#net 1.1.1.0 255.255.255.0 a 1 R1(config-router)#net 192.168.0.0 255.255.255.0 a 1 R1(config-router)#nei192.168.0.2//手动指定邻居 R1(config-router)#nei192.168.0.3//手动指定邻居 R2配置: R2#conf t R2(config)#ints0/2 R2(config-if)#encapsulationframe-relay ietf R2(config-if)#frame-relaylmi-type ansi R2(config-if)#ipadd 192.168.0.2 255.255.255.0 R2(config-if)# ip ospf network point-to-multipointnon-broadcast//指明网络为点到多点非广播 R2(config-if)#frame-relaymap ip 192.168.0.12 201 R2(config-if)#nosh R2(config-if)#exit R2(config)#int lo0 R2(config-if)#ipadd 2.2.2.2 255.255.255.0 R2(config-if)#exit R2(config)#router ospf 1 R2(config-router)#net 2.2.2.0 255.255.255.0 a 1 R2(config-router)#net 192.168.0.0 255.255.255.0 a 1 R2(config-router)#nei 192.168.0.12//手动指定邻居 R3配置: R3#conf t R3(config)#ints0/3 R3(config-if)#encapsulationframe-relay ietf R3(config-if)#frame-relaylmi-type ansi R3(config-if)#ipadd 192.168.0.3 255.255.255.0 R3(config-if)#frame-relaymap ip 192.168.0.13 103 R3(config-if)# ip ospf network point-to-multipointnon-broadcast//指明网络为点到多点非广播 R3(config-if)#frame-relay map ip 192.168.0.13 301 R3(config-if)#nosh R3(config-if)#exit R3(config)#int lo0 R3(config-if)#ipadd 3.3.3.3 255.255.255.0 R3(config-if)#exit R3(config)#router ospf 1 R3(config-router)#net 3.3.3.0 255.255.255.0 a 1 R3(config-router)#net 192.168.0.0 255.255.255.0 a 1 R3(config-router)#nei 192.168.0.13//手动指定邻居 完成配置后,可以发现全网互通。没有选举DR和BDR,不会自动发现邻居。各个路由器之间通过单播形式交换路由信息。 sh ip route ospf sh ip ospf neighbor debug ip ospf events 总结该模式的特点:
部分互连或者星型逻辑拓扑结构。 邻居属于同一个子网。 手工配置邻居。 不选举DR/BDR。
实验六:OSPF多区域 R1配置: R1#conf t Enterconfiguration commands, one per line. End with CNTL/Z. R1(config)#intf0/0 R1(config-if)#ipadd 192.168.12.1 255.255.255.0 R1(config-if)#nosh R1(config-if)#exit R1(config)#int lo0 R1(config-if)#ipadd 1.1.1.1 255.255.255.0 R1(config-if)#exit R1(config)#routerospf 1 R1(config-router)#net1.1.1.0 255.255.255.0 area 0 R1(config-router)#net192.168.12.0 255.255.255.0 area 0 R1(config-router)#router-id1.1.1.1 R1(config-router)#exit R2配置: R2#conf t Enterconfiguration commands, one per line. End with CNTL/Z. R2(config)#intf0/0 R2(config-if)#ipadd 192.168.12.2 255.255.255.0 R2(config-if)#nosh R2(config-if)#exit R2(config)#ints1/0 R2(config-if)#ipadd 192.168.23.2 255.255.255.0 R2(config-if)#clockrate 64000 R2(config-if)#nosh R2(config-if)#exit R2(config)#int lo0 R2(config-if)#ipadd 2.2.2.2 255.255.255.0 R2(config-if)#exit R2(config)#routerospf 1 R2(config-router)#net192.168.12.0 255.255.255.0 area 0 R2(config-router)#net2.2.2.0 255.255.255.0 area 0 R2(config-router)#net192.168.23.0 255.255.255.0 area 2 R2(config-router)#router-id2.2.2.2 R2(config-router)#exit R3配置: R3#conf t R3(config)#ints0/1 R3(config-if)#ipadd 192.168.23.3 255.255.255.0 R3(config-if)#clockrate 64000 R3(config-if)#nosh R3(config-if)#exit R3(config)#int lo0 R3(config-if)#ipadd R3(config-if)#exit R3(config)#routerospf 1 R3(config-router)#net192.168.23.0 255.255.255.0 area 2 R3(config-router)#net3.3.3.0 255.255.255.0 area 2 R3(config-router)#router-id3.3.3.3 R3(config-router)#exit 查看R1和R3的OSPF路由,发现R1和R3能学习到不同ospf域的路由条目,而R2就是他们的ABR R1#sh ip rou ospf 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/2] via 192.168.12.2,00:03:33, FastEthernet0/0//域内路由 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/66] via 192.168.12.2,00:00:22, FastEthernet0/0//域间路由 O IA192.168.23.0/24 [110/65] via 192.168.12.2, 00:03:33, FastEthernet0/0//域间路由 查看R1和R3的ospf链路状态数据库 R1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0)//类型1LSA Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 585 0x80000003 0x0036F0 2 2.2.2.2 2.2.2.2 352 0x80000004 0x0027F0 2 Net Link States (Area 0) //类型2LSA Link ID ADV Router Age Seq# Checksum 192.168.12.1 1.1.1.1 585 0x80000001 0x00C7EB Summary Net Link States (Area0) //类型3LSA Link ID ADV Router Age Seq# Checksum 3.3.3.3 2.2.2.2 156 0x80000001 0x004F98 192.168.23.0 2.2.2.2 348 0x80000001 0x002054 类型1LSA:由域内每一台路由器产生,包含了直连链路的列表以及cost,每条链路由链路的IP前缀(网络号+子网掩码)来标识,发送者标识RouterID,仅在该区域内泛洪不会穿越ABR。 类型2LSA:由广播型多路访问网络或NBMA网络中的DR产生,包含了连接到该链路的一组路由器列表,包含了链路的子网掩码,仅在该区域内泛洪,不会穿越ABR。 类型3LSA:用于将本地区域信息扩散到其他区域描述链路的网络号和子网掩码。 多区域的优点: 减少路由表大少 限制LSA的扩散 加快OSPF的收敛 增加OSPF的稳定性
实验七:OSPF多区域之路由汇总、路由重分布、注入静态和默认路由 R1配置: R1#conf t R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.0 R1(config-if)#exit R1(config)#int l01 R1(config-if)#ip add 172.168.16.1 255.255.255.0 R1(config-if)#exit R1(config)#int l02 R1(config-if)#ip add 172.168.17.1 255.255.255.0 R1(config-if)#exit R1(config)#int l03 R1(config-if)#ip add 172.168.18.1 255.255.255.0 R1(config-if)#exit R1(config)#int f0/0 R1(config-if)#ip add 192.168.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#router ospf 1 R1(config-router)#net 192.168.12.0 255.255.255.0 area 0 R1(config-router)#net 172.168.16.0 255.255.255.0 area 0 R1(config-router)#net 172.168.17.0 255.255.255.0 area 0 R1(config-router)#net 172.168.18.0 255.255.255.0 area 0 R1(config-router)#router-id 1.1.1.1 R1(config-router)#exit R2配置: R2#conf t R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.0 R2(config-if)#exit R2(config)#int f0/0 R2(config-if)#ip add 192.168.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#exit R2(config)#int s1/0 R2(config-if)#clock rat R2(config-if)#clock rate 64000 R2(config-if)#ip add 192.168.23.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#exit R2(config)#router ospf 1 R2(config-router)#router-id 2.2.2.2 R2(config-router)#net 2.2.2.0 255.255.255.0 area 0 R2(config-router)#net 192.168.12.0 255.255.255.0 area 0 R2(config-router)#net 192.168.23.0 255.255.255.0 area 2 R2(config-router)#exit R3配置: R3#conf t R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.0 R3(config-if)#exit R3(config)#int s1/0 R3(config-if)#clock rate 64000 R3(config-if)#ip add 192.168.23.2 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#int e0/0 R3(config-if)#ip add 192.168.1.1 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#int e0/1 R3(config-if)#ip add 192.168.0.1 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#int lo1 R3(config-if)#ip add 11.11.11.11 255.255.255.0 R3(config-if)#exit R3(config)#int lo2 R3(config-if)#ip add 12.12.12.12 255.255.255.0 R3(config-if)#exit R3(config)#int lo3 R3(config-if)#ip add R3(config-if)#ip add 13.13.13.13 255.255.255.0 R3(config-if)#exit R3(config)#router ospf 1 R3(config-router)#router-id 3.3.3.3 R3(config-router)#net 192.168.23.0 255.255.255.0 area 2 R3(config-router)#net 3.3.3.0 255.255.255.0 area 2 R3(config-router)#exit R3(config)#router rip R3(config-router)#ver 2 R3(config-router)#no au R3(config-router)#no auto-summary R3(config-router)#net 11.11.11.0 R3(config-router)#net 12.12.12.0 R3(config-router)#net 13.13.13.0 R3(config-router)#exit R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.2 R3(config)#ip route 100.100.100.0 255.255.255.0192.168.0.2 Internet配置: Internet#conf t Internet(config)#int e0/0 Internet(config-if)#ip add 192.168.1.2 255.255.255.0 Internet(config-if)#no sh Internet(config-if)#exit Internet(config)#int lo0 Internet(config-if)#ip add 202.10.0.1 255.255.255.0 Internet(config-if)#exit Internet(config)#ip route 192.168.0.0 255.255.0.0192.168.1.1 Branch配置: Branch#conf t Branch(config)#int lo0 Branch(config-if)#ip add 192.168.0.2 255.255.255.0 Branch(config-if)#no sh Branch(config-if)#exit Branch(config)#int lo0 Branch(config-if)#ip add 100.100.100.100 255.255.255.0 Branch(config-if)#exit Branch(config)#int e0/0 Branch(config-if)#ip add 192.168.0.2 255.255.255.0 Branch(config-if)#no sh Branch(config-if)#exit Branch(config)#ip route 192.168.0.0 255.255.0.0192.168.0.1 配置完成后R1与R3的连通性是没有问题的,当然R3到internet和Branch也是正常的。查看R1和R3的OSPF路由发现,彼此的路由已经学习到,而R3学习到如下: R3#sh ip rou ospf O IA 192.168.12.0/24 [110/65] via 192.168.23.1, 00:20:57,Serial1/0 2.0.0.0/32 issubnetted, 1 subnets O IA 2.2.2.2[110/65] via 192.168.23.1, 00:20:57, Serial1/0 172.168.0.0/32is subnetted, 3 subnets OIA 172.168.17.1 [110/66] via192.168.23.1, 00:20:57, Serial1/0 OIA 172.168.16.1 [110/66] via 192.168.23.1,00:20:57, Serial1/0 OIA 172.168.18.1 [110/66] via192.168.23.1, 00:20:57, Serial1/0 我们对R3学习到的三条区域间路由进行汇总,减少路由表。此时配置R2即ABR路由器然后观察R3路由表变化: R2(config)#router ospf 1 R2(config-router)#area 0 range 172.168.16.0 255.255.252.0 R3#sh ip rou ospf O IA 192.168.12.0/24 [110/65] via 192.168.23.1, 00:26:09,Serial1/0 2.0.0.0/32 issubnetted, 1 subnets O IA 2.2.2.2[110/65] via 192.168.23.1, 00:26:09, Serial1/0 172.168.0.0/22 is subnetted, 1 subnets OIA 172.168.16.0 [110/66] via192.168.23.1, 00:00:37, Serial1/0 根据如上配置,R1是不能连通R3上的RIP路由的,因此我们需要将RIP路由注入到OSPF中,然后再通告给R1.因此需要在R3即ASBR路由器上进行路由重分布,然后观察R1的路由表变化和是否可以连通R3的RIP路由 R3(config)#routerospf 1 R3(config-router)#redistributerip subnets //把RIP路由重分布到OSPF1中 R3(config-router)#exit R3(config)#routerrip R3(config-router)#redistributeospf 1//将OSPF 1路由重分布到RIP中 //外部路由汇总:R3(config-router)#summary-address网络号正掩码(在ASBR上配置) R1#sh ip rou ospf 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/2] via 192.168.12.2,00:39:52, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/66] via 192.168.12.2,00:35:40, FastEthernet0/0 O IA192.168.23.0/24 [110/65] via 192.168.12.2, 00:39:52, FastEthernet0/0 11.0.0.0/24 is subnetted, 1 subnets OE2 11.11.11.0 [110/20] via 192.168.12.2,00:00:22, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets OE2 12.12.12.0 [110/20] via192.168.12.2, 00:00:22, FastEthernet0/0 13.0.0.0/24 is subnetted, 1 subnets OE2 13.13.13.0 [110/20] via192.168.12.2, 00:00:22, FastEthernet0/0 根据如上配置后,R1是不能到达internet路由器和Branch路由器的。因此我们还需要将R3这个边界路由器的默认路由和静态路由分别注入到OSPF中,然后查看R1的路由表变化: R3(config)#router ospf 1 R3(config-router)#redistribute static subnets//将R3的静态路由注入OSPF,在R3上用redistribute static subnets命令,会自动的向R1和R2里注入一条静态路由,并且路由器会很智能的改变下一跳的地址 R3(config-router)#default-information originate// default-information originate发布默认路由,在R3上用default-informationoriginate命令,会自动的向R1和R2里注入一条默认路由,并且路由器会很智能的改变下一跳的地址 R1#sh ip rou ospf 2.0.0.0/32 issubnetted, 1 subnets O 2.2.2.2 [110/2]via 192.168.12.2, 00:58:56, FastEthernet0/0 100.0.0.0/24 is subnetted, 1 subnets OE2 100.100.100.0 [110/20] via192.168.12.2, 00:06:06, FastEthernet0/0 3.0.0.0/32 issubnetted, 1 subnets O IA 3.3.3.3[110/66] via 192.168.12.2, 00:54:44, FastEthernet0/0 O IA 192.168.23.0/24 [110/65] via 192.168.12.2, 00:58:56,FastEthernet0/0 11.0.0.0/24 issubnetted, 1 subnets O E2 11.11.11.0[110/20] via 192.168.12.2, 00:19:25, FastEthernet0/0 12.0.0.0/24 issubnetted, 1 subnets O E2 12.12.12.0 [110/20] via 192.168.12.2,00:19:25, FastEthernet0/0 13.0.0.0/24 issubnetted, 1 subnets O E2 13.13.13.0[110/20] via 192.168.12.2, 00:19:25, FastEthernet0/0 O*E20.0.0.0/0 [110/1] via 192.168.12.2, 00:04:51, FastEthernet0/0 最后我们查看一下R1的OSPF数据库链路表: R1#sh ip ospf database OSPFRouter with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADVRouter Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 1976 0x80000004 0x00636E 4 2.2.2.2 2.2.2.2 1686 0x80000005 0x0025F1 2 NetLink States (Area 0) Link ID ADVRouter Age Seq# Checksum 192.168.12.1 1.1.1.1 1976 0x80000002 0x00C5EC SummaryNet Link States (Area 0) Link ID ADVRouter Age Seq# Checksum 3.3.3.3 2.2.2.2 1443 0x80000002 0x004D99 192.168.23.0 2.2.2.2 1686 0x80000002 0x001E55 Summary ASB Link States (Area 0) //类型4LSA Link ID ADVRouter Age Seq# Checksum 3.3.3.3 2.2.2.2 1277 0x80000001 0x0037B0 Type-5 AS External Link States//类型5LSA Link ID ADVRouter Age Seq# Checksum Tag 0.0.0.0 3.3.3.3 402 0x80000001 0x00E0C5 1 11.11.11.0 3.3.3.3 1286 0x80000001 0x00FF73 0 12.12.12.0 3.3.3.3 1286 0x80000001 0x00DB94 0 13.13.13.0 3.3.3.3 1286 0x80000001 0x00B7B5 0 100.100.100.0 3.3.3.3 477 0x80000001 0x006FF7 0 类型4LSA:用于向其他区域描述某个ASBR,由每个区域的ABR产生,它会泛洪到整个AS中,仅包含ASBR的ROUTER ID,被用来查找ASBR 类型5LSA:用于描述到自治系统外部网络的路由,由ASBR产生,并泛洪到整个AS中,在它泛洪时通告者(ASBR)的ROUTER ID保持不变 实验八:OSPF特殊区域(stub、totally stub、NSSA、Totally NSSA) R1配置: R1#conf t R1(config)#intlo0 R1(config-if)#ipadd 1.1.1.1 255.255.255.0 R1(config-if)#exit R1(config)#intlo1 R1(config-if)#ipadd 202.175.10.1 255.255.255.0//模拟直连路由重发布 R1(config-if)#exit R1(config)#intf0/0 R1(config-if)#ipadd 192.168.12.1 255.255.255.0 R1(config-if)#nosh R1(config-if)#exit R1(config)#routerospf 1 R1(config-router)#router-id1.1.1.1 R1(config-router)#net1.1.1.1 255.255.255.0 area 2 R1(config-router)#net192.168.12.0 255.255.255.0 area 2 R1(config-router)#exit R2配置: R2#conf t R2(config)#intlo0 R2(config-if)#ipadd 2.2.2.2 255.255.255.0 R2(config-if)#exit R2(config)#intf0/0 R2(config-if)#ipadd 192.168.12.2 255.255.255.0 R2(config-if)#nosh R2(config-if)#exit R2(config)#ints1/0 R2(config-if)#clockrate 64000 R2(config-if)#ipadd 192.168.23.1 255.255.255.0 R2(config-if)#nosh R2(config-if)#exit R2(config)#routerospf 1 R2(config-router)#router-id2.2.2.2 R2(config-router)#net2.2.2.0 255.255.255.0 area 0 R2(config-router)#net192.168.23.0 255.255.255.0 area 0 R2(config-router)#net192.168.12.0 255.255.255.0 area 2 R2(config-router)#exit R3配置: R3#conf t R3(config)#intlo0 R3(config-if)#ipadd 3.3.3.3 255.255.255.0 R3(config-if)#exit R3(config)#ints1/0 R3(config-if)#clockrate 64000 R3(config-if)#ipadd 192.168.23.2 255.255.255.0 R3(config-if)#nosh R3(config-if)#exit R3(config)#intlo1 R3(config-if)#ipadd 172.168.16.1 255.255.255.0 R3(config-if)#exit R3(config)#intlo2 R3(config-if)#ipadd 172.168.17.1 255.255.255.0 R3(config-if)#exit R3(config)#intlo3 R3(config-if)#ipadd 172.168.18.1 255.255.255.0 R3(config-if)#exit R3(config)#routerrip R3(config-router)#ver2 R3(config-router)#net172.168.16.0 R3(config-router)#net172.168.17.0 R3(config-router)#net172.168.18.0 R3(config-router)#noauto-summary R3(config-router)#exit R3(config)#routerospf 1 R3(config-router)#router-id3.3.3.3 R3(config-router)#net3.3.3.0 255.255.255.0 area 0 R3(config-router)#net192.168.23.0 255.255.255.0 area 0 R3(config-router)#redistributerip subnets//重分布RIP路由到OSPF中 R3(config-router)#exit 配置完成后,查看网络连通性。查看R1的OSPF路由表和OSPF链路数据库: R1#sh iprou ospf 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/2] via 192.168.12.2, 00:15:57,FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/66] via 192.168.12.2,00:10:10, FastEthernet0/0 172.168.0.0/24 is subnetted, 3 subnets O E2 172.168.16.0 [110/20] via 192.168.12.2,00:00:59, FastEthernet0/0 O E2 172.168.17.0 [110/20] via 192.168.12.2,00:00:59, FastEthernet0/0 O E2 172.168.18.0 [110/20] via 192.168.12.2,00:00:59, FastEthernet0/0 O IA192.168.23.0/24 [110/65] via 192.168.12.2, 00:11:58, FastEthernet0/0 R1#sh ipospf database OSPF Router with ID (1.1.1.1)(Process ID 1) Router Link States (Area 2)//类型1LSA LinkID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 1033 0x80000003 0x0036F0 2 2.2.2.2 2.2.2.2 1029 0x80000002 0x003EF4 1 Net Link States (Area 2)//类型2LSA LinkID ADV Router Age Seq# Checksum 192.168.12.1 1.1.1.1 1033 0x80000001 0x00C7EB Summary Net Link States (Area2) //类型3LSA LinkID ADV Router Age Seq# Checksum 2.2.2.2 2.2.2.2 1038 0x80000001 0x00FA31 3.3.3.3 2.2.2.2 672 0x80000001 0x004F98 192.168.23.0 2.2.2.2 780 0x80000001 0x002054 Summary ASB Link States (Area2)//类型4LSA LinkID ADV Router Age Seq# Checksum 3.3.3.3 2.2.2.2 126 0x80000001 0x0037B0 Type-5 AS External Link States//类型5LSA LinkID ADV Router Age Seq# Checksum Tag 172.168.16.0 3.3.3.3 134 0x80000001 0x0030FE 0 172.168.17.0 3.3.3.3 133 0x80000001 0x002509 0 172.168.18.0 3.3.3.3 133 0x80000001 0x001A13 0 此时我们发现其实R1所属的Area 2并不需要知整个网络的路由,因为它已经是整个网络的末端。而且它到达其他网络时都需要经过R2也就是我们的ABR路由器。这时我们可以将Area 2配置成OSPF Stub区域。OSPF Stub是一个末梢区域,当一个OSPF区域处于整个自治系统边界时,而又不含其他路由协议,这时就可以配置OSPF Stub区域。当配置OSPF Stub区域后,Stub区域中的路由器会增加一条至ABR的默认路由条目,当在ABR上配置了完全末梢区域后,末梢区域的其他路由器的路由条目除了直连的路由条目外,只有一条到达ABR的路由条目默认路由,不会学习其他区域的路由条目,到其他区域的数据包通过ABR转发。同时减少LSA通告,这样减少了末梢区域其他路由器的路由条目,提高路由器的性能。下面我们配置Area 2为Stub区域,并检查R1的路由表变化和OSPF链路数据库的变化: 在R1和R2配置Stub,只要是属于area 2的都要配置为Stub R1(config)#router ospf 1 R1(config-router)#area 2stub R2(config)#router ospf 1 R2(config-router)#area 2stub 再次查看R1的路由表和链路状态数据库,此时我们发现类型4LSA,类型5LSA消失了,并且R2(ABR)路由器向区域发放了一条默认路由即将不知道的路由交给ABR路由器,用于到达AS外部网络。注意:末梢区域内的路由器都要配置stub,虚链路不能在一个stub区域配置,stub区域不能是ASBR路由器。不能穿越骨干区域,只能接收LSA1,LSA2,LSA3,并且他会产生一条缺省的LSA3的路由 R1#ship rou ospf 2.0.0.0/32 is subnetted, 1 subnets OIA 2.2.2.2 [110/2] via 192.168.12.2,01:29:36, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets OIA 3.3.3.3 [110/66] via 192.168.12.2,01:29:36, FastEthernet0/0 OIA 192.168.23.0/24 [110/65] via 192.168.12.2, 01:29:36, FastEthernet0/0 O*IA0.0.0.0/0 [110/2] via 192.168.12.2, 01:29:36, FastEthernet0/0//自动添加的默认路由 R1#ship ospf database OSPF Router with ID (1.1.1.1)(Process ID 1) Router Link States (Area 2)//类型1LSA LinkID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 1402 0x8000000A 0x005CC4 2 2.2.2.2 2.2.2.2 1530 0x80000007 0x005CD2 1 Net Link States (Area 2)//类型2LSA LinkID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 1530 0x80000003 0x00A905 Summary Net Link States (Area2)//类型3LSA LinkID ADV Router Age Seq# Checksum 0.0.0.0 2.2.2.2 1530 0x80000003 0x0071C2 2.2.2.2 2.2.2.2 1530 0x80000005 0x001119 3.3.3.3 2.2.2.2 1530 0x80000004 0x00677F 192.168.23.0 2.2.2.2 1280 0x80000005 0x00363C 当完成上面配置后,我们还可以将R1的路由表更精简,将区域间的O IA路由去掉并且减少类型3LSA,达到直接使用默认路由转发数据就可以了。要实现这种效果就要用到TotallyStub区域。注意Totally stub在ABR路由器上配置即可,然后查看R1的路由表变化,此时类型3LSA只剩下一条默认路由通告,且OSPF路由表也只剩下一默认路由指向ABR路由器。 R2(config)#router ospf 1 R2(config-router)#area 2 stub no-summary //配置totally Stub区域 R1#sh ip rou ospf O*IA 0.0.0.0/0 [110/2] via 192.168.12.2, 00:02:28,FastEthernet0/0//自动默认路由指向ABR R1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 2) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 1167 0x8000000B 0x005AC5 2 2.2.2.2 2.2.2.2 1307 0x80000008 0x005AD3 1 Net Link States (Area 2) Link ID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 1307 0x80000004 0x00A706 Summary Net Link States (Area2) //类型3LSA Link ID ADV Router Age Seq# Checksum 0.0.0.0 2.2.2.2 431 0x80000005 0x006DC4 以上我们完成了Stub和Totally Stub的配置,但是如果我们还需要R1通过重发布来发布它的直连路由,这时R1就是一个ASBR路由器,并会产生LSA7。但是一旦这样,R3就不能是一个Stub Area。那么有什么办法呢?此时我们需要OSPF的NSSA,它允许外部路由通告到OSPF,而同时保留其余部分的Stub Area特征,因此我们可以将Area 2设置成NSSA区域。 R1(config)#routerospf 1 R1(config-router)#noarea 2 stub//将area2之前的stub配置去掉 R1(config-router)#area 2 nssa //将area 2配置成nssa区域 R1(config-router)#redistributeconnected subnets//重分布R1的Lo2直连网络到ospf中 R2(config)#routerospf 1 R2(config-router)#noarea 2 stub//将area2之前的stub配置去掉 R2(config-router)#area2 nssa//将area 2配置成nssa区域 此时我们查看R1的ospf路由表和ospf链路状态数据库变化,发现路由表多了区域间的OIA路由,并且指向R2(ABR)的默认路由不见了(因为NSSA区域默认情况下,ABR是不会注入默认路由),同时在链路状态数据库中出现了新的类型7LSA用于通告直连路由,并且出现大量的类型3LSA。 R1#sh ip rou ospf 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/2] via 192.168.12.2, 00:00:46,FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/66] via 192.168.12.2,00:00:46, FastEthernet0/0 O IA 192.168.23.0/24[110/65] via 192.168.12.2, 00:00:46, FastEthernet0/0 R1#sh ip ospfdatabase OSPF Router with ID (1.1.1.1)(Process ID 1) Router Link States (Area 2) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 61 0x80000012 0x00D935 2 2.2.2.2 2.2.2.2 181 0x8000000D 0x00DD41 1 Net Link States (Area 2) Link ID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 202 0x80000007 0x002979 Summary Net Link States (Area2)//类型3LSA Link ID ADV Router Age Seq# Checksum 2.2.2.2 2.2.2.2 210 0x80000002 0x009E86 3.3.3.3 2.2.2.2 210 0x80000002 0x00F2ED 192.168.23.0 2.2.2.2 210 0x80000002 0x00C3A9 Type-7 AS External Link States (Area 2)//类型7LSA Link ID ADV Router Age Seq# Checksum Tag 202.75.10.0 1.1.1.1 41 0x80000001 0x002549 0 根据这个结果我们发现,虽然已经将R1的直连路由通告出去了,但是R1的路由表和类型3LSA却变大了,我们还需要精简。这就需要使用OSPF中的 Totally NSSA区域了,只需要R2(ABR)上配置即可,然后查看R1的ospf路由表和链路状态数据库变化 R2(config)#router ospf 1 R2(config-router)#area 2 nssa no-summary//area 2配置成Totally NSSA区域 R1#sh ip rou ospf O*IA 0.0.0.0/0 [110/2] via 192.168.12.2,00:03:28, FastEthernet0/0//自动添加一条默认路由 R1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 2)//类型1LSA Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 1561 0x80000012 0x00D935 2 2.2.2.2 2.2.2.2 1681 0x8000000D 0x00DD41 1 Net Link States (Area 2)//类型2LSA Link ID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 1702 0x80000007 0x002979 Summary Net Link States (Area2)//类型3LSA减少 Link ID ADV Router Age Seq# Checksum 0.0.0.0 2.2.2.2 105 0x80000002 0x00FA32 Type-7 AS External Link States(Area 2)//类型7LSA Link ID ADV Router Age Seq# Checksum Tag 202.75.10.0 1.1.1.1 1541 0x80000001 0x002549 0 实验九:OSPF的Virtual-link(虚拟链路)
众所周知OSPF的配置规则:普通区域必须与骨干区域直连,才能学习到路由。根据这个规则,Area0与Area2是分割的,所以Area2学习不到Area0的路由。在这种情况下,我们需要使用虚拟链路(Virtual-link)的方法,使非直连的区域逻辑的认为自己与骨干相连,达到相互交换路由信息的效果。当然此方法仅仅是一种过度的方案,实际环境设计时不要使用。 R1配置: R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.0 R1(config-if)#exit R1(config)#int s0/0 R1(config-if)#clock rate 64000 R1(config-if)#ip add 192.168.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#router ospf 1 R1(config-router)#router-id 1.1.1.1 R1(config-router)#net 192.168.12.0 255.255.255.0 area 0 R1(config-router)#net 1.1.1.1 255.255.255.0 area 0 R1(config-router)#exit R2配置: R2#conf t R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.0 R2(config-if)#exit R2(config)#int s0/0 R2(config-if)#clock rate 64000 R2(config-if)#ip add 192.168.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#exit R2(config)#int s0/2 R2(config-if)#exit R2(config)#int s0/1 R2(config-if)#clock rate 64000 R2(config-if)#ip add 192.168.23.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#exit R2(config)#router ospf 1 R2(config-router)#router-id 2.2.2.2 R2(config-router)#net 2.2.2.0 255.255.255.0 area 0 R2(config-router)#net 192.168.12.0 255.255.255.0 area 0 R2(config-router)#net 192.168.23.0 255.255.255.0 area 1 R2(config-router)#exit R3配置: R3#conf t R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.0 R3(config-if)#exit R3(config)#int s0/0 R3(config-if)#clock rate 64000 R3(config-if)#ip add 192.168.23.2 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#int s0/1 R3(config-if)#clock rate 64000 R3(config-if)#ip add 192.168.34.1 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#router ospf 1 R3(config-router)#router-id 3.3.3.3 R3(config-router)#net 3.3.3.0 255.255.255.0 area 1 R3(config-router)#net 192.168.23.0 255.255.255.0 area 1 R3(config-router)#net 192.168.34.0 255.255.255.0 area 2 R3(config-router)#exit R4配置: R4#conf t R4(config)#int lo0 R4(config-if)#ip add 4.4.4.4 255.255.255.0 R4(config-if)#exit R4(config)#int s0/0 R4(config-if)#clock rate 64000 R4(config-if)#ip add 192.168.34.2 255.255.255.0 R4(config-if)#no sh R4(config-if)#exit R4(config)#router ospf 1 R4(config-router)#router-id 4.4.4.4 R4(config-router)#net 4.4.4.0 255.255.255.0 area 2 R4(config-router)#net 192.168.34.0 255.255.255.0 area 2 R4(config-router)#exit 查看R1与R4的OSPF路由表和链路状态数据库,你会发现彼此根本没有学习到对方的路由。 R1#sh ip rou ospf 2.0.0.0/32 issubnetted, 1 subnets O 2.2.2.2[110/65] via 192.168.12.2, 00:07:17, Serial0/0 3.0.0.0/32 issubnetted, 1 subnets O IA 3.3.3.3[110/129] via 192.168.12.2, 00:05:49, Serial0/0 O IA 192.168.23.0/24 [110/128] via 192.168.12.2,00:07:17, Serial0/0 R1#sh ip ospf database OSPFRouter with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADVRouter Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 593 0x80000004 0x00B0DF 3 2.2.2.2 2.2.2.2 451 0x80000003 0x005334 3 SummaryNet Link States (Area 0) Link ID ADVRouter Age Seq# Checksum 3.3.3.3 2.2.2.2 358 0x80000001 0x004F98 192.168.23.0 2.2.2.2 447 0x80000001 0x002054 此时我们使用虚拟链路配置,建立它们的逻辑直连关系,在Area 0和Area 2的ABR路由器上进行如下配置,然后查看R1和R4的变化,此时R1和R4就能彼此交换路由信息了。 R2(config)#router ospf 1 R2(config-router)#area 1 virtual-link 3.3.3.3 //在Area0的ABR上指定对方的ABR的Router-id R3(config)#router ospf 1 R3(config-router)#area 1 virtual-link 2.2.2.2 //在Area2的ABR上指定对方的ABR的Router-id R1#sh ip rou ospf 2.0.0.0/32 issubnetted, 1 subnets O 2.2.2.2[110/65] via 192.168.12.2, 00:00:29, Serial0/0 3.0.0.0/32 issubnetted, 1 subnets O IA 3.3.3.3[110/129] via 192.168.12.2, 00:00:29, Serial0/0 4.0.0.0/32 issubnetted, 1 subnets OIA 4.4.4.4 [110/193] via 192.168.12.2,00:00:29, Serial0/0 O IA 192.168.23.0/24 [110/128] via 192.168.12.2,00:00:29, Serial0/0 O IA192.168.34.0/24 [110/192] via 192.168.12.2, 00:00:29, Serial0/0 R1#sh ip ospf database OSPFRouter with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADVRouter Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 959 0x80000004 0x00B0DF 3 2.2.2.2 2.2.2.2 37 0x80000004 0x001394 4 3.3.3.3 3.3.3.3 2 (DNA) 0x80000002 0x0055F7 1 SummaryNet Link States (Area 0) Link ID ADVRouter Age Seq# Checksum 3.3.3.3 2.2.2.2 724 0x80000001 0x004F98 3.3.3.3 3.3.3.3 7 (DNA) 0x80000001 0x00AE75 4.4.4.4 3.3.3.3 7 (DNA) 0x80000001 0x0003DC 192.168.23.0 2.2.2.2 813 0x80000001 0x002054 192.168.23.0 3.3.3.3 7 (DNA) 0x80000001 0x00026E 192.168.34.0 3.3.3.3 7 (DNA) 0x80000001 0x0088DC 实验十:OSPF修改Cost值,改变选路 R1配置: R1#conf t R1(config)#int fa1/0 R1(config-if)#ip add 13.13.13.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config-if)#int s0/0 R1(config-if)#clock rate 64000 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#router ospf 1 R1(config-router)#net 12.12.12.0 255.255.255.0 area 0 R1(config-router)#net 13.13.13.0 255.255.255.0 area 0 R1(config-router)#exit R2配置: R2#conf t R2(config)#int s0/0 R2(config-if)#clock rate 64000 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#exit R2(config)#int s0/1 R2(config-if)#ip add 23.23.23.1 255.255.255.0 R2(config-if)#clock rate 64000 R2(config-if)#no sh R2(config-if)#exit R2(config)#router ospf 1 R2(config-router)#net 12.12.12.0 255.255.255.0 area 0 R2(config-router)#net 23.23.23.0 255.255.255.0 area 0 R2(config-router)#exit R3配置: R3#conf t R3(config)#int f1/0 R3(config-if)#ip add 13.13.13.2 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#int s0/1 R3(config-if)#clock rate 64000 R3(config-if)#ip add 23.23.23.2 255.255.255.0 R3(config-if)#no sh R3(config-if)#exit R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.0 R3(config-if)#exit R3(config)#router ospf 1 R3(config-router)#net 3.3.3.0 255.255.255.0 area 0 R3(config-router)#net 13.13.13.0 255.255.255.0 area 0 R3(config-router)#net 23.23.23.0 255.255.255.0 area 0 R3(config-router)#exit 查看R1的OSPF路由表,我们发现到达3.3.3.0网络直接走了R3,cost值为2 R1#sh ip rou ospf 3.0.0.0/32 issubnetted, 1 subnets O 3.3.3.3 [110/2] via 13.13.13.2,00:00:35, FastEthernet1/0 23.0.0.0/24 issubnetted, 1 subnets O 23.23.23.0[110/65] via 13.13.13.2, 00:00:35, FastEthernet1/0 我们需要改变路径,让R1到达3.3.3.0网络,经过R2走。此时我们需要修改链路的COST值,再次查看R1的OSPF路由表,发现已经选择了更低COST的R2走(500>129) R1(config)#int fa1/0 R1(config-if)#ip ospf cost 500//修改Cost的值为500 R1#sh ip route ospf 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/129] via 12.12.12.2,00:00:18, Serial0/0 23.0.0.0/24 issubnetted, 1 subnets O 23.23.23.0[110/128] via 12.12.12.2, 00:00:18, Serial0/0 |