BGP-边界网关协议

BGP(Border Gateway Protocol边界网关协议)

  • 无类别路径矢量EGP协议;
  • 基于AS进行工做;
    AS(自治系统):一个独立的管理域,内部能够运行多种IGP协议,但半径不易过大;
    为区分不一样的AS,使用编号:0-65535
    公有:1-64511 私有:64512-65535

IGP和EGP协议的区别

IGP协议在工做时:

  1. 收敛快
  2. 占用资源少
  3. 选路佳

EGP协议在工做时:

  1. 可靠性:控制更新量,仅作增量更新—仅触发、无周期
  2. 可控性:不是简单的依赖度量值,而是大量可被人为修改的属性来进行选路
  3. AS-BY-AS:以一个AS为一跳

1. BGP特色

  1. 无类别路径矢量:距离矢量的升级版,AS-BY—AS,共享路由表
  2. 使用单播更新来发送全部信息;基于TCP 179端口工做
  3. 触发、增量更新,仅触发,无周期
  4. 具备丰富的属性来取代IGP中度量进行选路
  5. 能够在进项和出项对流量实施强大的策略
  6. 默认不被用于负载均衡,经过各类选路规则仅仅产生一条最佳路径
  7. BGP支持认证和聚合(汇总)

2. BGP的数据包

BGP全部的数据均基于TCP会话传递,由TCP来进行邻居的发现及全部数据包的ACK;前端

  • Open :邻居关系的创建,正常仅收发一次,携带RID,生成方式同OSPF一致;hold time;
  • Keepalive:保活,周期保活BGP邻居关系,实际保活TCP会话;hello time 60s,hold time 180s;
  • Update:更新 携带路由条目=目标网络号+属性(各类参数)
  • Notification:报错 用于故障报错
  • Refresh:路由刷新,不是全部厂商都有

3. BGP的工做过程

  1. IP可达:BGP承载于IGP之上
  2. 创建TCP会话:基于179端口,目标端口必须为179;
  3. 使用open报文创建BGP的邻居关系,生成邻居表
  4. 邻居关系创建后使用update共享路由信息,装载BGP表中,本地发出及接收到的全部路由信息
  5. 根据选路规则将BGP表中最优路径加载于路由表;
  6. 邻居创建后,一直使用keepalive周期保活TCP会话
  7. 若出现拓扑结构变化,直接使用update触发更新便可
  8. 若出现错误的配置产生故障参数时,将使用notification进行报错
  9. 结构突变
    1. 新增:最早学习到新增网段的BGP设备,使用update包共享条目便可
    2. 断开:最早知道断开网段的BGP设备,使用update包共享信息便可
    3. 没法通信:hold time到时时,断开邻居关系和TCP会话;而后删除全部从该邻居学习到的信息

注:全部的BGP信息均基于TCP会话传输,可靠保障;web


4. BGP中名称讲解

  • EBGP邻居关系:处于不一样的AS间的BGP设备创建的邻居关系,经过这种邻居关系学习到的路由条目,其管理距离为20;
  • IBGP邻居关系:处于同一AS内部的BGP设备创建的邻居关系,经过这种邻居关系学习到的路由条目,其管理距离为200;
  • 对等体(peers):在BGP中由于能够非直连建邻;故邻居也被称为对等体;

5. BGP的路由黑洞问题

产生条件

  1. BGP路由基于TCP会话单播传递,传递过程当中能够正常通过未运行BGP的设备;
  2. BGP因为基于IGP运行,故路由正常均须要递归查询;
  3. BGP仅生成惟一路径,但若递归到IGP上,实际可延多条路径传输;

当BGP协议单播传递路由时,穿越了中未运行BGP的设备时,出现控制层面可达,但数据层面在未运行BGP的设备上不可达,最终致使路由黑洞;
在这里插入图片描述正则表达式


解决方案

  1. 物理链路全连:全部BGP设备间直连,不能非直连建邻;
  2. 邻居关系全连:全部设备运行BGP;
  3. 将BGP路由条目重发布到IGP;(只能在实验中完成,现实中因为BGP的路由条目数量远大于IGP,故将BGP发布到IGP的话会致使IGP路由器卡死)
  4. 最佳方案:MPLS多协议标签交换;

6. BGP的破环机制:水平分割

  1. EBGP水平分割:针对EBGP环路
    AS-PASH:BGP的一种属性,BGP的路由条目在传递过程当中将记录全部通过的AS号,若接收到的路由条目中存在本地的AS号,将拒绝接收该条目;redis

  2. IBGP水平分割:针对IBGP环路
    一台设备若从一个IBGP邻居处学习到了路由条目,不得传递给下一个IBGP邻居;
    在这里插入图片描述
    该机制能够限制IBGP环路的出现,但同时也致使全网全部BGP设备间均须要创建邻居关系,配置量极大
    路由反射器、联邦能够有条件打破IBGP水平分割网络


7. BGP配置

r1(config)#router bgp 1  启动时须要定义真实的AS号;无多进程概念;
r1(config-router)#bgp router-id 1.1.1.1   配置RID;

在BGP协议中,邻居关系的创建和路由条目的宣告是分开配置的;负载均衡

  1. 创建邻居关系tcp

    1. 使用物理接口创建普通的EBGP邻居关系
    r1(config-router)#neighbor 12.1.1.2 remote-as 2
               对端的IP地址及所在AS号
    1. 创建IBGP邻居关系,正常在一个AS内部为保障网络的稳定性,设备必定存在大量的备份链路,建议使用环回接口来做为创建邻居关系的源、目标地址(稳定)
    r2(config)#router bgp 2 
    r2(config-router)#neighbor 3.3.3.3 remote-as 2
    r2(config-router)#neighbor 3.3.3.3 update-source loopback 0
    切记:使用环回创建邻居关系时,必须同时更新源地址;
    1. EBGP邻居间存在多条直连路径时,也建议使用环回创建
      1. IP可达,建议使用静态
      r4(config)#ip route 5.5.5.0 255.255.255.0 45.1.1.2
      r4(config)#ip route 5.5.5.0 255.255.255.0 54.1.1.2
      1. 创建邻居关系
      r4(config)#router bgp 2
      r4(config-router)#neighbor 5.5.5.5 remote-as 3
      r4(config-router)#neighbor 5.5.5.5 update-source loopback 0
      1. 默认IBGP邻居间数据包的TTL为255,而EBGP邻居为1;故使用环回地址来创建EBGP邻居关系时,须要修改该参数
      r4(config-router)#neighbor 5.5.5.5 ebgp-multihop ?
        <1-255>  maximum hop count
        <cr>      255
      建邻配置完成后,邻居间开始创建TCP的会话
      r1#show tcp brief
      TCB       Local Address           Foreign Address        (state)
      64280044  12.1.1.1.179            12.1.1.2.13413         ESTAB
      当TCP会话创建,BGP协议使用open包和对端创建BGP的邻居关系,生成邻居表
      r1#show ip bgp neighbors 查看邻居表---该表过大不易查看
      
      r1#show ip bgp summary  查看简表
      BGP router identifier 1.1.1.1, local AS number 1
      BGP table version is 1, main routing table version 1
      
      Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
      12.1.1.2        4     2       7       7        1    0    0 00:03:13        0

状态处的数字标示该邻居处学习到的路由条目数量;该处为数字也标示了已经和该设备创建邻居关系;ide

  1. 邻居关系创建,进行宣告来共享路由条目;
    本地路由表中任何路由条目都可宣告到BGP协议中来,不关注这些条目的获取方式;
    BGP在进行宣告配置时,由管理员在本地路由表逐一选择性宣告;
r1(config)#router bgp 1 
r1(config-router)#network 1.1.1.0 mask 255.255.255.0

宣告时,条目的内容必须和路由表的记录彻底一致 ;
切记:BGP协议只能逐条宣告本地路由表中的内容(不关注条目的产生方式);
宣告时必须和表中的记录彻底一致;svg

当宣告配置完成后,路由器将发出和接收到update,学习路由条目,加载本地BGP表中;
该表用于记录全部本地发出及接收的条目;oop

r1#show ip bgp 查看BGP表;
BGP table version is 2, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24         0.0.0.0                  0         32768 i
状态  目标                      属性
  • *标示条目是可用的:能够被加载到路由表中;
    不可用时,*被其余的符号取代掉;
  • r 标示不装载:本地路由表中已经经过更好的方法学习到该条目
  • s 为抑制:人为限制该条目的传输;但本地能够加表;
  • >标示条目优秀:1. 能够被加载到路由表中;2. 能够被传递到邻居处;

优的条件:

  1. 同步问题:若本地经过BGP学习到一条条目时,同时也必须经过IGP学习到它;
    该规则设计的缘由为解决BGP的路由黑洞,当今网络均没法负荷该条目,故建议关闭该规则
r3(config)#router bgp 2 
r3(config-router)#no synchronization

IOS 版本12.2(8)T以上默认关闭

  1. 下一跳可达;由于AS-BY-AS规则,故条目在AS内部传递时其属性不得变化;下一跳默认不变,若将条目传递给EBGP邻居时,下一跳会自动修改成本地;
r2(config)#router bgp 2
r2(config-router)#neighbor 3.3.3.3 next-hop-self

在将路由条目传递给3.3.3.3该邻居时,将下一跳修改成本地地址;

使用字母i标识经过IBGP邻居学习的路由;

总结:
*和>均存在时才能够加表;
仅>存在便可传递,除出现s时;
条目必须即优也可用才能加表;
仅优便可传递,前提为不能被S抑制;


8. BGP在MA网络的下一跳问题

在MA网段中,ICMP重定向将帮助BGP学习到最佳的下一跳;

R1#debug ip bgp updates  动态查看BGP更新包
R1#clear ip bgp *  硬重启   重启本地全部邻居间的TCP会话
R1#clear ip bgp * soft  软重启  仅和本地全部邻居间从新收发路由,不断开任何关系
R1#clear ip bgp 3.3.3.3   仅和3.3.3.3邻居进行硬重启
R1#clear ip bgp 3.3.3.3 soft   仅和3.3.3.3邻居进行软重启
R1#clear ip bgp 3.3.3.3 soft ?  软重启
  in   Soft reconfig inbound update  收路由
  out  Soft reconfig outbound update  发路由
R1#show ip bgp neighbors 123.1.1.2 advertised-routes  
仅查看本地发送给邻居123.1.1.2的路由信息

R1#show ip bgp neighbors 123.1.1.2 received-routes 
% Inbound soft reconfiguration not enabled on 123.1.1.2
仅查看本地从123.1.1.2 的接收到的路由,默认没有专用的存储空间来装载
R1(config-router)#neighbor 123.1.1.2 soft-reconfiguration inbound 
配置存储空间,建议查看完后删除该空间

9. BGP的宣告问题

BGP协议在宣告路由时,将携带本地路由表中到达目标的度量值下一跳

  • 度量值:可让本地EBGP邻居,断定那台EBGP设备离目标最近;
    当本地从一台IBGP邻居处学习到的路由,须要传递给本地的EBGP邻居时,度量值清除;
    注:为保障路径的优秀,建议全部存在EBGP邻居的BGP路由器均须要本AS的路由;

  • 下一跳:接收到的路由条目中,若下一跳地址为本地,那么条件不优;
    该条件必须在打破水平分割、没有修改下一跳为本地时才能有意义;
    意义在于迫使管理员让全部存在EBGP邻居的BGP路由器均宣告本地AS路由;


10. BGP的自动汇总

自动汇总的命令不针对普通的BGP路由;仅针对从IGP重发布到BGP的路由;

r2(config-router)#redistribute ospf 1 

auto-summary   不携带原有的掩码、度量值、下一跳
no auto-summary 携带原有的掩码、度量值、下一跳

在BGP协议中的逐条宣告,能够理解为逐条将其余协议产生的路由重发布到BGP协议中;
在BGP协议中进行重发布,能够理解为批量的将其余协议产生的路由宣告到BGP协议中;
携带原有的度量和原有的下一跳地址其规则、目的同上面的宣告问题一致;

总结:不管在BGP协议中是宣告,仍是重发布都应该在全部存在EBGP邻居关系的BGP路由器均进行配置;

注:重发布进入BGP的路由和宣告进入BGP的路由其属性中,起源属性不一样;


11. BGP的聚合(汇总)

1. 利用了BGP的宣告特色:

本地路由表中任何形式产生的路由都可宣告
先在本地配置一条到达汇总地址的空接口防环路由,而后再在BGP协议中宣告这种汇总路由

r5(config)#ip route 5.5.4.0 255.255.252.0 null 0
r5(config)#router bgp 3 
r5(config-router)#network 5.5.4.0 mask 255.255.252.0

为精确的选路,AS间经常在发送了聚合路由条目后,还须要酌情发送部分的明细路由,来保障选路;
在这种聚合配置下,只要须要再逐一的宣告有需求的明细路由便可;


2. BGP的标准聚合

先逐条宣告明细路由,而后再在更新源上进行聚合配置

r5(config)#router bgp 3
r5(config-router)#network 5.5.5.0 mask 255.255.255.0
r5(config-router)#network 5.5.6.0 mask 255.255.255.0
r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 
默认全部的明细和聚合条目同时发送
r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 summary-only 
仅发送汇总路由,全部的明细路由被S-抑制传输;

标准的聚合配置将自动产生空接口防环路由;


精确选路

为精确的选路,AS间经常在发送了聚合路由条目后,还须要酌情发送部分的明细路由,来保障选路;


抑制列表

必须在进行标准聚合配置才能使用
```
r5(config)#ip prefix-list ss permit 5.5.5.0/24

r5(config)#route-map ss permit 10
r5(config-route-map)#match ip address prefix-list ss

r5(config)#router bgp 3 
r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 suppress-map ss
r5(config-router)#end

r5#clear ip bgp * soft 
```

注:这种作法是route-map 中容许的流量反而被抑制;


Route-map

```
r5(config)#ip prefix-list xx permit 5.5.5.0/24
r5(config)#route-map xx deny 10 
r5(config-route-map)#match  ip address prefix-list xx
r5(config-route-map)#exit
r5(config)#route-map xx permit 20
r5(config-route-map)#exit
r5(config)#router bgp 3
r5(config-router)#neighbor 4.4.4.4 route-map xx out   控制层面方向
r5(config-router)#end
r5#clear ip bgp * soft 
```

分发列表

r5(config)#access-list 1 deny 5.5.5.0
r5(config)#access-list 1 permit any

r5(config)#router bgp 3 
r5(config-router)#neighbor 4.4.4.4 distribute-list 1 out 
r5(config-router)#end
r5#clear ip bgp * soft

前缀列表直接做为分发列表

```
r5(config)#ip prefix-list qq deny 5.5.5.0/24
r5(config)#ip prefix-list qq permit 0.0.0.0/0 le 32

r5(config)#router bgp 3 
r5(config-router)#neighbor 4.4.4.4 prefix-list qq out 
r5(config-router)#end
r5#clear ip bgp * soft
```

聚合出环

汇总地址不处于更新源AS时,默认聚合条件将回流到更新源AS,致使黑洞路由流量必须到汇总的AS来丢弃;

利用EBGP水平分割:路由条目在传递时将记录全部通过的AS编号,接收到的条目中若存在本地的AS号将拒绝接收;
解决方法:将明细路由上的AS-pash属性附着于汇总条目上

r4(config)#router bgp 2 
r4(config-router)#aggregate-address 5.5.4.0 255.255.252.0 summary-only as-set

12. 有条件的打破IBGP水平分割:AS-BY-AS

为避免IBGP环路,存在IBGP水平分割机制,在该机制下为实现全网的路由正常传递,必须全连的邻居关系(本AS内全部的BGP路由间均须要存在IBGP邻居关系),建邻数量成几何上升;

所谓有条件的打破,是指在打破水平分割机制时,必须保证无环;


反射器

存在客户端、非客户端、RR(反射器)三种角色;
构成一个簇(组);
客户端、非客户端在一个组内数量不限制客户端必须至少一台,全部的客户端、非客户端与RR间必须为IBGP邻居关系;


规则:

  1. RR从一台EBGP邻居处学习到的路由,能够传递给本地客户端、非客户端、EBGP邻居
  2. RR从客户端学习到的路由,能够传递给本地的其余客户端、非客户端、EBGP邻居
  3. RR从非客户端学习到的路由,能够传递给本地的其余的客户端/EBGP邻居,当不能传递给其余的非客户端;
r3(config)#router bgp 2 
r3(config-router)#neighbor 2.2.2.2 route-reflector-client 
2.2.2.2成为本地的客户端,同时本地成为RR;

切记:反射器仅反射优的路径,由于只有优的路径存在传递性;
若在真机上,一台设备成为RR或者客户端,那么在这个设备配置修改下一跳为本地后无效;模拟器上均生效;

r2(config-router)#neighbor 3.3.3.3 next-hop-self

能够在真机上使用route-map来替代:

r2(config)#route-map nex permit 10
r2(config-route-map)#set ip next-hop peer-address 
r2(config-route-map)#exit
r2(config)#router bgp 2 
r2(config-router)#neighbor 3.3.3.3 route-map nex out 
r2(config-router)#end
r2#clear ip bgp * soft

联邦

在一个真实的AS中,逻辑的划分出多个小AS;
小AS间为联邦内的EBGP邻居关系,这种关系能够向EBGP关系同样传递路由,当不能修改属性;

  1. 全部配置均基于小AS号进行—启动、建邻、策略
  2. 联邦内全部BGP设备声明本身所在的大AS号
r2(config)#router bgp 64512
r2(config-router)#bgp confederation identifier 2
  1. 小AS间互指peer
r3(config)#router bgp 64512
r3(config-router)#bgp confederation peers 64513

总结:实际工程中,以上两种技术将被结合使用;


12. 属性

各类参数,存在排序;修改属性能够直接干涉BGP的选路;

  • 公认必遵:Origin,AS-path,Next-hop
  • 公承认遵:local-pref,auto-aggregate
  • 可选传递:aggregator,community
  • 可选非传递:MED,Originator-ID,cluster-list,weight

weight

Weight 传播范围 默认数值 大优或小优
Cisco私有属性 不传播 本地32768,邻居0( 0-65535)

在这里插入图片描述

全局修改

r4(config)#router bgp 2
r4(config-router)#neighbor 3.3.3.3 weight 1    
r4(config-router)#end
r4#clear ip bgp * soft 
本地全部从3.3.3.3学习的路由,权重值修改成1;

负载分担:

基于不一样的目标选择不一样的最佳路径;

r4(config)#ip prefix-list w permit 2.2.2.0/24
r4(config)#route-map w permit 10
r4(config-route-map)#match ip address prefix-list w
r4(config-route-map)#set weight 1
r4(config-route-map)#exit
r4(config)#route-map w permit 20
r4(config-route-map)#exit
r4(config)#router bgp 2
r4(config-router)#neighbor 3.3.3.3 route-map w in
r4(config-router)#end
r4#clear ip bgp * soft 
注:调用时只能在本地的控制层面入向,由于该属性不传播;

route-map优于filter-list优于neighbot weight


本地优先级(Local-preference)

Local-preference 传播范围 默认数值 大优或小优
公有属性 IBGP邻居关系间 100(0-255)

最经常使用于干涉IBGP邻居关系选路;本地出口在多个路由器上的场景

在这里插入图片描述

在这里插入图片描述

全局修改:

r3(config-router)#bgp default local-preference 101
r3(config-router)#end
r3#clear ip bgp * soft 
本地发送给全部IBGP邻居的路由,优先级均修改成101;

负载分担:

基于部分的路由进行修改,能够在控制层面流量的入或出接口上修改;
必须为IBGP邻居关系;

r4(config)#ip prefix-list l permit 2.2.2.0/24
r4(config)#route-map l permit 10
r4(config-route-map)#match ip address prefix-list l
r4(config-route-map)#set local-preference 101
r4(config-route-map)#exit
r4(config)#route-map l permit 20
r4(config-route-map)#exit
r4(config)#router bgp 2
r4(config-router)#neighbor 3.3.3.3 route-map l in 
r4(config-router)#end
r4#clear ip bgp * soft

即便在EBGP邻居使用route-map 配置了在出方向也是没用的,由于发给EBGP对等体的update根本不会携带这个属性,因此这样配置没有意义


next-hop

  1. 将IBGP邻居学习到的路由传递给EBGP邻居时,next-hop为创建EBGP邻居的更新源地址。
  2. 将EBGP邻居学习到的路由传递给IBGP邻居时,next-hop不发生改变;传递个其余EBGP邻居时下一跳为创建EGBP邻居的更新源地址。

在这里插入图片描述

Network          Next Hop            Metric LocPrf Weight Path
*> 2.2.2.0/24          0.0.0.0                  0    100      0 1 i
*  i                 1.1.1.1                  0    100      0 1 i

AS-PASH

条目在传递过程当中记录通过的AS编号;优选通过数量最少的路径;
AS的增长只能在EBGP邻居关系间进行;
管理员能够策略在EBGP邻居关系间增长AS的数量,不能减小;
虽然只能在EBGP邻居关系间修改,当依然能够干涉到IBGP关系下的选路;
由只能增长,故修改A路径,优选B路径;

在这里插入图片描述

r1(config)#ip prefix-list as permit 2.2.2.0/24
r1(config)#route-map as permit 10
r1(config-route-map)#match ip address prefix-list as
r1(config-route-map)#set as-path prepend 3 4 5 
r1(config-route-map)#exit
r1(config)#route-map as permit 20
r1(config-route-map)#exit
r1(config)#router bgp 2 
r1(config-router)#neighbor 12.1.1.2 route-map as in 
r1(config-router)#end
r1#clear ip bgp * soft

注:只能在EBGP邻居间的控制层面干涉选路;
入向调用—3 4 5 x,X为真实通过过的编号
出向调用—X 3 4 5 ; 最前端AS为最新通过的编号;

注:AS-pash属性还用于EBGP水平分割,若人为添加的AS号,在网络的后方真实存在,那么这些路由将没法进入这些AS;能够重复添加已经通过的AS号;或者添加私有的AS号;

r1(config)#route-map as permit 10
r1(config-route-map)#set as-path prepend 1 1 1

在这里插入图片描述
在as4上的水平分割会干扰选路

解决方法:

nei X.X.X.X allowas-in 容许和具备本身相同的AS的路由进入本AS (接收者)

nei x.x.x.xas-override 把具备普和其余AS相同AS号的路由放入这个AS (发送者)

起源属性(origin)

Origin codes: i - IGP, e - EGP, ? - incomplete
所谓起源属性,及条目是经过什么方式进入到BGP协议来的;
使用i标识network --管理员宣告条目
使用e标识经过早期的EGP协议学习后,重发布到BGP来的
使用?标识经过IGP学习,重发布到BGP协议

规则:i优于e优于?

r1(config)#ip prefix-list o permit 2.2.2.0/24
r1(config)#route-map o permit 10
r1(config-route-map)#match ip address prefix-list o
r1(config-route-map)#set origin egp 2     修改成e,数字为对端邻居所在AS编号
r1(config-route-map)#exit
r1(config)#route-map o permit 20
r1(config-route-map)#exit
r1(config)#router bgp 2 
r1(config-router)#neighbor 4.4.4.4 route-map o out 
r1(config-router)#end 
r1#clear ip bgp * soft

MED(多出口鉴别属性)

度量值

BGP协议不存在度量值,当管理员能够人为去赋值,来干涉选路;

可用于干涉EBGP/IBGP邻居下的选路,当最经常使用于干涉EBGP邻居间的选路;

在这里插入图片描述
它被典型的用在AS间的链路上,以区分到达相同的邻居AS的多个出口点

若是到同一个目的地的两条路由来自不一样的AS,此时BGP路由选路时不进行比较MED,MED只对单一的AS有意义
咱们能够强制让它们比较bgp always-compare-med

MED 传播范围 默认数值 大优或小优
公有属性 相邻AS之间 0

例:AS1干涉AS2对AS1的选路

r2(config)#ip prefix-list med permit 2.2.2.0/24   
r2(config)#route-map med permit 10
r2(config-route-map)#match ip address prefix-list med
r2(config-route-map)#set metric 1
r2(config-route-map)#exit
r2(config)#route-map med permit 20
r2(config-route-map)#exit
r2(config)#router bgp 1 
r2(config-router)#neighbor 12.1.1.1 route-map med out 
r2(config-router)#end
r2#clear ip bgp * soft
使用扩展ping来进行检测:
r2#ping 
Protocol [ip]:     
Target IP address: 4.4.4.4
Repeat count [5]: 
Datagram size [100]: 
Timeout in seconds [2]: 
Extended commands [n]: y
Source address or interface: 2.2.2.2
Type of service [0]: 
Set DF bit in IP header? [no]: 
Validate reply data? [no]: 
Data pattern [0xABCD]: 
Loose, Strict, Record, Timestamp, Verbose[none]: r

社团属性(Community)

GP协议除了基本属性外,还存在大量的扩展属性;

但默认各家厂商的BGP协议不识别、不传递该属性;

公有社团属性(well-known)

Internet        全部属于这个社团属性的路由都有一个缺省值,能够自由地公布属于这个团体的路由,换句话说这个社团的前缀通告没有任何限制
local-AS        接收到的条目中携带该属性,不得将该条目再传递给其余小AS
no-advertise    接收到的条目中携带该属性,不得将该条目再传递给其余邻居
no-export      接收到的条目中携带该属性,不得将该条目再传递给其余大AS
若没有小AS,local-AS和no-export做用一致;

私有社团属性(Private)

有网络管理员本身定义的社团属性,它的主要目的是为前缀附加管理标记,以便制定合适的策略。

例:关于条目传播范围的几种社团属性

r1(config)#route-map com permit 10
r1(config-route-map)#set community no-advertise 
r1(config-route-map)#exit
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 route-map com out 
r1(config-router)#end
r1#clear ip bgp * soft 
注:由于默认的不传播社团属性,故添加社团数据后,必须开启传递性;
r1(config)#router bgp 1 
r1(config-router)#neighbor 12.1.1.2 send-community

auto-aggregate

用来警告下游路由器路由聚合后产生的路由路径丢失。
BGP支持向BGP邻居传递重叠路由,能够选择多种方式:

  1. 明细和粗略的都公布 aggregate-address 10.0.0.0 255.0.0.0
  2. 只公布明细 aggregate-address 10.0.0.0 255.0.0.0 suppress-map
  3. 只公布没有重叠的 aggregate-address 10.0.0.0 255.0.0.0 sunnary-only as-set
  4. 公布聚合后的路由 aggregate-address 10.0.0.0 255.0.0.0 sunnary-only
  5. 明细和粗略都不公布

Aggregator

用来通告汇总路由的汇聚路由器BGP_ID(Cisco)和聚合路由的路由器的AS号。


Originator-ID

路由反射器使用该属性,不接收与本身相同的起源者ID的路由,防止环路。

路由反射器:反射非客户端间不能传递路由在这里插入图片描述

出环

在这里插入图片描述


Cluster-list

路由反射器使用该属性,不接收与本身相同的簇列表的路由,防止环路。
在这里插入图片描述在这里插入图片描述


14. BGP选路规则

比较前提:同步被关闭、下一跳可达;都可优

  1. 首先比较weight 大优–不传递 ,Cisco私有 EBGP/IBGP
  2. 比较本地优先级,默认100;仅IBGP邻居传递,大优 IBGP
  3. 优选本地下一跳
  4. 比较as-pash,通过的AS数量少优,EBGP邻居可增添 EBGP/IBGP
  5. 起源码最小 i-igp=0 e-egp=1 ?-incomplete=2 EBGP/IBGP
  6. MED值最小 EBGP/IBGP
  7. 普通的EBGP邻居优于联邦内EBGP邻居优于IBGP邻居
  8. 优选最近的IGP邻居(IGP度量小)
  9. 优选最早创建EBGP邻居
  10. 最小BGP邻居的RID
  11. 优选最小的RR list 列表
  12. 若收到到达同一目的地两条都可优的EBGP路由,能够人为实现负载均衡
r2(config)#router bgp 1
   r2(config-router)#maximum-paths 2

15. peer-group

r1(config)#router bgp 1 
r1(config-router)#bgp router-id 1.1.1.1

r1(config-router)#neighbor xxx peer-group  建立名为xxx的peer-group
r1(config-router)#neighbor xxx remote-as 2   定制内容
r1(config-router)#neighbor xxx update-source loopback 0
r1(config-router)#neighbor xxx ebgp-multihop 
r1(config-router)#neighbor 2.2.2.2 peer-group xxx
r1(config-router)#neighbor 3.3.3.3 peer-group xxx
r1(config-router)#neighbor 4.4.4.4 peer-group xxx

注:一旦和某个邻居调用了peer-group,那么以后与该邻居的大部分命令就是必须在peer-group中完成;


16. 认证

r1(config-router)#neighbor 2.2.2.2 password cisco

注:邻居的密码是以MD5值发送的;

由于使用passwrod字符,故在running-config中可使用密码加密服务来加密显示

r1(config)#service password-encryption

17. AS欺骗

修改本身路由器的对外通告AS
改变本地AS号
对外欺骗仍是原来的AS
这样原来相连的AS就不用改变

在这里插入图片描述


18. 浮动惩罚

启动翻动路由的惩罚机制(默认不启动)
R4(config-router)#bgp dampening

缺省状况,每次翻动会分配惩罚值1000,若是累计超过2000,路由会被抑制直到下降至750。
减小的速率是按照每15分钟减小一半的速率(半衰期)。

为了防止惩罚值太大被一直抑制,有一个最大的抑制时间,一般为半衰期的4倍,默认半衰期是15分钟,那么最大抑制时间为60分钟。
这些默认值能够进行修改
R4(config-router)#bgp dampening 15 750 2000 60


各个位置的含义

15:半衰期时间,单位分钟

750:重用阀值,没有单位

2000:抑制阀值,没有单位

60:最大抑制时间,单位分钟

在这里插入图片描述

若是被抑制,BGP路由前面会打d ,若是是打h,表明曾经发生过翻动,但未达到惩罚值。

R4#show ip bgp dampening flap-statistics
能够查看打d和h的路由

R4#show ip bgp dampening dampened-paths
能够查看正被抑制的路由


假如翻动的路由已经被修复,可使用如下命令进行当即解封
R4#clear ip bgp dampening
当即清除已经被抑制的路由,使它们恢复可用

R4#clear ip bgp flap-statistics
不单可清除被抑制的路由,还能够清除全部惩罚值
后面还能够跟正则表达式来指定相应的路由

例如:R4#clear ip bgp flap-statistics regexp _30_能够清楚全部包含AS 30的翻动的路由的惩罚值。
也能够跟filter-list


19. 默认路由

精确式下发

精确下发默认路由给特定的邻居

R4(config)#router bgp 100
R4(config-router)#neighbor 45.1.1.2 default-originate

粗放式下发

没有具体的邻居,发给全部的邻居

R4(config)#router bgp 100
R4(config-router)#default-information originate

必须有的三个必要条件是:

  1. 建立静态默认路由

  2. 将静态默认路由重分发进bgp进程

  3. 设置BGP命令default-information originate