路由协议(routing protocol):用于routers动态寻找网络最佳路径,保证所有routers拥有相同的路由表.一般,路由协议决定数据包在网络上的行走的路径.这类协议的例子有OSPF,RIP,IGRP,EIGRP等可路由协议(routed protocol):当所有的routers知道了整个网络的拓扑结构以后,可路由协议就可以用来发送数据.一般的,可路由协议分配给接口,用来决定数据包的投递方式.这类例子有IP和IPX 路由:把1个数据包从1个设备发送到不同网络里的另1个设备上去.这些工作依靠routers来完成.routers并不关心主机,它们只关心网络的状态和决定网络中的最佳路径router可以路由数据包,必须至少知道以下状况:1.目标地址(destination address)2.可以学习到远端网络状态的邻居router3.到达远端网络的所有路线4.到达远端网络的最佳路径5.如何保持和验证路由信息The IP Routing Process路由原理:当IP子网中的一台主机发送IP包给同一IP子网的另一台主机时,它将直接把IP包送到网络上,对方就能收到.而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的router,把IP包送给该router,由它负责把IP包送到目的地.如果没有找到这样的router,主机就把IP包送给一个称为缺省网关(default gateway)的router上.缺省网关是每台主机上的一个配置参数,它是接在同一个网络上的某个router接口的IP地址,router转发IP包时,只根据IP包目的IP地址的网络号部分,选择合适的接口,把IP包送出去.同主机一样,router也要判定接口所接的是否是目的子网,如果是,就直接把包通过接口送到网络上,否则,也要选择下一个router来传送包.router也有它的缺省网关,用来传送不知道往哪儿送的IP包.这样,通过router把知道如何传送的IP包正确转发出去,不知道的IP包送给缺省网关,这样一级级地传送,IP包最终将送到目的地,送不到目的地的IP包则被网络丢弃了当主机A发送个IP包到主机B,目标MAC地址使用的是默认网关的以太网接口地址.这是因为帧不能放置在远端网络.show ip route:查看路由表信息,比如:Router#sh ip route(略)Gateway of last resort is not setC 192.168.10.0/24 is directly connected, FastEthernet0/0C 192.168.20.0/24 is directly connected, Serial 0/0Router#C代表的是:直接相连Configuring IP Routing in Our Network当1个router收到1个目标网络号没有在路由表中列出的包的时候,它并不发送广播寻找目标网络,而是直接丢弃它几种不同类型的路由:1.静态路由(static routing)2.默认路由(default routing)3.动态路由(dynamic routing)Static Routing静态路由:手动填加路由线路到路由表中,优点是:1.没有额外的router的CPU负担2.节约带宽3.增加安全性缺点是:1.网络管理员必须了解网络的整个拓扑结构2.如果网络拓扑发生变化,管理员要在所有的routers上手动修改路由表3.不适合在大型网络中静态路由的配置命令:ip route [dest-network] [mask] [next-hop address或exit interface][administrative distance] [permanent]ip route:创建静态路由dest-network:决定放入路由表的路由表mask:掩码next-hop address:下1跳的router地址exit interface:如果你愿意的话可以拿这个来替换next-hop address,但是这个是用于点对点(poi nt-to-point)连接上,比如广域网(WAN)连接,这个命令不会工作在LAN上administrative distance:默认情况下,静态路由的管理距离是1,如果你用exit interface代替next -hop address,那么管理距离是0permanent:如果接口被shutdown了或者router不能和下1跳router通信,这条路由线路将自动从路由表中被删除.使用这个参数保证即使出现上述情况,这条路线仍然保持在路由表中静态路由的具体配置:Router Network Address Interface AddressRouterA 192.168.10.0 fa0/0 192.168.10.1192.168.20.0 s0/0 192.168.20.1RouterB 192.168.20.0 s0/0 192.168.20.2192.168.40.0 s0/1 192.168.40.1192.168.30.0 fa0/1 192.168.30.1RouterC 192.168.40.0 s0/0 192.168.40.2192.168.50.0 fa0/0 192.168.50.1准备工作:先配置RouterA,B和C的基本信息,注意RouterB作为DCE提供时钟频率:RouterA(config)#int fa0/0RouterA(config-if)#ip address 192.168.10.1 255.255.255.0RouterA(config-if)#no shutRouterA(config-if)#int s 0/0RouterA(config-if)#ip address 192.168.20.1 255.255.255.0RouterA(config-if)#no shutRouterA(config-if)#^ZRouterA#copy run startRouterB(config)#int fa0/0RouterB(config-if)#ip address 192.168.30.1 255.255.255.0RouterB(config-if)#no shutRouterB(config-if)#int s 0/0RouterB(config-if)#ip address 192.168.20.2 255.255.255.0RouterB(config-if)#clock rate 64000RouterB(config-if)#no shutRouterB(config-if)#ip address 192.168.40.1 255.255.255.0RouterB(config-if)#clock rate 64000RouterB(config-if)#no shutRouterB(config-if)#^ZRouterB#copy run startRouterC(config)#int fa0/0RouterC(config-if)#ip address 192.168.50.1 255.255.255.0RouterC(config-if)#no shutRouterC(config-if)#int s 0/0RouterC(config-if)#ip address 192.168.40.2 255.255.255.0RouterC(config-if)#no shutRouterC(config-if)#^ZRouterC#copy run start配置RouterA静态路由:RouterA了解自己的网络192.168.10.0和192.168.20.0(直接相连),所以RouterA的路由表必须加入192.168.30.0和192.168.40.0, 192.168.50.0的信息,注意下1跳接口,如下: RouterA(config)#ip route 192.168.30.0 255.255.255.0 192.168.20.2RouterA(config)#ip route 192.168.40.0 255.255.255.0 192.168.20.2RouterA(config)#ip route 192.168.50.0 255.255.255.0 192.168.20.2验证路由信息:RouterA#sh ip route(略)S 192.168.50.0 [1/0] via 192.168.20.2(略)S代表静态路由,[1/0]分别为管理距离和度配置RouterB静态路由:RouterB所必须学习到的网络应该是192.168.10.0和192.168.50.0,注意它们的下1跳接口地址,配置如下:RouterB(config)#ip route 192.168.10.0 255.255.255.0 192.168.20.1RouterB(config)#ip route 192.168.50.0 255.255.255.0 192.168.40.2配置RouterC静态路由:RouterC所必须学习到的网络应该是192.168.10.0,192.168.20.0和192.168.30.0,注意它们的下1跳接口地址,配置如下:RouterC(config)#ip route 192.168.10.0 255.255.255.0 192.168.40.1RouterC(config)#ip route 192.168.20.0 255.255.255.0 192.168.40.1RouterC(config)#ip route 192.168.30.0 255.255.255.0 192.168.40.1Verifying Your Configuration根据上面的拓扑结构,我们来验证下是否能够端到端的ping通:RouterC#ping 192.168.10.1(略)Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:!!!!!(略)RouterA#ping 192.168.50.1(略)Sending 5, 100-byte ICMP Echos to 192.168.50.1, timeout is 2 seconds:!!!!!(略)2端都能ping通,说明没问题Default Routing默认路由:一般使用在stub网络中,stub网络是只有1条出口路径的网络.使用默认路由来发送那些目标网络没有包含在路由表中的数据包.根据上面的拓扑图,你就不能把默认路由定义在RouterB上,因为RouterB拥有不止1个出口路径接口.其实你可以把默认路由理解成带通配符(wildcard)的静态路由配置默认路由:首先要去掉之前配置的静态路由RouterC(config)#no ip route 192.168.10.0 255.255.255.255 192.168.40.1RouterC(config)#no ip route 192.168.20.0 255.255.255.255 192.168.40.1RouterC(config)#no ip route 192.168.30.0 255.255.255.255 192.168.40.1接下来配置默认路由:RouterC(config)#ip route 0.0.0.0 0.0.0.0 192.168.40.1额外的命令,使各个接口打破分类IP规则,12.x的IOS默认包含这条命令,如下:RouterC(config)#ip classless再验证下:RouterC(config)#^ZRouterC#sh ip route(略)S* 0.0.0.0/0 [1/0] via 192.168.40.1S*代表默认路由Dynamic Routing动态路由协议,有很多优点,灵活等等,但是缺点也有,比如占用了额外的带宽,CPU负荷高组网利用到的2种路由协议:内部网关协议(Interior Gateway Protocols,IGPs)和外部网关协议(E xterior Gateway Protocols,EGPs)自治系统(Autonomous System,AS):同1个管理域的网络集合,意味着在这里面的所有routers共享相同的路由表信息IGPs:在相同的AS内交换路由信息EGPs:AS间的通信Routing Protocol BasicsAdministrative Distances管理距离(AD): 0到255之间的1个数,它表示一条路由选择信息源的可信性值.该值越小,可信性级别越高.0为最信任,255为最不信任即没有从这条线路将没有任何流量通过.假如1个router收到远端的2条路由更新,router将检查AD,AD值低的将被选为新路线存放于路由表中.假如它们拥有相同的AD,将比较它们的度(metric).度低的将作为新线路.假如它们的AD和度都一样,那么将在2条线路做均衡负载.一些常用路由协议默认的AD:1.直接相连:02.静态路由:13.EIGRP:904.IGRP:1005.OSPF:1106.RIP:120记住,如果你在条线路上配置了静态路由,又配置了RIP,默认情况下,router只会使用静态路由,因为它的AD为1小于RIP的ADRouting Protocols3种路由协议:1.距离向量(distance vector)2.链路状态(link state)3.混合型(hybrid)距离向量:用于根据距离(distance)来判断最佳路径,当1个数据包每经过1个router时,被称之为经过1跳.经过跳数最少的则作为最佳路径.这类协议的例子有RIP和IGRP,它们将整个路由表向与它们直接相连的相邻routers链路状态:也叫最短路径优先(shortest-path-first)协议.每个router创建3张单独的表,1张用来跟踪与它直接相连的相邻router;1张用来决定网络的整个拓扑结构;另外1张作为路由表.所以这种协议对网络的了解程度要比距离向量高.这类协议例子有OSPF混合型:综合了前2者的特征,这类协议的例子有EIGRPDistance-Vector Routing Protocols距离向量路由算法将完整的路由表传给相邻router,然后这个router再把收到的表的选项加上自己的表来完成整个路由表,这个叫做routing by rumor,因为这个router是从相邻router接受更新而非自己去发现网络的变化。