似一些链路状态的协议,EIGRP通过Hello信息来发现邻居;而它又和距离向量类似,使用传闻路由的机制,即不主动去发现,而是听从别人的信息.EIGRP使用一系列的表来存储信息:1.邻居表,记录了邻居的一些信息2.拓扑表,记录了网络中的拓扑状态3.路由表,根据这个来做路由决定EIGRPMetricsEIGRP使用混合度,包含到4个方面:1.带宽2.延迟(delay)3.负载(load)4.可靠性(reliability)5.最大传输单元(maximumtransmissionunix,MTU)默认情况下EIGRP使用带宽和延迟来决定最佳路径ConfigurationEIGRP配置EIGRP,首先在全局配置模式下使用routereigrp[AS号]命令.接下来再使用network命令定义直接相连的网络.仍然可以像配置IGRP那样使用passive-interface命令来禁止某个接口接收或发送Hello信息.并且记住EIGRP的AD是90来看1个配置实例,如图:RouterNetworkAddressInterfaceAddressRouterA192.168.10.0fa0/0192.168.10.1192.168.20.0s0/0192.168.20.1RouterB192.168.20.0s0/0192.168.20.2192.168.40.0s0/1192.168.40.1192.168.30.0fa0/0192.168.30.1RouterC192.168.40.0s0/0192.168.40.2192.168.50.0fa0/0192.168.50.1配置RouterA:RouterA(config)#routereigrp10RouterA(config-router)#network192.168.10.0RouterA(config-router)#network192.168.20.0RouterA(config-router)#^ZRouterA#记住配置EIGRP和配置IGRP十分类似,唯一不同的是EIGRP是无分类路由(classlessrouting)配置RouterB:RouterB(config)#routereigrp10RouterB(config-router)#network192.168.20.0RouterB(config-router)#network192.168.30.0RouterB(config-router)#network192.168.40.0RouterB(config-router)#^ZRouterB#配置RouterC:RouterC(config)#routereigrp10RouterC(config-router)#network192.168.40.0RouterC(config-router)#network192.168.50.0RouterC(config-router)#^ZRouterC#这样配置看上去好象没什么问题,EIGRP的AD比之前配置的RIPv1和IGRP的低,但是有个问题就是:增加了CPU的负担,而且占用了额外的带宽还有1点要注意的是自动summarization,router默认会向分级边界进行summarize.如下图:A的配置如下:A(config)#routereigrp100A(config-router)#netw172.16.0.0A(config-router)#netw10.0.0.0A(config-router)#noauto-summaryB的配置如下:B(config)#routereigrp100B(config-router)#netw172.16.0.0B(config-router)#netw10.0.0.0B(config-router)#noauto-summary使用noauto-summary命令后,运行了EIGRP的router就不会相互进行通告VerifyingEIGRP在刚才配置好的情况下使用showiproute命令查看路由信息,如下:RouterA#shiproute(略)D192.168.30.0/24[90/2172416]via192.168.20.2,00:04:36,Serial0/0(略)注意字母D代表DUAL,即代表EIGRP,AD为90showiprouteeigrp命令只显示路由表中的EIGRP选项showipeigrpneighbors:显示所有的EIGRP邻居showipeigrptopology:显示EIGRP拓扑表条目,如下:RouterC#shipeigrptopology(略)P192.168.40.0/24,1successors,FDis21469856ViaConnected,Serial0(略)注意前面的P代表passive状态,这样的状态是正常的如果看见的是A即active状态而不是P,说明router失去了到这个网络的路径并且在寻找替代路径OpenShortestPathFirst(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(backbonerouter,BR),连接到这个骨干的为区域0或者骨干区域(backbonearea),OSPF必须要有个区域0所有的router应该尽可能的连接到这个区域.连接其他区域到骨干区域的为区域边界router(areaborderrouter,ABR),ABR必须至少有1个接口位于区域0中.OSPF运行在1个AS中,而且能够连接多个AS,连接多个AS的router为自治系统边界router(autonomoussystemboundaryrouter,ASBR)来看一些OSPF的术语:1.link:网络或分配给网络的router的接口.当接口被加到OSPF的进程中以后,OSPF把它认为成是1条连接(link)2.RouterID(RID):用来鉴别router的IP地址,Cisco通过使用回环(loopback)接口的最高的IP地址来鉴别router.如果回环接口没有配置IP地址,OSPF将选择所有物理接口中最高的IP地址3.neighbors:2个或多个拥有连接到某个网络的接口的router4.adjacency:允许直接进行路由更新的运行了OSPF的2个router的关系.不像EIGRP,OSPF直接和建立了adjacency关系的邻居共享路由信息.并不是所有的邻居都是adjacency关系,这个取决于网络类型和router的配置5.neighborshipdatabase:所有运行OSPF的能够接收Hello信息的router的名单列表.各种信息,包括RID和状态等,都保持在每个router的neighborshipdatabase中6.topologydatabase:包含了从链路状态通告(linkstateadvertisement,LSA)包得来的信息.router把它输入到Dijkstra算法中算出最短路径7.linkstateadvertisement:共享在运行了OSPF的router之间的链路状态和路由信息.router和与它建立了adjacency关系的交换LSA包8.designatedrouter(DR):多路访问网络中为避免router间建立完全相邻关系而引起大量开销,OSPF在区域中选举一个DR,每个router都与之建立完全相邻关系.router用Hello信息选举一个DR.在广播型网络里Hello信息使用多播地址224.0.0.5周期性广播,并发现邻居.在非广播型多路访问网络中,DR负责向其他router逐一发送Hello信息9.backupdesignatedrouter(BDR):多路访问网络中DR的备用router,BDR从拥有adjacency关系的router接收路由更新,但是不会转发LSA更新10.OSPFareas:连续的网络和router的分组.在相同区域的router共享相同的areaID.因为1个router1次可以成为1个以上的区域的成员,areaID和接口产生关联,这就允许了某些接口可以属于区域1,而其他的属于区域0.在相同的区域的router拥有相同的拓扑表.当你配置OSPF的时候,记住必须要有个区域0,而且这个一般配置在连接到骨干的那个router上.区域扮演着层次话网络的角色11.boradcast(multi-access):广播型(多路访问)网络.比如以太网,允许多个设备连接,访问相同的网络;而且提供广播的能力.在这样的网络中必须要有1个DR和BDR12.nonbroadcastmulti-access(NBMA):这类网络类型有帧中继(FrameRelay),X.25和异步传输模式(AsynchronousTransferMode,ATM),这类网络允许多路访问,但是不提供广播能力13.point-to-point:点对点网络.一个物理上的串行电路连接或者是逻辑上的,不需要DR和BDR,邻居是自动发现的14.point-to-multipoint:点对多点网络.不需要DR和BDRSPFTreeCalculation在1个区域内,每个router计算最佳最短的路径,这个计算是基于拓扑数据库里的信息和最短路径优先(shortestpathfirst,SPF)算法的SPF算法是OSPF的基础.当router启动后,它就初始化路由协议数据结构,然后等待下层协议关于接口已可用的通知信息.当router确认接口已准备好,就用OSPFHello信息来获取邻居信息,即具有在共同的网络上接口的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.可以使用ipospfcost命令来修改耗费,值的范围是1到65535ConfiguringOSPF在CCNA的认证课程里,我们只讨论单域(singlearea)的OSPF配置.配置OSPF的2个要素:1.启用OSPF2.配置OSPF的区域EnablingOSPF启用OSPF在全局配置模式下使用routerospf[进程ID]命令,进程ID范围是1到65535.可以在同1个router上使用不止1个的OS