Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)

Chapter10 Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)

  EIGRP Features and Operation

  EIGRP是1种无分类(classless),增强的距离向量路由协议,和IGRP类似,EIGRP也使用AS,但是和IGRP不同的是,EIGRP在它的路由更新信息中要包含子网掩码的信息.这样,在我们设计的网络的时候,就允许我们使用VLSM和summarization.EIGRP有时候也算是混合型路由协议,因为它同时具有了距离向量路和链路状态的一些特征:比如它不像OSPF那样发送链路状态包而发送传统的距离向量更新;EIGRP也有链路状态协议的特征比如它在相邻router启动的时候同步路由表,然后只在拓扑结构发生变化的时候发送1些更新.这样就使得EIGRP能够很好的在

  1个大型网络中工作.EIGRP支持的跳数多达255.EIGRP的主要特点如下:
  1.通过PDMs(Protocol-Dependent Module)来支持IP,IPX和AppleTalk
  2.有效的邻router的发现
  3.通过可靠传输协议(Reliable Transport Protocol,RTP)进行通讯
  4.通过扩散更新算法(Diffusing Update Algorithm,DUAL)来选择最佳路径

  Protocol-Dependent Module

  EIGRP的1大特点是它可以支持几种网络层协议:IP,IPX和AppleTalk等.能像EIGRP那样支持数种网络层协议的还有Intermediate System-to-Intermediate System(IS-IS)协议,但是这个协议只支持IP和Connectionless Network Service(CLNS).EIGRP通过PDMs来支持不同的网络层协议.每个EIGRP的PDM保持1个单独的路由信息表来装载某种协议(比如IP)的路由信息.也就是有IP/EIGRP表,IPX/EIGRP的表和AppleTalk/EIGRP表

  Neighbor Discovery

  在运行了EIGRP的router彼此进行交换信息之前,它们首先必须成为邻居(neighbor).建立邻居关系必须满足以下3个条件:
  1.Hello信息或接受收ACK
  2.AS号匹配
  3.K值

  链路状态协议趋向于使用Hello信息来建立邻居关系,它不会像距离向量那样周期性的发送路由更新.为了保持邻居关系,运行了EIGRP的router必须持续从邻居那里收到Hellos

  如果不在1个AS内,router之间是不会共享路由信息的,也不会建立邻居关系.这样做的优点是在大型网络中可以减少特定某个AS内路由信息的传播

  当EIGRP发现新邻居的时候,就开始通告整个路由表给别的router,当所有的router都知道新成员的加入,学习到新的路径以后,从那开始,路由表中有变动的部分才会传播给别的router.当router接收到邻居的更新以后,把它们保存在本地数据库表里

  看下几个术语:
  1.可行距离(feasible distance):到达一个目的地的最短路由的度
  2.后继(successor):后继是一个直接连接的邻居router,通过它具有到达目的地的最短路由.通过后继router将包转发到目的地
  3.通告距离(reported distance):相邻router所通告的相邻router自己到达某个目的地的最短路由的度
  4.可行后继(feasible successor):可行后继是一个邻居router,通过它可以到达目的地,不使用这个router是因为通过它到达目的地的路由的度比其他router高,但它的通告距离小于可行距离,因而被保存在拓扑表中,用做备择路由

  Reliable Transport Protocol(RTP)

  EIGRP使用一种叫做RTP的私有协议,来管理使用了EIGRP的router之间的通信,如RTP的名字,可靠(reliable)即为这个协议的关键.RTP负责EIGRP数据包到所有邻居的有保证和按顺序的传输.它支持多目组播或单点传送数据包的混合传输/出于对效率的考虑.只有某些E IGRP数据包被保证可靠传输.RTP确保在相邻router间正在进行的通信能够被维持.因此,它为邻居维护了一张重传表.该表指示还没有被邻居确认的数据包.未确认的可靠数据包最多可以被重传1 6次或直到保持时间超时,以它们当中时间更长的那个为限.EIGRP所使用的多目组播地址是224.0.0.10  Diffusing Update Algorithm(DUAL)

  EIGRP使用DUAL来选择和保持到远端的最佳路径.它能使router判决某邻居通告的一个路径是否处于循环状态,并允许router找到替代路径而无须等待来自其他router的更新.这样做有助于加快网络的汇聚.这个算法顾及以下几点:
  1.备份的路由线路
  2.支持VLSM
  3.动态路由恢复
  4.没有发现线路的话发送查询寻找新路线

  Using EIGRP to Support Large Networks

  EIGRP在大型网络中能够工作的很好,包含了很多优点比如:
  1.在1个单独的router上可以支持多个AS
  2.支持VLSM和summarization
  3.路由发现和保持

  Multiple AS

  只有AS号相同的router才能共享路由信息.把大型网络分成不同的AS,可以有效的加快汇聚.EIGRP的AD为90,而外部EIGRP(external EIGRP)的AD为170

  VLSM Support and Summarization

  之前说过EIGRP支持VLSM,也支持不连续子网.什么是不连续子网?,如下图:


  如图可以看到,2个子网172.16.10.0/24和172.16.20.0/24由10.3.1.0/24来连接,但是routerA和B认为它们只有网络172.16.0.0

  EIGRP支持在任何运行EIGRP的router上summary的手动创建,这样可以减少路由表的体积.EIGRP自动把网络summarize到等级边界,如下图:

?
  Route Discovery and Maintenance
  类似一些链路状态的协议,EIGRP通过Hello信息来发现邻居;而它又和距离向量类似,使用传闻路由的机制,即不主动去发现,而是听从别人的信息.EIGRP使用一系列的表来存储信息:
  1.邻居表,记录了邻居的一些信息
  2.拓扑表,记录了网络中的拓扑状态
  3.路由表,根据这个来做路由决定

  EIGRP Metrics

  EIGRP使用混合度,包含到4个方面:
  1.带宽
  2.延迟(delay)
  3.负载(load)
  4.可靠性(reliability)
  5.最大传输单元(maximum transmission unix,MTU)

  默认情况下EIGRP使用带宽和延迟来决定最佳路径

  Configuration EIGRP

  配置EIGRP,首先在全局配置模式下使用router eigrp [AS号]命令.接下来再使用network命令定义直接相连的网络.仍然可以像配置IGRP那样使用passive-interface命令来禁止某个接口接收或发送Hello信息.并且记住EIGRP的AD是90

  来看1个配置实例,如图:


  Router Network Address Interface Address
  RouterA 192.168.10.0 fa0/0 192.168.10.1
       192.168.20.0 s0/0 192.168.20.1
  RouterB 192.168.20.0 s0/0 192.168.20.2
       192.168.40.0 s0/1 192.168.40.1
       192.168.30.0 fa0/0 192.168.30.1
  RouterC 192.168.40.0 s0/0 192.168.40.2
       192.168.50.0 fa0/0 192.168.50.1
  配置RouterA:
  RouterA(config)#router eigrp 10
  RouterA(config-router)#network 192.168.10.0
  RouterA(config-router)#network 192.168.20.0
  RouterA(config-router)#^Z
  RouterA#
  记住配置EIGRP和配置IGRP十分类似,唯一不同的是EIGRP是无分类路由(classless routing)

  配置RouterB:
  RouterB(config)#router eigrp 10
  RouterB(config-router)#network 192.168.20.0
  RouterB(config-router)#network 192.168.30.0
  RouterB(config-router)#network 192.168.40.0
  RouterB(config-router)#^Z
  RouterB#

  配置RouterC:
  RouterC(config)#router eigrp 10
  RouterC(config-router)#network 192.168.40.0
  RouterC(config-router)#network 192.168.50.0
  RouterC(config-router)#^Z
  RouterC#

  这样配置看上去好象没什么问题,EIGRP的AD比之前配置的RIPv1和IGRP的低,但是有个问题就是:增加了CPU的负担,而且占用了额外的带宽
  还有1点要注意的是自动summarization,router默认会向分级边界进行summarize.如下图:


  A的配置如下:
  A(config)#router eigrp 100
  A(config-router)#netw 172.16.0.0
  A(config-router)#netw 10.0.0.0
  A(config-router)#no auto-summary

  B的配置如下:
  B(config)#router eigrp 100
  B(config-router)#netw 172.16.0.0
  B(config-router)#netw 10.0.0.0
  B(config-router)#no auto-summary
  使用no auto-summary命令后,运行了EIGRP的router就不会相互进行通告

  Verifying EIGRP

  在刚才配置好的情况下使用show ip route命令查看路由信息,如下:
  RouterA#sh ip route
  (略)
  D 192.168.30.0/24 [90/2172416] via 192.168.20.2, 00:04:36, Serial0/0
  (略)
  注意字母D代表DUAL,即代表EIGRP,AD为90

  show ip route eigrp命令只显示路由表中的EIGRP选项

  show ip eigrp neighbors:显示所有的EIGRP邻居

  show ip eigrp topology:显示EIGRP拓扑表条目,如下:
  RouterC#sh ip eigrp topology
  (略)
  P 192.168.40.0/24, 1 successors, FD is 21469856
  Via Connected, Serial0
  (略)
  注意前面的P代表passive状态,这样的状态是正常的如果看见的是A即active状态而不是P,说明router失去了到这个网络的路径并且在寻找替代路径

  Open Shortest Path First(OSPF) Basics

  在1个大型网络中,假如不是所有的设备都是Cisco的,EIGRP明显就不行,因为它是私有的.所以就可以使用OSPF协议或者路由redistribution(路由协议之间的翻译服务).OSPF使用Dijkstra算法,是1种链路状态协议.OSPF汇聚快速,支持多个耗费相同的路径.和EIGRP不同的是,OSPF只支持IP路由.OSPF也能够设计网络为层次化的,这样就把1个大的网络分割成几个小的网络,叫做区域(area).这是OSPF最好的设计方法.把OSPF设计成层次化的好处是:

  1.减少路由成本(overhead)
  2.加速汇聚
  3.把大网络分割成小的区域

  下面是1个典型的OSPF设计图,如下:

  注意这个图,BR为骨干router(backbone router,BR),连接到这个骨干的为区域0或者骨干区域(backbone area),OSPF必须要有个区域0所有的router应该尽可能的连接到这个区域.连接其他区域到骨干区域的为区域边界router(area border router,ABR),ABR必须至少有1个接口位于区域0中.OSPF运行在1个AS中,而且能够连接多个AS,连接多个AS的router为自治系统边界router(autonomous system boundary router,ASBR)
  OSPF Terminology

  来看一些OSPF的术语:
  1.link:网络或分配给网络的router的接口.当接口被加到OSPF的进程中以后,OSPF把它认为成是1条连接(link)
  2.Router ID(RID):用来鉴别router的IP地址,Cisco通过使用回环(loopback)接口的最高的IP地址来鉴别router.如果回环接口没有配置IP地址,OSPF将选择所有物理接口中最高的IP地址
  3.neighbors:2个或多个拥有连接到某个网络的接口的router
  4.adjacency:允许直接进行路由更新的运行了OSPF的2个router的关系.不像EIGRP,OSPF直接和建立了adjacency关系的邻居共享路由信息.并不是所有的邻居都是adjacency关系,这个取决于网络类型和router的配置
  5.neighborship database:所有运行OSPF的能够接收Hello信息的router的名单列表.各种信息,包括RID和状态等,都保持在每个router的neighborship database中
  6.topology database:包含了从链路状态通告(link state advertisement,LSA)包得来的信息.router把它输入到Dijkstra算法中算出最短路径
  7.link state advertisement:共享在运行了OSPF的router之间的链路状态和路由信息.router和与它建立了adjacency关系的交换LSA包
  8.designated router(DR):多路访问网络中为避免router间建立完全相邻关系而引起大量开销,OSPF在区域中选举一个DR,每个router都与之建立完全相邻关系.router用Hello信息选举一个DR.在广播型网络里Hello信息使用多播地址224.0.0.5周期性广播,并发现邻居.在非广播型多路访问网络中,DR负责向其他router逐一发送Hello信息
  9.backup designated router(BDR):多路访问网络中DR的备用router,BDR从拥有adjacency关系的router接收路由更新,但是不会转发LSA更新
  10.OSPF areas:连续的网络和router的分组.在相同区域的router共享相同的area ID.因为1个router1次可以成为1个以上的区域的成员, area ID和接口产生关联,这就允许了某些接口可以属于区域1,而其他的属于区域0.在相同的区域的router拥有相同的拓扑表.当你配置OSPF的时候,记住必须要有个区域0,而且这个一般配置在连接到骨干的那个router上.区域扮演着层次话网络的角色
  11.boradcast(multi-access):广播型(多路访问)网络.比如以太网,允许多个设备连接,访问相同的网络;而且提供广播的能力.在这样的网络中必须要有1个DR和BDR
  12.nonbroadcast multi-access(NBMA):这类网络类型有帧中继(Frame Relay),X.25和异步传输模式(Asynchronous Transfer Mode,ATM),这类网络允许多路访问,但是不提供广播能力
  13.point-to-point:点对点网络.一个物理上的串行电路连接或者是逻辑上的,不需要DR和 BDR,邻居是自动发现的
  14.point-to-multipoint:点对多点网络.不需要DR和BDR

  SPF Tree Calculation

  在1个区域内,每个router计算最佳最短的路径,这个计算是基于拓扑数据库里的信息和最短路径优先(shortest path first,SPF)算法的

  SPF算法是OSPF的基础.当router启动后,它就初始化路由协议数据结构,然后等待下层协议关于接口已可用的通知信息.当router确认接口已准备好,就用OSPF Hello信息来获取邻居信息,即具有在共同的网络上接口的router.router向邻居发送Hello包并接收它们的Hello包.除了帮助学习邻居外,Hello包也有keep-alive的功能

  在多路访问网络中,Hello选出一个DR和一个BDR.DR负责为整个网络生成LSA,它可以减少网络通信量和拓扑数据库的大小

  当两个相邻router的链接状态数据库同步后,就称为邻接.在多路访问网络中,DR决定哪些router应该相邻接,拓扑数据库在邻接router间进行同步.邻接控制路由协议包的分发,只在邻接点间交换

  每个router周期性地发送LSA,提供其邻接点的信息或当其状态改变时通知其它router.通过对已建立的邻接关系和链接状态进行比较,失效的router可以很快被检测出来,网络拓扑相应地更动.从LSA生成的拓扑数据库中,每个router计算最短路径树,以自己为根.这个最短路径树就生成了路由表

  Cisco使用基于带宽的度,而其他厂商是用不同的标准来痕量度的.Cisco痕量度的公式为100,000,000/带宽(bps).比如100Mbps的快速以太网接口的耗费就为1,10Mbps的就为10,64Kbps的耗费为1563.可以使用ip ospf cost命令来修改耗费,值的范围是1到65535

  Configuring OSPF

  在CCNA的认证课程里,我们只讨论单域(single area)的OSPF配置.配置OSPF的2个要素:
  1.启用OSPF
  2.配置OSPF的区域

  Enabling OSPF

  启用OSPF在全局配置模式下使用router ospf [进程ID]命令,进程ID范围是1到65535.可以在同1个router上使用不止1个的OSPF进程,但是这并不等于多域(multi-area)的OSPF.第二个进程保持完整的拓扑数据库的拷贝,而且独立于第一个进程进行管理通信  Configuring OSPF Areas

  OSPF使用wildmask来进行配置,如下:
  RouterA(config)#router ospf 1
  RouterA(config-router)#network 10.0.0.0 0.255.255.255 area 0
  如上,0.255.255.255为wildmask,0的部分表示必须精确匹配,255表示为任意匹配.network 10.0.0.0 0.255.255.255 area 0这个命令的作用是:鉴定OSPF操作的接口,而且也会加进OSPF LSA通告的范围呢.OSPF使用这个命令查找所有处在10.0.0.0的网络里的接口,然后把它们放进区域0

  来看1个配置实例,如图:

 

  Router Network Address Interface Address
  RouterA 192.168.10.0 fa0/0 192.168.10.1
       192.168.20.0 s0/0 192.168.20.1
  RouterB 192.168.20.0 s0/0 192.168.20.2
       192.168.40.0 s0/1 192.168.40.1
       192.168.30.0 fa0/0 192.168.30.1
  RouterC 192.168.40.0 s0/0 192.168.40.2
       192.168.50.0 fa0/0 192.168.50.1

  由于OSPF的AD为110,IGRP的为100,EIGRP的为90.所以要先去掉之前所配置的协议,RouterA配置如下:
  RouterA(config)#no router eigrp 10
  RouterA(config)#no router igrp 10
  RouterA(config)#no router rip
  RouterA(config)#router ospf 132
  RouterA(config-router)#network 192.168.10.1 0.0.0.0 area 0
  RouterA(config-router)#network 192.168.20.1 0.0.0.0 area 0
  RouterA(config-router)#^Z
  RouterA#

  RouterB的配置如下:
  RouterB(config)#no router eigrp 10
  RouterB(config)#no router igrp 10
  RouterB(config)#no router rip
  RouterB(config)#router ospf 1
  RouterB(config-router)#network 192.168.0.0 0.0.255.255 area 0
  RouterB(config-router)#^Z
  RouterB#
  注意这里的参数192.168.0.0 0.0.255.255;代表查找192.168.0.0里的任何接口,并把它们放到区域0里


  RouterC的配置如下:
  RouterC(config)#no router eigrp 10
  RouterC(config)#no router igrp 10
  RouterC(config)#no router rip
  RouterC(config)#router ospf 64999
  RouterC(config-router)#network 192.168.4.0 0.0.0.255 area 0
  RouterC(config-router)#network 192.168.5.0 0.0.0.255 area 0
  RouterC(config-router)#^Z
  RouterC#
  Verifying OSPF Configuration

  使用show ip route命令来验证下,如下:
  RouterA#sh ip route
  (略)
  O 192.168.30.0/24 [110/65] via 192.168.20.2, 00:01:07, Serial0/0
  (略)
  注意上面的O代表OSPF,AD为110,度为65

  其他的一些验证命令:

  show ip ospf:显示每条或所有ODPF进程的相关信息,包括RID,区域信息,SPF信息和LAS计时器信息等,如下:
  RouterA#sh ip ospf
  Routing Process “ospf 132” with ID 192.168.20.1
  (略)
  如上可知道RID为192.168.20.1.即router的最高的那个IP地址

  show ip ospf database:显示拓扑数据库信息,如下:
  RouterA#sh ip ospf database
       OSPF Router with ID (192.168.20.1) (Process ID 132)
Router Link States (Area 0)
  Link ID ADV Router Age Seq# Checksum Link count
192.168.20.1 192.168.20.1 648 0x80000003 0x005E2B 3
  (略)

  show ip ospf interface:
  1.接口IP地址信息
  2.区域的分配信息
  3.进程ID
  4.RID
  5.网络类型
  6.耗费(cost)
  7.优先级(priority)
  8.DR/BDR
  9.计时器间隔(timer intervals)
  10.邻接的邻居信息

  show ip ospf neighbor:显示邻居的信息,如果DR和BDR存在的话,它们的信息也会被显示出来

  show ip protocols:显示配置了的所有路由协议的相关信息

  OSPF and Loopback Interfaces

  在配置OSPF路由协议的时候配置回环(loopback)接口是很重要的1件事.Cisco建议你配置OSPF的时候顺便配置回环接口.所谓回环接口,是逻辑接口而非物理接口,即不是你触摸的到的router上的真正的接口.作用是作为诊断OSPF而用.如果router的某一个接口由于故障down 掉而不可用了,此时你怎么通过telnet来连接并进行管理用呢?所以就引入了回环接口是概念,回环接口永远不会down掉,你就可以通过连上回环接口来进行管理

  Configuring Loopback Interfaces

  配置回环接口前先使用show ip ospf命令查看RID,接下来对接口进行配置,如下:
  RouterA的配置:
  RouterA(config)#int loopback0
  RouterA(config-if)#ip address 172.16.10.1 255.255.255.0
  RouterA(config-if)#no shut
  RouterA(config-if)#^Z
  RouterA#
  RouterB的配置:
  RouterB(config)#int lo0
  RouterB(config-if)#ip address 172.16.20.1 255.255.255.0
  RouterB(config-if)#no shut
  RouterB(config-if)#^Z
  RouterB#
  RouterC的配置:
  RouterC(config)#int lo0
  RouterC(config-if)#ip address 172.16.30.1 255.255.255.0
  RouterC(config-if)#no shut
  RouterC(config-if)#^Z
  RouterC#
  注意2个回环接口的IP地址配置机制为任意配置,但是IP地址必须处于不同的子网内

  Verifying Loopbacks and RIDs

  验证回环接口的地址,可以使用show running-config的命令查看,如下:
  RouterC#sh run
  (略)
  !
  interface Loopback0
  ip address 172.16.30.1 255.255.255.0
  !
  (略)

  可以使用show ip ospf database命令,show ip ospf interface命令和show ip ospf命令查看RID信息.记住在你重新启动router前,新的RID是不会显示出来的,如下,启动后的RID信息:
  RouterC#sh ip ospf
  Routing Process “ospf 64999” with ID 172.16.30.1 and Domain ID 0.0.253.231
  (略)
  如上可以看出假如回环接口IP地址高于物理接口IP地址,将以回环接口的IP地址作为新的RID

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值