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

1.7-BGP①的更多相关文章

  1. 1.7-BGP⑥

    BGP中的路由控制/过滤: LAB1:Distribute-list调用ACL(较落后) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      Step1:通过ACL定义 ...

  2. 1.7-BGP⑤

    BGP Attributes/BGP属性 (通过BGP的属性,实现对BGP路由的选择/操纵) BGP Route Selection/BGP的选路原则: 1: The BGP forwarding t ...

  3. 1.7-BGP④

    注意:默认路由ip route 0.0.0.0 0.0.0.0 12.1.1.1是不可以作为BGP邻居TCP始发连接的(但回包可以) 要配静态路由:ip route 13.1.1.3 255.255. ...

  4. 1.7-BGP③

    IBGP的水平分隔原则(Split Horizon Rule): IBGP的水平分割原则:by default,routes learned via IBGP are never propagated ...

  5. 1.7-BGP②

    BGP的更新源(BGP Neighbor Update Source Address): 原则1: 在默认情况下, BGP路由器以自己路由表中,到达对方BGP邻居的地址的那条路由所指示的出接口(物理接 ...

  6. BGP路由协议详解(完整篇)

    原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...

  7. 边界网关协议BGP

    Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...

  8. 1.4-动态路由协议OSPF④

    多区域的OSPF: 划分多区域的主要目的: 1.减少每个区域中的路由条目,进而减少每个路由器的内存中的路由,及其内存消耗,提高转发效率. 2.因为每一个OSPF区域对应在一个OSPF LSDB,配合在 ...

  9. BGP MPLS IP V匹N基本概念

    BGP/MPLS IP VPN基本概念 Site 在介绍VPN时经常会提到"Site",Site(站点)的含义可以从下述几个方面理解: · Site是指相互之间具备IP连通性的一组 ...

随机推荐

  1. WordPress腾讯云存储搭建教程,完美解决

    写在前面的话: 为什么会有今天的话题:WordPress+腾讯云存储? 因为博主不想使用七牛云,也不想使用又拍云,所以才有了今天的话题. 在使用腾讯云存储的过程中是很不顺利的,万幸的是现在终于完美融合 ...

  2. (1)麻省理工:计算机科学和 Python 编程导论

    本门课用的语言是python2.7,我的主要学习语言是C++11,所以不是特殊说明,则认为和C++中的是一样的(不管是语法还是表达式),当然,也有我不懂而错认为与C++一样的东西~ Week1 第一讲 ...

  3. 上传一个npm包

    1.先创建一个npm账号 https://www.npmjs.com/signup 2.在cmd里输入命令进入项目文件夹 3.使用npm init 命令创建一个package.json(确保nodej ...

  4. PendingIntent 显示通知

    安卓显示通知 PendingIntent pendingIntent=PendingIntent.getActivity(Media.this,0, new Intent(Media.this,Med ...

  5. UVM基础之---------Reporting Classes

    Reporting 类提供了一组工具用于格式化报告输出 report机制大概包括四个主要的类uvm_report_object,uvm_report_handler, uvm_report_serve ...

  6. js获取微信版本号的方法

    微信现在几乎已经普遍在使用,但是微信版本一直在更新,不同的版本有不同的功能,于是了解微信的版本号很重要,以便自己及时更新体验新的功能.那么如何用js获取微信版本号呢? 一.判断微信版本号 ? 1 2 ...

  7. python多进程和多线程编程

    17 多线程和多进程并发 The modules described in this chapter provide support for concurrent execution of code. ...

  8. HDU - 2044 - 一只小蜜蜂...(dp)

    题意: 如题 思路: 仔细观察图 1-4和3-6其实是一样的答案,那么所有的方案都可以相减,意思为全部转化为从1开始 剩下的就是观察规律,仔细观察5号,能到5号蜂房的只有3和4,3和4到5号蜂房只有一 ...

  9. 1054.求平均数-PAT乙级真题

    从其他博客优秀代码中学到了些技巧,记录一下. 思路:使用sscanf和sprintf函数. sscanf() – 从一个字符串中读进与指定格式相符的数据 sprintf() – 字符串格式化命令,主要 ...

  10. Linux---shell基本指令

    1. 显示当前目录 pwd wangzhengchao@ubuntu:~$ cd /home/wangzhengchao/Desktop/ wangzhengchao@ubuntu:~/Desktop ...