一、rip

  (一)rip特点:
 
     1、以UDP数据包发送更新包,每30秒一次
     2、以跳为成本的距离向量路由协议。最大为16跳
     3、用广播地址进行更新
     4、rip1为分类路由协议,rip2为无类路由选择协议

  (二)配置rip路由协议

1、基本配置
(config)#router rip                   //开启RIP路由协议
(config)#network  192.168.1.0        //network命令向外公布直接与此路由器相邻的网络号。只有公布了此网络号,才能将此网络发布出去,将外部的更新传到此网络。如果有此网络,但没有用network命令公布出去,此网络实际上与其他网络是隔离的。
(config)#neighbour   192.168.1.100   //把对方加入邻居表。rip是广播方式进行更新的。如帧中继等非广播网络需要更新路由表时,就必须用此命令将对方加入到它的邻居表中。
(config)#passive-interface  fastethernet0         //用passive-interface指定的接口,只接收路由更新,但不能发送路由更新。是个被动接口,不发送自已的路由更新。

         如果passive-interface和neighbour命令一起用在一台路由器上时,passive-inteface中指定的接口将停止默认的广播更新,只通过该接口把更新传到neighbour中指定的路由器。(用在广播环境下,实现非广播功能)

2、版本配置:

 (config)#router rip     //接收版本1和版本2,但只发送版本1
 (config)#router rip version 1   //只接收和发送版本1
 (config)#router rip version 2   //只接收和发送版本2 
 (config-if) ip rip send version 1   //仅发送rip版本
 (config-if) ip receive vesrsion 1 2   //接受版本1和版本2


 3、rip2的认证模式:(rip1没有认证)

(config)#key chain elitek   //指定一个密钥链的名字,此处为ELITEK
(config-keychain)#key 1  //定义一个密钥,用数字代表一个密钥。一个chain可以配置多个key,每个key 与后面的key-string 相匹配。key中定义的密钥号从低到高搜索,找到的第一个有效密钥用于认证。此处是1号。
(config-keychain-key)#key-string test  //定义该密钥的口令,此处为test
 (config-keychain-key)#accept-lifetime {start-time} {infinite |endtime|duration {seconds}}   //接收认证的时间
 (config-keychain-key)#send-lifetime {start-time} {infinite |endtime|duration {seconds}}     //发送证证的时间
  
    //设定密钥的执行时间。
  
   starttime:是开始时间。
   endtime:是结束时间
   infinite:是指开始后永远执行。
   duration:是指开始多长时间后到期。

    
 (config)#interface s0    //进入接口
  (config-if)#ip rio authentication key-chain elitek   //把密钥连用于接口
 (config-if)#ip rip authentication mode {text|md5}    //定义认证方法。 text是明文认证模式,默认模式。md5是用md5作为认证模式。


如果两台路由器要认证,两台路由器的密钥就都需设置一致,还要考虑两台路由器之间的时差。
两台路由器必须用RIP2版本;两台路由器接收和发送时间要一样;两台路由器必须用相同密钥串。

4、rip2的路由汇总和水平分割

   rip1是强制边界路由汇总,是分类路由协议,路由边界自动汇总,不可关闭。rip2是无类路由协议,默认情况下,rip2和rip1一样,在路由边界汇总。可禁 用路由汇总,以支持VLSM。

(config-route)#no auto-summary   //禁用路由汇总。

(config-if)#no ip split-horizon //关闭水平分割



三、eigrp

(一)eigrp的基本原理和特点:

 1、基本特点:
  
   (1)是一种cisco专用协议
   (2)eigrp的最大跳距离是255个
   (3) 快速收敛。eigrp采用扩散更新算法(dual)来实现快速收敛。
   (4)占用更少的带宽:eigrp不是定期发送更新,而是在前往目的网络的路由状态发生改变时,或度量发生改变时才发送改变了的更新到需要更新的路由器,而不是更新所有路由表,也不是向所有路由器更新。
   (5)支持多种网络层协议:支持ip\ipx\appletalk等路由协议
   (6)支持lan和wan。支持VLSM
   
 2、几个重要概念:

    (1)邻居表:
         每台eigrp路由器都维护一个包含邻接路由器的邻居表。以确保直接邻居之间能够进行双向通信。
         eigrp为其支持的每种网络协议维护一个邻居表。如ip邻居表、ipx邻居表、appletalk邻居表。
   
    (2)拓扑表:获悉前往目的地的所有路由都存储到拓扑表中。为每种协议都建一个拓扑表。
             
    (3)路由选择表:eigrp从拓扑表中选择到目的地的最佳路由,加入到路由选择表中。为每种协议建一个路由选择表。
   
    (4)后继站:即前往目的地的最佳路由。即最佳路由所经过的路由器。存于路由选择表中。
   
    (5)可行后继站:即前往目的地的备用路由。作为后继站的备用路由器。



注意重点: eigrp路由器填辩驳路由拓扑表和路由选择表的过程:


          每台路由器将本路由器的路由选择表(最佳路由)的副本转发一份给邻居表中的邻居路由器
          每台路由器将收到邻居发来的路由选择表存于自已的拓扑表
          每台路由器再根据拓扑表通过算法选择到达目的网络的最佳路由和可行路由。并将最佳路由加入到路由选择表。  
   

 3、eigrp的原理

     (1)eigrp用多播地址224.0.0.10向外发送hello分组。在T1或低速的多点接口上每60秒发送一次hello分组。在lan或其他串行接口下5秒传送一次。

           (config-if)#ip eigrp hello-interval {时间}   //设定hello时间的间隔,以秒为单位。
           (config-if)# ip eigrp hold-time {时间}  //保持时间。一般为hello时间的3倍。在保持时间内没有收到邻居路由器的hello分组后,就将该公邻居视为无效,并将此从此邻居获得的所有路由都删除。

    (2)eigrp通过主地址(一个接口可配多个ip地址),不通过辅助地址来建立邻居关系。如两台路由器的主地址属于一个网段,就建 立邻居关系。
   
    (3)eigrp的可靠性:eigrp的可靠性机制确保重要的路由信息被送到邻接路由器。为提高效率只有某些分组才被可告传输。
                        eigrp的用可靠传输协议RTP将更新传给邻居路由器。
                

 4、eigrp度量值的计算

     (1)五个参数:

          带宽(bandwidth):源和目的地的最小带宽。10的7次方除以源和目的地之间最低带宽乘以256。
          延迟(delay):路径上接口的累计延迟。即路径中延迟的总和,再乘以256,单位是微秒。
          可靠性(reliability):根据keepalive而定的源和目的之间最不可靠的可靠度的值。即最差可靠值。
          负载(loading):源和目的之间最大的负载值
          最大传输单元:MTU。路径中的最小mtu值。

       (2)度量值计算方法:
     
            metric权重值: k1 为带宽权重值 ; k2为负载权重值; k3为延迟权重值 ;  k4为可靠性权重值 ; k5为mtu权重值

            metric=k1*带宽 +[(k2*带宽)/(256-负载) + k3*延迟] * [k5/(可靠性+k4)]

           默认:  k1=k3=1    k2=k4=k5=0  
           所以  metric=1*带宽 + [(0*带宽)/(256-负载) +1*延迟 ] *[0/(可靠性+0)]=带宽+延迟

           不建 议更改k值。

           所以本节记住一点:  eigrp的metric值为 带宽+延迟
 

5、eigrp的更新算法

   (1)Dual是一个有限状态机,用于选择将哪些路由加入到路由拓扑表,哪些加入到路由选择表。它记录邻居通告的所有路由,根据度量值来选择到个目的地的有效的无环路径。并加入路由选择表。
   
   (2)AD: 即通告距离。是邻居路由器到特定网络的EIGRP度量值。这是下一跳邻居路由器到目标网络的度量值。
   
    (3)FD: 是当前路由器到特定网络的最小EIGRP度量值。它是从EIGRP邻居获悉的AD和当前路由器到邻居路由器的EIGRP度量值之和。

   (4)后继站(后继路由器):对于拓扑表中,到达每一个目的网络Metric最小的路由加入到路由选择表中。宣告这条路由的邻居就成为后继路由器。
     
       FD决定哪条路径是最佳路由,不是AD。AD只是用来计算FD用的。当多个FD路径相同时,则所有这些后继站都加入到路由选择表中,最多4条。
  
   (5)FS: 可行后继站。是提供备用路由的路由器。可行后继站到达目标网络的路由必须是无环的,它不能环回到当前的后继站。
            要成为FS,下一跳路由器前往特定网络的AD,必须小于当前后继路由器的FD。即备用路由器到达目的网络的AD,必须小于后继路由器的FD,这样可以避免环路。

       例:  EIGRP拓扑表
 
          网络          FD       AD       EIGRP邻居

     10.1.1.0/24      2000     1000       路由器A  E0
     10.1.1.0/24      2500     1500       路由器B  E1
   
    路由器A是到网络10.1.1.0的后继路由器。     路由器B到网络10.1.1.0的AD值为1500,比后继路由器到网络10.1.1.0的FD值2000小,所以可以作为可行后继路由器。

 

(二)配置和验证EIGRP

 
  1、eigrp的基本配置

   (config)#router eigrp 15    //启用eigrp,并且全局配置命令指定自主系统。15为自主自治系统号。在自主系统内,所有路由器上的自主系统号都必须相同。
    (config-router)#network {network-number} {wildcard-mask}   //指定参与eigrp进程的网络。即通告哪些网络,哪些网络是eigrp自主系统的一部分。

     network-number:即网络号
     wildcard-mask:是可选的,其中“0”代表完全匹配,“1”代表无关。这是反码。
   
      例:(config-router)#network 172.16.0.0 0.0.255.255   //通告172.16.0.0网络到自主系统。

 2、eigrp默认路由配置


     (config)#ip default-network  {network-number}    //要把此默认网络号通告给整个自主系统内的其他路由器,自主系统内的其他路由器才会将此默认路由作为最后网关。
    (config)#route eigrp {as}
     (config-route)#network {网络号}
例:

   (config)#router eigrp 100                 //自主系统100
    (config-router)#network 192.168.9.0       //把网络192.168.9.0通告到eigrp自主系统内
   
    (config-router)#network 172.21.0.0       //把默认网络号通告到eigrp自主系统内。这一步很关键
   (config-router)#network 0.0.0.0         //把默认路由通告到eigrp自主系统内。
  
    (config)#ip default-network 172.21.0.0   //配置默认路由。但必须在前面把此默认网络号通告给自主系统。
   (config)#ip route 0.0.0.0 0.0.0.0  interface s0  //配置静态路由 
    (CONFIG)#ip route 172.21.0.0 255.255.0.0 172.21.1.1    //静态路由

3、路由汇总


  默认情况下,eigrp自动在主网络边界汇总路由。可以用  no autosummary 命令关闭这个特性。
  可以网络内部的任何地方配置eigrp汇总路由
 
 (config-route)#no auto-summary    //在路由进程下,关闭路由自动汇总

(config-if)# ip summary-address eigrp {as} {address} {mask}    //可使用这个接口命令,在网络的任何地方手工创建汇总路由。尽量一台路由器连接连续的子网地址、

例 :

    (config)#router eigrp 100
    (config-router)#network 10.0.0.0
    (config-router) no auto-summary                                    //关闭路由汇总
    (config)#interface s0
    (config-if)#ip address 192.168.9.1 255.255.255.0                  //配置IP地址
    (config-if)#ip summary-address eigrp 100 172.16.0.0 255.255.0.0    //手工汇总

4、eigrp负载均衡:

   路由器在其离目标网络的距离相同的所有网络端口之间分配数据流的能力。
   默认最多在4条等成本路径之间均衡Ip负载

  (config)# router eigrp 100
  (config-rouuter)# maximum-paths  {1-6}    //配置负载均衡路径的条数,最多6条,默认为4条。当配置为1时,则关闭负载均衡
  (config-router)# variance {multiplier}   //配置候选路径的可行性乘数。默认是1,即等成本负载均衡。范围是1-128
 (configrouter)#traffice-sharp [balanced|min] //balanced,即按照 度量值的比例 分配流量。 min即只用最小度量值路径,即没有负载路径了。
    确定负载路径的方法:
          
      A(本地路由器)到目标网络的总度量值,必须比A到下一跳路由器到目标网络的度量值大。(这样确保无环)
      A(本地路由器)到目标网络的最小度量值*multiplier的值,必须比A到相邻路由器(下一跳路由器)再到目标网络的度量值大。

     此参数的目的是,可以配置不相等的成本路径做为负载均衡路径,即在一定范围内的度量值的都可做为负载均衡路径。


5、eigrp和wan链路(管理EIGRP带宽的利用)

    用bandwidth命令调整带宽后,有可能出现更新所占的带宽整个接口带宽还高的情况。
   
    (config)#interface so
    (config-if)#bandwidth 1544  //强制调整 接口的带宽为1.544M
    (config-fi)#delay {seconds} 
   (config-if)#ip bandwidth-percent eigrp 100 2   //设定eigrp可用的路由更新的带宽比。默认为占用带宽的50%。  此处是eigrp进程100可用于更新的带宽为接口带宽的2%。
   
6、(config-if)# no ip split-horizon eigrp 100   //关闭eigrp的水平分割

7、主动和陷入主动

   (1)主动状态:路由器在失去后继路由器且拓扑表中没有可行后继路由器时,将进入主动状态,寻找替代路径。
   (2)陷入主动状态:在主动状态的路由器会向所有邻居发送查询消息,以查询到目的网络的路由。如果在3分钟内(默认时间)没有收到对查询的应答,则路由器进入陷入主动状态。(SIA)

                      陷入主动状态的路由器,路由器将重置与未应答的邻居之间的邻接关系。这将会使路由器将从这些邻居那里获得的所有路由都置为主动状态,并将所知的路由重新通告给该邻居。限定查询有助于减少SIA。
   


   (config-router)#timers active-time [time-limit|disabled]   //修改陷入状态的时间。time-limit为分钟。 disable为禁用。
   (config-router)#eigrp log-neighbor-changes   //记录EIGRP邻居变化

8、限制eigrp查询范围

   有两种方法:一种是在出站接口上用汇总命令;另一种是把路由器配置为末节路由器

  (1)在合适的路由器出站接口上使用汇总命令


       (config-if)# ip summary-address eigrp {as} {ipaddress} {mask}   

        仅当路由选择表中包含了与目标网络完全匹配的条目时,路由器才会传递查询信息。
       
        例:当路由器A一个接口连接了路由器B,路由器B连了一个网络192.168.9.0,而另一个接口连接了路由器C,路由器C连了一个网络172.12.0.0
            路由器A对路由器B连的网络192.168.9.0做了路由汇总为,192.168.0.0,并把192.68.0.0的汇总路由传给了路由器C。
            当路由器A与路由器B连接中断时,会陷入主动状态,向路由器C查询到达网络192.168.9.0的路由,但路由器C只有到达192.168.0.0这个经过汇总后的网络的路由,
            因为只有当完全匹配时才会传递查询消息,即使子网掩码不同也不会传递。所以路由器C会传给路由器A说查找不到这个网络,没有失效网络的替代路径。


  (2)将远程路由器配置成末节EIGRP路由器
      末节路由器将所有数据流都转发给中央路由器,不保存完整的路由选 择表。中央路由器将一条默认路由通告给末节路由器
      只有远程路由器配置为末节路由器,中央路由器不可以配置。
      末节路由器可以防止远程路由器将从中央路由器获得的路由通告给其他中央路由器。但是不能防止路由被通告远程路由器。
      末节路由器向所有邻居路由器发送特殊消息,指出自已是末节路由器,邻居路由器收到消息后,将不向末节路由器查询任何路由,与末节路由器相连的中央路由器代表末节路由器对查询做出回答。
    
(CONFIG-ROUTER)#eigrp stub [receive-only|connected|static|summary]     //把路由器配置成为末节路由器

    receive-only:禁止路由器同eigrp自主系统内的任何路由器共享共路由。因为它禁止发送任何类型的路由。定义此关键字,不能定义其他关键字。

    connected:选择性发送直接路由。如果直接路由没被包含在network中,则需要redistribute connected来重新分发直连路由。默认是启用的。
    static:允许末节路由选择性发送静态路由。同要需要在eigrp进程下用redistribute static命令来分发
    summary:允许末节路由选择性的发送汇总路由。
    connnected  static summary这三个参数可以同时使用。