zoukankan      html  css  js  c++  java
  • 1.7-BGP①

    IGP
      包括RIP/EIGRP/OSPF/ISIS/ODR等动态路由协议
      运行在同一个AS中,
      通过Cost/Metirc来判断路由的优劣(越小越好);
      AS:自治系统()
      An AS is a collection of networks under a single technical administration.(独立的一个技术/管理域)
      IGP主要任务
      正确的描述路由信息和尽快的将数据包送到目的地:
      IGP强调收敛速度。
    BGP(v4) 
    边界网关协议Border Gateway Protocol)
    运行在不同的AS之间,用于对BGP路由进行控制/策略,
    BGP的主要任务:网管的人为意图的集中体现,强调策略控制,不强调收敛.
    BGP是通过BGP属性/Attributes,判断多条路径的优劣,从中进行择优选取.
    BGP可以通过网管定义的策略/Policies,实现数据或路由的控制/操纵.
    自治系统AS:(autonomous Systems)()
    独立的技术/管理域,通常是一个大型公司,或者组织,或者国家.
    这是区别于IGRP/EIGRPAS()的概念;
    BGP本身就是一种策略路由/PBR(Policy-Based Routing)
    实现网管的人为意图的集中体现.
    BGP是一种AS BYAS的高级距离向量/DV协议.
    BGP认为,每经过一个AS是一跳
    RIP认为,每经过一个router是一跳
    应该使用BGP的情况:
    1:ISP:
    当允许AS 1 的数据包穿越AS2,
    但是不允许AS 1的用户访问AS2内部的时候:
    2:Multihome/多宿主:
    对于一个用户的AS,如果他同时连接到多个AS/ISP
    3:PBR:
    当需要对BGP路由/数据,进行人为控制/操纵的时候.
    不该使用BGP的情况:
    1.ISP只有单连接,没有同时连接到多个ISP
    2.如果网络硬件设备的档次不够(内存/CPU).
    3:BGP路由操纵理解有限,无法预计BGP的后果.
    4.链路带宽不足.
    BGP特征:
    1:BGP高级DV协议.
    2:BGP工作在TCP/IP协议栈的4:TCP179端口.
    3:BGP触发/增量更新的协议
    4:BGP通过周期性的发送Keepalive信息,保证TCP连接的可靠性.
    5:BGP使用多种"BGP属性/Attribut",来衡量路径的优劣.
    6:BGP是为巨型网络设计的,意味着这种路由协议,可能带来海量的路由和数据.
    BGP协议的三张表:
    1:BGP邻居表(BGP neighbor table)
    BGP的邻居可以直接相连,也可以凌空建立.
    2:BGP(BGP forwarding table/database)
      2-1:一个BGP路由器,可能从它的多个BGP Neighbor那里,学到到达同一个目标网络的多条可能路径.
      2-2:但是,BGP这种路由协议,默认情况下,是不进行负载均衡的.也就是说,到达一个目标网络,只允许有一条可用路径.
      2-3:BGP路由器通过"BGP属性",从中多条候选路由中,选出一条,它自己认为最好/最优/Best的路径,作为到达这个目标网络的"最佳路由",这条路由也会被称之为"优化".("优化"的路由,会标打上">")
      2-4:只有"优化"了的路由,才能作为BGP选送出的,最佳的,种子选手,去参加,到达这个目标网络(10.0.0.0/8)"AD竞争/竞选."
    3:IP路由表:
    上面BGP提交"优化/最佳"路由,在经过不同寻路协议之间的"AD的竞争/竞选"之后,如果获胜,才能成功的送进路由表.
    BGP4种信息包类型:
    1:Open
    2:Keepalive
    3:Update
    4:Notification
    Peers=neighbors
    Any two routers 
        that have formed a TCP connection, 
            to exchange BGP routing information, 
                are called BGP peers or neighbors.
    1:EBGP Neighbor
    两个BGP Neighbor分别属于两个不同的AS.
    EBGP Neighbor通常是直接相连的.(也会有特例哦,CCSP才会遇到这种非直连的情况)
    2:IBGP Neighbor
    两个BGP Neighbor同时属于一个相同的AS.
    IBGP Neighbor可以是直连的,也可以是非直连的.
    BGP的操作步骤
    1:确认L1/L2连路通(通过Ping,进行链路测试)
    2:确认L3IGPROUTE通过(Show ip route rip/eigrp/ospf)
    3:启动BGP,建立BGP邻居(TCP179(show ip bgp summary)
    4:宣告BGP路由(network 1.0.0.0 mask 255.0.0.0)
    5:判断BGP优化的基础条件(同步,下一跳) 
    LAB1BGP的基本配置:
    Step1:确认L1/L2的连通性.
    可以通过Ping,进行链路测试.
    Step2:确保L3IP路由的通达(是通过IGP实现):
    (一般都是在同一个AS中完成)
    (两个AS之间是不运行IGP的)
    AS123中的所有路由器(R2/R3),运行IGP:RIP V2
    R2/R3#
    router rip
    version 2
    network 23.0.0.0
    no auto-summary
    测试L3IGP网络(ping)
    show ip route rip
    step3:启动BGP,并且立刻指定全局唯一的bgp router-id.
    R2(config)#router bgp 123
    R2(config-router)#bgp router-id 123.0.0.2
    Step4:构建BGP Neighbor
    R5-R3 EBGP
    R5(config-router)#neighbor 35.0.0.3 remote-as 123
    R3(config-router)#neighbor 35.0.0.5 remote-as 150
    R3-R2 IBGP:
    R3(config-router)#neighbor 23.0.0.2 remote-as 123
    R2(config-router)#neighbor 23.0.0.3 remote-as 123
    R2-R4 EBGP:
    R2(config-router)#neighbor 24.0.0.4 remote-as 140
    R4(config-router)#neighbor 24.0.0.2 remote-as 123
    Step5:观察BGP邻居建立的过程,及其经历的5个状态:
    R4#debug ip bgp 观察BGP邻居建立的过程,及其经历的5个状态:
    1-1:Idle:router is searching
    1-2:connect:Completed three-way TCP 179 handshake.
    1-3:Open sent: Open message sent
    1-4:Open confirm:router received agreement
    1-5:Established: Peering is established;BGP Routing begins!!
    R5#show tcp brief(察看TCP连接的摘要信息)
    Local Address           Foreign Address                  (state)                 state/PfxRcd
    35.0.0.5.11001          35.0.0.3.179                    ESTAB                          收到的路由条目
    R5#show ip bgp summary(察看BGP邻居的简要信息)
    BGP router identifier 150.0.0.5,local AS number 150
    Neighbor          V                   AS       ***********                  State                            / PfxRcd
    35.0.0.3          4                  123       * *    *           (如果邻居已经建立好了,这里必需空白)  / 0(收到的路由条目)
    18.0.0.8          4                  100       * *    *                                                                 / 3
    0:没有从这个邻居收到BGP路由,但是和这个邻居的BGP邻居关系已经建好了.
    3:从这个邻居收到三条BGP路由,同时和这个邻居的BGP邻居关系已经建好了.
    Step6:通过 network 命令,宣告BGP路由
    BGP Network配置:
    R5(config)#router bgp 150
    R5(config-router)#network 105.5.0.0 mask 255.255.0.0
                                           (接口所在的网络号) (这个网络的准确路由长度)
    network命令的含义:
    IGP:
    1:激活接口,在这个接口中运行此IGP路由协议.
    (IGP,路由协议是向运行的接口发送路由更新)
    2:这个路由器的IGP路由协议,正在为此接口所在的网段进行路由.
    BGP:
    1.这个路由器的BGP路由协议,正在为此BGP网段进行路由.
    (BGP,BGP路由协议是向BGP Neighbor发送路由更新.
    所以,没有了"激活接口"的含义)
    BGP路由器上,检查自己的BGP路由,是否已经成功地宣告到BGP进程中:
    R5#show ip bgp (察看BGP,BGP数据库)
         Network                  Next Hop(是指更新源)
    *>105.5.0.0/16              0.0.0.0(源自本路由器)
    * valid
    > best
    0.0.0.0 表示下一跳为0
    R3#sh ip bgp
          Network            Next Hop                          Metric LocPrf  Weight  Path
    *   i104.4.4.0/24     24.0.0.4(源自AS140                 0       100       0     140 i
    *> 105.5.0.0/16     35.0.0.5(源自AS150                 0                    0     150 i
    BGP 属性:
    Metric:MED
    LocPrf :local preference
    Weight
    Path: AS Path
    Origin codes: i (表示使用Network命令,宣告到BGP中的)
    R2#sh ip bgp
       Network          Next Hop            Metric   LocPrf   Weight Path
    *> 104.4.4.0/24     24.0.0.4                         0                   0    140 i
    *   i105.5.0.0/16     35.0.0.5                         0      100       0    150 i
    step7:EBGP邻居的路由优化问题:
    BGP路由优化必要条件(注意是必要而不是充分)
    1:下一跳问题:
    BGP路由的下一跳是其直连路由,
    ∴不存在下一跳不可达的问题.
    (整个AS140中的100个路由器,察看到这条BGP路由的下一跳都是:24.0.0.2)
    (整个AS123中的100个路由器,察看到这条BGP路由的下一跳都是:35.0.0.5)
                                                                                             其下一跳保持为相邻的AS的边缘节点(35.0.0.5
    2:同步问题:
    对于EBGP邻居,
    ∵无需遵循同步规则,
    ∴没有同步问题!!
    结论:对于EBGP,只要是从EBGP邻居那里传来的路由,
    在不考虑其它BGP属性的情况下,是肯定可以优化的.
    注意:只有已经优化了的BGP路由,才能进入IP路由表。
    Step8:IBGP路由的优化
    BGP路由器,把自己学到的BGP路由,转发给别的BGP邻居的必要条件:(R3)
    每个BGP路由器,对于特定的某条BGP路由,
    必须是自己已经优化的路由,才具备转发给别的BGP邻居的能力.
    注意:
    这是必要条件,不是充分条件!!!
    这意味着:即使自己已经优化,但此路由器,可能转发,也可能不转发.
    察看R3R2发送了哪些BGP路由条目:
    R3#show ip bgp neighbors 23.0.0.2 advertised-routes
    IBGP路由的必要优化条件:(以下是必要条件,而不是充分条件)
    1:下一跳可达
    2:路由的同步
    8-1察看R2,R3没有作任何更改前,当前的BGP路由:
    注意观察:
    1:本路由器R2,是否能够到达这条BGP路由的下一跳?
    (R2,观察从R3这个IBGP邻居获得的BGP路由)
    R2#show ip bgp
        Network                 Next Hop
    * i105.5.0.0/16           35.0.0.5
                              当前下一跳它不可达
    解决方案:
    R3(config)#router bgp 123
    R3(config-router)#neighbor 23.0.0.2 next-hop-self
    R3#clear ip bgp *soft out(软清除,避免收敛速度过慢)
    R2#show ip bgp
          Network          Next Hop            Metric LocPrf Weight Path
    *>i105.5.0.0/16     23.0.0.3                          0    100      0 150 
                     当前的下一跳是可达的,所以是最优的
    8-2:同步问题(在新版的IOS里面,默认是关闭同步的)
    (本质:R2是否能够通过IGP,得到这条105.1.0.0/16路由)
    所谓同步,是指:
    如果R2能够通过IGP(RIP),学到这条路由(105.5.0.0/16),那么就同步.
    (也就是:满足同步要求).(无论此路由是否本AS或者其他AS
    如果R2不能够通过IGP,学到这条路由(105.5.0.0/16),那就不满足同步,(也就是:不满足同步要求).
    BGP路由器,对于从IBGP邻居学到的路由,默认要求同步.
    但是,
    ∵实际上R2是不可能通过IGP,学到另外的一个AS中的路由.
    ∴只能关闭同步规则,也就是不遵循同步规则.
    解决方案:关闭同步规则:
    R2#
    router bgp 123
    no synchronization
    Step9:检测各路由器能否通达
    EBGP
    R3#show ip bgp
              Network                     Next Hop
    *>   105.5.0.0/16                35.0.0.5
    R3#show ip route
    B    105.5.0.0 [20/0] via 35.0.0.5,
    IBGP:
    R2#show ip bgp
          Network                   Next Hop
    *>i105.5.0.0/16                 23.0.0.3
    R2#show ip route
    B      105.5.0.0 [200/0] via  23.0.0.3




  • 相关阅读:
    Oracle数据库对表字段的操作命令
    解决eclipse中git中cannot open gituploadpack(无法打开Git上传包)问题
    C# 启动外部程序的几种方法
    php面试题及答案(转)
    每日知识(1)半结构化数据
    每日知识(2)云计算
    方法对象
    什么是MA移动平均线它的特点及应用
    My first testcase about C#&C++
    局部变量的角色
  • 原文地址:https://www.cnblogs.com/sanyuanempire/p/6154996.html
Copyright © 2011-2022 走看看