CCNP学习笔记2-路由部分--EIGRP

EIGRP   



◆回顾动态协议:

            RIP                                  EIGRP                        ospf

封装       UDP 520                              IP 88                        IP 89

更新地址   224.0.0.9                           224.0.0.10               224.0.0.5/6

      使用passive实现单播   两端互指neighbor和出接口实现单播  NBMA 点到多点非广播单播键邻居

更新方式   完整,定时30秒 15%偏移,触发        增量更新,触发           定时30分钟 触发

AD         120                                 5  90  170                        110

度量       跳数                                5个K值 默认(带宽 延时)      带宽

                 BGP

封装           TCP 179 

更新             单播 

更新方式      增量 触发


 ■  RIP没有邻居的概念,只靠更新

     OSPF的网络类型决定了更新方式(组播,单播),

               网络类型由二层链路对应关系决定的:

                                广播型-以太网

                                P-2-O--ppp HDLC 帧中继的子接口

                                NBMA---帧中继的子接口和多点子接口

                                点到多点和点到多点非广播没有二层对应关系,是工程需呀开发的


◆EIGRP特点

    高级距离矢量协议

    快速收敛 ----------DUAL算法

    支持VLSM CIDR;对比RIP 不支持产生一条CIDR路由,但是支持传递一条CIDR,rip接口下ip rip                               summary address x.x.x.x,这种方式不能用超网,但是可以本地生成一                             条超网重分布到rip转发

    部分更新

    支持多种网络层协议-IP IPX等。。

    灵活的网络设计

    支持组播,单播更新--neighbr + 本地出接口

    支持路由手动汇总  汇总默认开启  对比BGP默认关闭自动汇总

    100%无环路(任何单一配置动态协议都是无环路的,重分布就不一定了)

    配置简单--hello时间(默认5秒)dead时间(15秒),在低速链路MA网络,hello60秒dead3倍hello

              也是自动的。

  ★支持非等价负载均衡


◆EIGRP 核心技术

    - 邻居发现和故障恢复

        邻居间使用hello(3个项目 AS号 ;认证 ;K值)

            ■建立邻居:

                       hello匹配三项(AS号,认证,K值),相同就建立了;K值,默认带宽和延                          时,但是若修改了两位3个K值,而另一端还是默认,邻居就无法建立。

                            

             无法建立邻居:1,认证两端密码不同

                           2,ACL没有放开eigrp流量,考试时考官会做。

                           3,帧中继网络中,没有起组播(指neighbor+broadcast),而eigrp是组                               播更新,所以导致无法键邻居。

                           4,一端单播指邻居,而没有指另一个对端时

                           5,hello包问题。 

    - 可靠的传输协议(RTP)理解为eigrp的一个可靠传输的技术

        保障eigrp报到达所有邻居,原理类似TCP,发送一个数据包打序列号,对端确认,若不确认就         重传(最多重传16次)

        ★eigrp有5种报文,

                hello 建立邻居

                update 发送更新路由

                query 询问邻居关于某个目的地的路由信息

                request 应答响应查询包的详细路由信息

                ACK 确认可靠的数据包

          只有上述中间3种是可靠包,

                A --UPDATE/Query/Request--> B A <--ACK-- B 

                    第一个包组播发给B,若B没确认,A就单播重传给B,而且重传不是由进程传送,                      而是复制一份重传的报文,放到接口,由接口重传(16次)。16次没有ACK就当                      掉邻居关系。A再收到B的hello邻居又会起来,AB之间就会不停up/down.后期再                      详细说如何解决 

    - UUA有限状态机

        为每个目的选择最佳无环路径

           最重要2点:

                    1,本地拓扑表保存去往所有目的的路径,计算出successer,并且根据符合FC,                      可能会选出feasible successer.当successer当掉,feasible successer会马                       上成为successer,不会像邻居发送查询。

                    2,当没有FS 时,successer当掉,路由器会向所有邻居查询,当收到所有查询                            的回复后,重新确定路径才好收敛

    - 协议无关模块(PDMs)

        eigrp支持IP IPx appleTalk

        每个协议都有自己的eigrp模块,并且独立其他模块。


◆EIGRP 5种报文

    

            hello 建立和维持邻居 (对比BGP建立邻居用open 维持用keepalive)

                  HELLO:5秒 hold:15m秒 ;小于1.544M HOLD:60秒

                update 发送更新路由

                query 询问邻居关于某个目的地的路由信息 (在successer丢失且没有fs时产生的)

                reply 应答响应查询包的详细路由信息 (对query的回应)

                ACK 确认可靠的数据包

                    当收到query后,先确认ACK,然后在回应reply

  network 在IGP作用:1,把接口路由通告出去。2,确定本地路由从哪些接口通告出去

          

EIGRP 的3张表

    

  ■邻居表            


next-hot router interface

收到一个hello包(3个因素AS号,认证,K值)并匹配对应因素, 就产生一条邻居表项


  ■拓扑表


destination 1  FD(最优路径本地到目的的距离) & AD (最优路径本地的下一条到目的的距离)via each neighbor

把所有邻居产生的路径都放到拓扑表,包括来自不同邻居去往相同目的多条路径


  ■路由表


destination 1 best route

根据拓扑表,计算出最优路径


wKiom1Y9sHeARJMZAAOEAIia80s817.jpg

◆DUAL术语

    AD 邻居到目的的成本

    FD 本地到邻居+AD

    FS 次佳路径的下一跳邻居

wKioL1Y9sjPB8RFSAAOY_3GEt-Q852.jpg



◆EIGRP 度量

    带宽    k1  选择沿途路由入接口带宽最小值 ,kbps

    延时    k3  沿途路由的入接口的延时总和 ,微妙

    可靠性  k4

    负载    k2

    MTU     k5

 度量计算公式 ( 10~7 / 最小带宽 + 延时之和 / 10 )* 256

   wKioL1Y973rg0fJuAAB5uhvAxjo584.jpg       

修改度量方法:

       1.带宽:修改路由入接口带宽 接口下 bandwidth XXX 单位bit ;eigrp的管理流量占带宽的1/2

       2,延时:修改路由入接口延时 接口下 delay 10 微妙

       3,偏移列表:修改路由入方向,例如要再R1看到R3的度量,方向就是R3->R2->R1,要在R1看效果就要在R1 F0/0 或 R2 f0/0做offset-list

                  步骤 1,使用ACL 抓出要匹配的网段 

                            access-list 10 permit 33.1.1.0

                       2,eigrp进程下 offset-list + acl号(0表示所有路径)+ 方向in + 要增加                           的度量值 + 入接口                    

                            router eigrp 10

                              offset-list 10 in 13120 fastethennet 0/0  

 

 ◆wKiom1Y93lzy5uzjAAEgOMzdA18472.jpg

hold hello时间3倍 15秒 在10-15之间波动 因为hello 5秒刷新一次

seq 最后一个可靠包数

Q   接口是否有队列 0:正常 。非零状态有两种:1,接口带宽不够。2,可靠报文需要重传时,需要重                                                 传的报文放到接口,此时为 1 

SRTT 平滑过渡时间。每发送一个可靠报文到对端回复ACK的时间

RTO  超时重传时间


◆show ip protocols 可看in out是否做策略,最大跳数100 ,非等价负载均衡,最大负载均衡的数量(默认4),宣告的路由,最后一次从哪些邻居收到的路由。


######################################################

######################################################

######################################################


###################################EIGRP 高级选项 ########################################

##########################################################################################

    产生默认路由

回顾RIP 产生默认的 5 种放法

 1,进程下 default information originat

 2, 全局下写一条  静态 重分布到RIP

 3,全局下写一条 静态 写法是指出接口 然后把接口宣告到RIP里.(产生问题:宣告0.0.0.0会把所有                                                              接口都宣告进去)

          ip route 1.1.1.1 255.255.255.255 f0/0

          int f0/0

              ip add 12.1.1.1 255.255.255.0

          router rip 

            network 12.1.1.0 

 4,全局下 ip default-network 172.131.0.0

 5,先手工创建默认路由到NULL0,然后在想传送默认路由的接口下手工汇总默认路由 ip summary-address rip 0.0.0.0 0.0.0.0

http://blog.sina.com.cn/s/blog_b38a88740101516y.html


                     ####################################

                     ##◆   EIGRP产生默认路由方法:  ##

                     ####################################


  1,使用 ip default-netwok 下放缺省

     首先,本地有一条主类路由 (两种方法)

     1.1 写一条主类静态 ip route 172.31.0.0 255.255.0.0 172.31.1.1(实验中写对端地址不生                                                                       效,写出接口才生效)

     1.2 本地一条直连的主类路由 

    其次,要把主类路由宣告进EIGRP router eigrp 10

                                    network 172.31.0.0

    最后,全局下  ip default-network 172.16.31.0.0

    这样其下连接并运行的eigrp的路由器才好自动产生一条到达172.31的默认路由 D* 172.31.0.0/16           .....

    这种方法不推荐。。!!!!因为必须有主类路由


   2,重分布方式:

        2.1 远端 R3 写一条 缺省指向null 0 

                ip route 0.0.0.0 0.0.0.0 null 0

        2.2     eigrp进程下 把静态重分布进去 

                router ei 10

                    redistribute static

        R1 看到一条 D*EX  问题是这条缺省的AD比较大 是170


   3,进程下宣告一条已经有的的缺省

        ip route 0.0.0.0 0.0.0.0 null 0

        router ei 10

            net 0.0.0.0 

        远端show ip route 可看的一条D* 0.0.0.0/0 的缺省 AD是90

     注意:这种宣告 net 0.0.0.0 会把本地所有路由都宣告进eigrp进程了


   4,用汇总方式产生

        注意这种方法和以上3种相比 是有方向的

        4.1 接口宣告进eigrp

        4.2 接口下 ip summary-address eigrp 10 0.0.0.0 0.0.0.0


############################################################################################

                 ######################

                 ## EIGRP 的自动汇总 ##

                 ######################


eigrp 默认开启自动汇总 ,但是开启后,将不支持 不连续的子网。

    

◆ 对比rip自动汇总,搞清3个问题

    1,汇总哪些路由 

           rip :汇总所有 (本地产生;重分布进rip;从rip学习到的)

           eigrp: 只汇总本地network的路由

    2,汇总到多少位的长度掩码 

            汇总到主类网络 rip eigrp相同

    3,在哪汇总 rip eigrp相同

            在主类网络的边界汇总(边界指的是主类网络边界。边界内就是你连续的子网,即使汇总                                   也是传递明细路由)

   主类网络边界:

        R1---------R2--------R3

        R1 loopback :1.1.11.1/24;R2 Lo0 :1.1.22.1/24;R3 lo0 :1.1.33.1/24

        R1 R2 1.1.12.0/24

        R2 R3 1.1.23.0/24

   上述所有路由器都在1.0.0.0/8 的主类网络中

   如果R2------R4 R2 R4之间是 24.1.1.0、24的网段,此时,R1 R2 R3就传递明细 R2连接R4的接口就是主类网络1.0.0.0/8的边界

   

eigrp RIP 开启自动汇总 将 不支持连续子网

wKiom1Y--6KBl-lqAAEDWIFZ2mw720.png

上图中,R2看R1 R3的环回口都是主类网络边界,所以R2只会收到1.0.0.0/8的路由,所以无法分辨去往1.1.11.0和1.1.33.0的路由。可能会造成去往1.1.11.0的数据发给1.1.33.0。


 eigrp 手动汇总:


   特点:

       1, 支持接口上汇总 (路由的出出接口;对比修改带宽在路由的入接口)

           ip summary-address eigrp 1 11.1.0.0 255.255.0.0

       2,在一个接口创建了一个汇总以后,自动创建一个这个汇总指向null 0 的条目,以避免环路。

null 0 就是一个垃圾桶,当路由吓一跳指向null 0就会被丢弃;

本地汇总就会在本地自动生成把该汇总指向null 0的路由,且AD=5,保证最先匹配然后丢弃,来防止环路。

        show ip route 11.1.0.0 255.255.0.0 看到null0的distance AD=5

       3, 当每一条具体的路由都不可达后,自动汇总自动删除

       4, 执行汇总的路由器自动为该汇总生成一个度量值(是根据所有明细中最小的那个度量值)

       5,会抑制所有明细。


#######################################################################################

                          ###############

                          ## 负载均衡 ###

                          ###############

非等价负载均衡实验:

wKiom1Y_G1uglJiJAADDfvRypAU247.png

步骤

    1,启用IP 

    2,全网启用eigrp;可看的R2 R3负载均衡

    3,修改R2 F2/0接口delay

    4,eigrp 进程下 输入关键字 variance + 倍数

        (条件:非等价的链路必须遵循FC条件,即次优路径AD小于最优路径的FD)

        router eigrp 1

            variance 2 (倍数选择:最优的FD乘以倍数要≥次优的FD)

    5,R2 sho ip ro 33.1.1.0 中的share count  可看负载分配比例


#################################################################################################################################################################################################

                             ## 配置eigrp广域网链路 ##

                             ######################

EIGRP支持不同类型的广域网链路

    点到点链路

    NBMA{ 多点链路

        { 点到点链路        

EIGRP的管理流量默认使用带宽的 50% 。可以手工修改比例

所以当在广域网配置eigrp时 就需要考虑低速链路的一半带宽,对eigrp是否够用,且还要保证eigrp工作的最低带宽需求,最大又不能让eigrp路由占满带宽,需要给流量流出带宽空间

◆实例:

      当A和B之间使用的是T1链路,带宽是1.544M,但是公司可能只购买了32K的带宽,而eigrp是根据       链路带宽自动最大占用一半的,即默认会占用大概700多K,超过了实际购买的总带宽,所以在         eigrp更新时会占满带宽,链路的其他流量就会拥塞。

      此时就需要手工修改抽口带宽:接口下 bandwidth 32


◆广域网接口带宽的使用

    ●在帧中继中 广域网接口的带宽的利用

        - 默认带宽是T1 (1.544M)

        - 可以再每个PVC中手动配置带宽

    ●在frame relay,ATM,ISDN PR 这样的多点网络总

        - eigrp 使用物理接口的带宽除以邻居的数量(比如在MA网络中使用的链路是100K,所以默认就会使用50K,同时到达MA分支时还要平均分配带宽,即当一对二的NBMA网络中的 每个链路的带宽就是25K)

                        interface serial 0/1 multipoint

                                bandwidth 768

MA网络 就是一个物理接口对应对端多个物理接口

                 

######################################################################################################## EIGRP 认证 ###############################################################################

- 许多路由协议支持验证,路由器验证他所收到的每个路由更新数据包

推荐使用MD5 明文抓包就能看到密码

- 支持明文认证的协议有

        is-is

        ospf

        ripv2

- 支持MD5认证的协议有

        ospf

        rip v2

        bgp

        eigrp

 

eigrp认证

                    eigrp准许利用秘钥链来管理秘钥

                    指定一个ID,以及这个钥匙可以用多长时间,认证双方keyID必须一致。

                    按照秘钥号码的高低来匹配有效的秘钥

               步骤

                        1,设置秘钥链 全局下key chain name-of-chain

                                            key key-id

                                            key-string text-密码

                        2,开启认证      接口下 ip authentication mode eigrp AS号 md5

                        3,调用秘钥链 ip authentication key-chain eigrp AS号 name-of-chain

     验证和排错认证:debub eigrp packets可以看到“received packet with MD5 authentication”

 

 

实验:拓扑 R1---------R2

          1,配置IP和loopback

           2, 启用eigrp

        ,实验1:模拟现实中实际带宽100M,而因策略接口被修改成1K,为了eigrp能正常运行(带宽的\                       1/2),修改eigrp默认占用比。

                       修改R1 接口带宽 为1

                                    int 1/0

                                         bandwidth 1

                                sho int

                                     int f1/0

                                           ip bandwidth-percent eigrp 1 100000 (带宽的倍数 这里就是表示100M)

        实验2: 认证

                                    key chani test

                                            key 1

                                                  key-string cisco

                                    int f1/0

                                             ip authen mode ei 1 md5

                                             ip authen key-chain eigrp 1 test                                    

 

          实验3: offset-list  在路由出方向和入方向修改FD 所对应修改的不同变量

                          1, R1 看 R2 loopback0 AD  ---   show ip eigrp topology                                                                      22.1.1.1(156160/128256)
                             将FD改为157000

                                入方向:router ei 1

                                           offset-list 0 in 840 fastethernet 1/0

                                    sho ip ei to 看看到FD变为157000 而 AD值没变

                          2,R2出方向 将FD改为 160000 观察22.1.1.1的FD AD变化

                                     出方向: router ei 1

                                                offset-list 0 out 3000 fastenternet 1/0

                                      R1 show ip ei to 可看到 22.1.1.1的FD增加3000是由AD增加了引起的

                              这样修改 就可以决定这条链路是否符合FC条件,参与负载均衡或非等价负载均衡


            

 #########################################################################################################EIGRP 查询过程 ##############################################################################

   当successor丢失 有FS 就立即 FS-->successor;没有FS 就像所有邻居发送查询

  - successor丢失且没有FS时 将进行查处工作

  - 这个路由条目将进入到主动状态 A 正常是P

  - 查询消息将在 出后继接口 的所有接口上发送个所有邻居

          R1  --request--> R2
                 <----ACK----

                  <-replay-----

  - 若一个邻居没有到达这个网络的信息时,将向他的所有邻居来查询(没有就一直扩散的网络边缘)

  - 若一个邻居有到达这个网络的信息时,他将应答这个查询消息,并停止查询消息在这个网络 的蔓延 

 

◆ 卡在  active 状态 SIA

  

   - 当路由器得到所有邻居的答复之后路由器将计算后继信息

   - 默认情况下,若邻居3分钟内不答复这个查询,说明发生了SIA,路由器将重置这个邻居的邻居关系


SIA 的解决方案

    路由器A 在活跃计时器一半时,发送一个SIA 查询。路由器B 应答查询,将继续保持邻居关系

    A------B-------C

  上图,若真正故障链路是BC,当A在1.5分钟发送 SIA Query 给B,B将恢复一个SIA Reply 给A,证明AB链路没问题,所以继续保持邻居关系。

        然后,B--SIA Query-->C ,此时BC故障,就断开链路。

解决办法1:stub (命令:边界路由器 进程下 eigrp stub)

            存根网络stub

    - 提高网络稳定性,降低了资源利用率,简化远程路由器处理过程

    - stub 网络使用在 hub-and-spoke 拓扑

    - stub 路由器发出了一个特别的信息包,向所有周边路由器报告路由器报告其存根路由器位置

    - 一个邻居收到了这位置通知,便不向这个存根路由器发送任何目的的查询信息了

解决办法2:汇总

    A-----B------C---D

  C发给B去往D的路由做了汇总,当CD断了后,B收到去往D的明细路由是,自己只有去D的汇总,就告诉C自己不可达到D.


debug eigrp packets query reply


wKiom1ZHBOGTUF6AAAAqId4qQd0475.png

实验:

     一, 汇总限制SIA

    1,配置IP R3启用两个loopback口

    2,全网启用eigrp

    3,R3 F1/0 ip summary eigrp 1 33.1.0.0 255.255.0.0

    4, R3 shut down lo0

    5, debug eigrp packet query reply 现象R2没有收到查询报文

     二,stub限制 SIA

    1,r1 进程下 eigrp stub

    2,R3 shut down lo0

    3, r1 r2 r3 debug eigrp packet query reply 现象 R3-->R2query R2--->R2 reply;

        同时R1失去R3lo0的路由(R2把R3lo0metric值置为无穷大发送update给R1),就像R2查询,R2向R3查询,R3回复R2回复R1。


###########################################################################################                          ########## EIGRP STUB #################

stub路由器不会把收到的路由发送给任何路由器。!!!

        本地:  network的

                直连的

                静态的

                重分布的

                汇总的会发送出去(根据自己控制)

     receive-only 不发送任何路由 , 只收不发。

     connected    发送本地直连路由

     static       发送自己静态路由(必须使用重分布)

     summary      发送汇总

     redistribute 发送重分布的

   默认是connected 和 summary。。

命令:

        进程下 eigrp stub receive-only | connected | static | summary


实验:也是用上图拓扑

    R1  启用loopback0 11.1.1.0 255.255.255.0

    R1进程下 分别指用 eigrp stub R2 看默认值

                      eigrp receive-only

                      eigrp connected

    R1 int f1/0 ip summary eigrp 1 11.1.0.0 255.255.0.0 ;eigrp summary

    R1 ip route 100.1.1.0 255.255.255.0 null 0

       roueter ei 1

            eigrp stub static

            redistribute static


实验 II

  Good bye消息

   当R1 把f1/0的宣告从eigrp进程中no掉,正常R2会等15秒(hold time)

   使用goodbye消息可以让R2马上知道R1断开邻居关系

   或 no 掉进程

   或 进程下passive-Interface f1/0

 注意:passive-interface 被动接口和RIP 不同,eigrp是不收也不发eigrp包。rip是只收不发。


 有两种不能发送goodbye 

     1,shut down 接口

     2,路由器突然断电


    单播建邻居。直连两个路由器必须都要配置

     R2   进程下 neighbor 23.1.1.3 F1/1

     R3   进程下 neighbor 23.1.1.2 f1/0

     


你可能感兴趣的:(EIGRP)