一篇拿下BGP

BGP介绍

边界网关路由协议,属于无类别的路径矢量协议,是EGP协议中最流行的技术,工作在AS之间;
EGP:外部网关路由协议(BGP,EGP)
IGP:内部网关路由协议(rip,ospf,EIGRP,ISIS)
AS:自治系统
AS自治系统是需要用编号来进行区分的:AS标准编号由16位二进制构成(0-65535,其中1-64511为公有,64512-65535为私有),AS扩展编号由32位二进制构成

IANA组织

IANA是全球最早的Internet机构之一,其历史可以追溯到1970年。
IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)是负责协调一些使Internet正常运作的机构。同时,由于Internet已经成为一个全球范围的不受集权控制的全球网络,为了使网络在全球范围内协调,存在对互联网一些关键的部分达成技术共识的需要,而这就是IANA的任务。
IANA的所有任务可以大致分为三个类型:

  • 域名。IANA管理DNS域名根和.int,.arpa域名以及IDN(国际化域名)资源。
  • 数字资源。IANA协调全球IP和AS(自治系统)号并将它们提供给各区域Internet注册机构。
  • 协议分配。IANA与各标准化组织一同管理协议编号系统。

IANA官网:https://www.cidr-report.org/as2.0/

BGP性能

1.BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目
2.AS之间存在大量的BGP邻居关系,且BGP协议不会计算最佳路径,因此在BGP协议中管理员需要进行策略来干涉选路

IGP与EGP

IGP协议追求:

1.无环(选路佳)
2.收敛快
3.占用资源少

EGP协议追求:

1.可控性强(BGP协议主要负责搬运IGP协议产生的路由,类似多点双向重发布,对选路不做计算,故需要管理员大量手工干涉选路)
2.可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新,且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系----单播邻居,基于tcp工作,三次握手四次断开,4中可靠传输机制,tcp只能基于单播工作)
3.AS-BY-AS:以一个AS为一跳
单播:需要ip可达,依赖IGP(BGP承载于IGP之上)

BGP特点

1.无类别路径矢量(距离矢量的升级版AS-BY-AS)
2.使用单播更新来发送所有信息,基于TCP 179端口工作
3.增量更新(仅触发无周期)
4.具有丰富的属性来取代IGP中度量进行选路(多个参数控制协议)
5.可以在进项和出项对流量实施强大的策略(可控性)
6.默认不被用于负载均衡(通过各种选路规则仅仅产生一条最佳路径)
7.BGP支持认证和聚合(汇总)

BGP数据包

BGP数据包基于TCP的179端口工作,故BGP协议中所有的数据包均需要在TCP会话建立后,基于TCP的会话来进行传输及可靠性的保障
首先通过TCP的三次握手来寻找到邻居

数据包功能
open包仅负责邻居关系的建立,正常仅收发一个即可,携带route-id
keeplive包保活(周期1min查询邻居关系是否存在,实际保活TCP会话,hold time默认3min)
update包携带路由条目(目标网络号+各种属性)
Notification包出现错误数据时收发

BGP协议的工作过程

建邻配置完成后,邻居间基于TCP的179端口,通过TCP的三次握手建立TCP会话(邻居间已知对端单播地址,地址可达,BGP承载于IGP之上)。会话建立后,所有的BGP数据包全部基于TCP会话进行传递和可靠性的保障,邻居间正常仅收发一次open报文,交互RID,相互认识,建立邻居关系,生成邻居表,(BGP协议的open报文中奖携带本地的RID,生成方式和ospf一致,仅需要本地及本地所有邻居唯一即可)。邻居关系建立后,默认每1min,使用Keeplive报文周期保活邻居关系(周期保活TCP会话)。邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告,使用update数据包进行邻居间路由共享,之后生成BGP表(装载本地发出及接收到的所有路由条目),默认将最优路径加载于路由表中(最优:仅仅基于BGP的选路规则,不一定为最佳路径,BGP默认不支持负载均衡,收敛完成,无周期更新,仅Keeplive保活),若出现错误信息,邻居间将使用Notification报文进行报错操作。

结构突变

1.新增:本地使用update向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
2.断开:本地使用update向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含(只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目)
3.无法沟通: hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由

名词

  • 邻居—直连 因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;
  • EBGP邻居关系 ---- 外部BGP邻居关系,建邻的两台设备处于不同的AS中
  • IBGP邻居关系 ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中

BGP的路由黑洞问题

非直连建邻到达控制层面路由条目可传递,递归计算路由可达;而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回(BGP可以非直连建邻,从所有运行BGP协议的路由器路由表来看,目标可达,但当流量正常转发时,流量需要hop-by-hop转发,中间只要经过未运行BGP的路由,就会出现路由黑洞)
在这里插入图片描述

解决方案

1、物理、逻辑拓扑全连 – 物理链路直连、或者vpn
2、邻居关系全连 – 网络中所有设备运行BGP
3、BGP重发布到IGP(LAB)
4、MPLS 多协议标签交换— 推荐做法

BGP的防环机制(水平分割)

EBGP水平分割(解决EBGP环路,针对AS之间的环路)

依赖了BGP路由条目中的一种属性来进行防环(AS-path路径属性),BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号,EBGP水平分割:接收到的路由条目中,若存在本地的AS号将拒绝该条目进入。 该属性用于记录该路由条目经过的所有AS编号,若BGP协议学习到一条路由,其属性中包含了本地的AS号,将拒绝接收

IBGP水平分割(解决IBGP环路中的一种机制,针对AS内部的环路)

本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;AS-BY-AS在一个AS内部条目传递的过程中,默认属性不变;由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系来稳定网络关系;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)
在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大。

由于BGP协议可以非直连建立邻居,故在一个AS内部,无需专门设置BGP设备来备份邻居关系-----每台运行BGP协议的设备均连接其他的AS设备(该AS的边界),为了能将本地从其他AS学习到的路由分享给本地所有AS中的所有BGP设备,需要单AS内所有运行BGP协议的设备间均两两建立IBGP邻居关系。所以IBGP的邻居关系数量随BGP运行设备的数量呈指数上升,配置量极大。

后期可以有条件的打破IBGP水平分割规则:使用联邦,路由反射器

BGP的基本配置

能建立BGP邻居的前提是:能相互ping通

【1】BGP的宣告:邻居关系的建立与路由条目宣告配置是分开操作的

1)单连的EBGP邻居关系建立-----物理接口直接建立
[r1]bgp 1   启动BGP协议,启动时需要键入AS号;没有多进程概念
[r1-bgp]router-id 1.1.1.1   建议配置RID;若不配置将自动生成—规则同OSPF相同
[r1-bgp]peer  12.1.1.2 as-number 2  对端IP地址,及对端所在的AS编号


2)IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递;
[r2]bgp 2 
[r2-bgp]peer  3.3.3.3 as-number 2
           对端环回接口ip地址,及对端所在AS号
切记:一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口
[r2-bgp]peer  3.3.3.3 connect-interface LoopBack 0



3)EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立(直连的EBGP邻居间存在多条物理链路)
{1}为了使IP可达(路由可达问题),建议静态路由
{2}正常环回做为源、目ip地址建立邻居关系
{3}默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立
设计者在设计的时候,EBGP之间的TTL默认为1,IBGP之间的TTL默认为255,为1表示不能再跳了,再跳就会被丢弃
[r4-bgp]peer  5.5.5.5 ebgp-max-hop 2



当建邻配置完成后,邻居间通过三次握手,建立TCP的会话,查看TCP会话
[r2]display tcp status
当TCP会话建立后,邻居间BGP协议将正常收发一次open报文,建立BGP邻居关系;生成邻居表:
[r2]display  bgp peer 
 BGP local router ID : 2.2.2.2
 Local AS number : 2
 Total number of peers : 1                Peers in established state : 1
  Peer            V  AS  MsgRcvd  MsgSent  OutQ  Up/Down  State PrefRcv

  12.1.1.1         4    1        8        8     0    00:06:36  Established  0
表格最后的数值,标识本地从该邻居处学习到的路由条目的数量;


【2】BGP的宣告;运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输;
注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致
[r1-bgp]network 1.1.1.0 24
一旦进行宣告配置,条目将加载于本地的BGP表中;--装载本地发出及接收到的所有路由信息
[r1]display  bgp routing-table 查看BGP表
 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   1.1.1.0/24            0.0.0.0          0                       0        i
状态  目标网络号                        属性
状态--------   * 可用     >  优秀      *>同时存在—可以加表(加进路由表)并可以传递(传递给
本地的其他BGP邻居)
状态处若出现i代表该条目是本地通过IBGP邻居学习到的

优秀的条件:1、同步问题(默认不关注) 2、下一跳可达
基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达;导致条目不优秀;
[r2-bgp]peer  3.3.3.3 next-hop-local    将BGP路由传递给本地的邻居3.3.3.3时修改下一跳地址为本地与3.3.3.3用于建立邻居关系的源ip地址(环回地址)

当路由条目传递给本地的EBGP邻居时,属性将自动发生变化,包括下一跳地址;

备注:在BGP协议中,若通过本地传递过来的路由条目,与本地路由表中已经存在且用于建立BGP邻居关系的路由相同时,该条目将不能优秀;(类似于我用你的名字去找你的名字)

在这里插入图片描述
注:在实际工程中,R234上存在32位的IP地址专门用来建立邻居关系
只要下一跳可达,就会优,优了就会加表,就会传递

BGP的宣告问题

1.运行BGP协议的设备可以宣告本地的直连用户网段
2.在BGP协议中运行BGP协议的设备还可以宣告通过IGP学习到未运行BGP协议设备产生的路由(由运行BGP协议的路由器宣告本地通过IGP协议学习到的路由)
注:在BGP协议中宣告本地路由表中路由条目时,将携带本地到达这些目标的IGP度量值,传递到BGP邻居处,其他AS设备便于选择离目标最近的EBGP邻居。若一台BGP设备,通过IBGP邻居学习到一条路由,会存在度量值;同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量取消,按0进行传输,最终导致选路参考值不佳。故,建议在一个AS中若需要BGP设备宣告某条路由,那么该AS内所有运行BGP协议的设备均宣告,便于其他AS的BGP设备判断自己的EBGP邻居,哪台目标更近。

1.network单个宣告(network逐条重发布)
2.利用重发布批量宣告
[r2]bgp 2
[r2-bgp]import-route ospf 1
[r2-bgp]q

在这里插入图片描述
注:直接宣告的会携带度量值,学习到后再宣告的不会携带度量
在这里插入图片描述

BGP的自动汇总问题(了解即可)

1.当代的路由器设备,默认就关闭了BGP的自动汇总功能。
2.自动汇总规则与正常BGP协议邻居共享的路由或在BGP协议通过network宣告命令产生的路由条目无关。仅针对IGP重发布到BGP的路由条目。
注:BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP,BGP中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP协议,但是两种操作产生的路由条目其起源属性不同,其中network优于重发布。
在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入,不携带本地到达目标的度量值,度量为0;若关闭自动汇总,进入路由将正常携带掩码,且携带度量;此时和宣告路由仅起源属性不同;故建议不要开启自动汇总;
既然在一个AS中建议所有运行BGP协议的设备均宣告相同路由,那么若进行重发布配置,也建议所有BGP协议的设备均进行重发布。

[r2]bgp 2
[r2-bgp]summary automatic   开启自动汇总(当代路由器设备默认就关闭了BGP的自动汇总功能)

BGP的认证

邻居间进行身份核实的方法

[r1-bgp]peer 12.1.1.2 password cipher 123456  邻居间需要密钥一致,传递出去的密钥必然被加密

BGP的聚合(汇总)

1.不标准的汇总思路

不是BGP的标准汇总思路,而是利用BGP的宣告的特征来简化汇总配置量。
宣告特征:本地路由表中任何方式产生的路由均可被BGP宣告;
思路:不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中。
在实际工程中,由于AS之间一定存在大量的EBGP邻居关系,因此仅汇总不一定能做到优选路径,必须在传递聚合条目的同时,在传递部分的明细路由来进行选路控制

[r1]ip static-route 1.1.0.0 22 null 0 不是BGP的标准汇总思路,而是利用率BGP的宣告特征来简化汇总配置量
[r1-bgp]network 1.1.2.0 24   需要时添加明细路由

注:1.只要在BGP表里面的路由,都可以被宣告出去,空接口防环路由也不例外
2.明细路由成为老大,汇总路由成为一种备份

2.标准的BGP聚合配置

1.先要逐条宣告所有的明细路由
2.再在更新源路由器上进行聚合配置,会自动产生空接口防环路由

[r5-bgp]aggregate 1.1.0.0 22 此时聚合与所有明细条目均传递
[r5-bgp]aggregate 1.1.0.0 22 detail-suppressed 仅传递聚合条目,所有明细路由被抑制,若需要在传递聚合条目的同时,再传递部分的明细路由,需要进行路径传递干涉策略;

3.路由传递干涉策略

1)	抑制列表 – 先让设备将所有路由传递出去,再调用抑制策略
[r5]ip ip-prefix a permit 1.1.1.0 24
[r5]route-policy a permit node 10
[r5-route-policy]if-match ip-prefix a
[r5-route-policy]q
[r5]bgp 3 
[r5-bgp]aggregate 1.1.0.0 22 suppress-policy a
被抑制调用时,表中允许的流量最终反而被抑制传输

2)	Route-map  在BGP中将route-map当分发列表用
[r5]ip ip-prefix b permit 1.1.1.0 24      
[r5]route-policy b deny node 10
[r5-route-policy]if-match ip-prefix b
[r5-route-policy]q
[r5]route-policy b permit node 20
[r5-route-policy]q
[r5]bgp 3 
[r5-bgp]peer 4.4.4.4 route-policy b ?
  export  Specify export policy  控制层面的出项
  import  Specify import policy  控制层面的入向
[r5-bgp]peer 4.4.4.4 route-policy b export

3)	分发列表        (缺点:该路由器上的所有接口都会被抑制)
[r5]ip ip-prefix c deny 1.1.1.0 24 
[r5]ip ip-prefix c permit 0.0.0.0 0 le 32
[r5]bgp 3
[r5-bgp]filter-policy ip-prefix c export(控制层面方向)

4)	前缀列表 – BGP协议中可以直接将前缀列表作为分发列表调用
[r5]ip ip-prefix d deny 1.1.1.0 24
[r5]ip ip-prefix d permit 0.0.0.0 0 le 32
[r5]bgp 3 
[r5-bgp]peer  4.4.4.4 ip-prefix d export

在这里插入图片描述
在这里插入图片描述

BGP再MA网络中下一跳问题

在这里插入图片描述
现象:图中1、2、3在一个MA网段,但不在同一个AS,正常r1从r2学习到的r4的路由,下一跳自动显示为r3(最佳路径)
原理:
1.r1/r2/r3必须使用MA网段的物理接口建立邻居关系
2.ICMP重定向开启(默认开启):一台路由器在转发一个流量时,发现流量在本地的入口和查询完路由表的出口为同一接口时,将告知上一跳设备本地的下一跳地址,帮助上一跳设备找到最佳的下一跳地址。

在BGP中仅查看某个邻居发送或接收到BGP路由(BGP排错使用)
[r1]display  bgp routing-table peer 10.1.1.2 received-routes   仅查看本地从邻居10.1.1.2接收到BGP路由
[r1]display  bgp routing-table peer 10.1.1.2 advertised-routes   仅查看本地发送给邻居10.1.1.2的BGP路由

有条件的打破IBGP水平分割

在一个AS中一台设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系;又由于IBGP的水平分割规则,导致从外部学习到的路由传递给本地AS时,需要和本AS中所有运行BGP协议的设备逐一建立IBGP邻居关系;----两两间均为IBGP邻居关系,建立数量成指数上升;
所谓有条件的打破,是指在保障无环的前提下消除IBGP水平分割机制,AS-BY-AS

1.路由反射器

角色:RR反射器,客户端,非客户端 (默认所有路由器为非客户端)
无论客户端还是非客户端都必须是RR的IBGP邻居;由RR作为中心点与多个客户端,非客户端构成一个簇(组),在一个簇内存在一台RR和至少一台客户端;也可以是一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端。
反射规则:不优路由不能被传递,自然也不能被反射
1.RR从一个EBGP邻居处学习到的路由,可以传递给本地的其他客户端,非客户端,以及其他的EBGP邻居
2.RR从一台客户端学习到的路由,可以传递给本地其他的客户端,非客户端,以及其他EBGP邻居。
3.RR从一台非客户端学习到的路由,可以传递给本地的其他客户端,EBGP邻居,不能传递给本地其他的非客户端(非非不传)

[r3-bgp]peer 2.2.2.2 reflect-client  邻居2.2.2.2成为本地的客户端,同时r3成为本地的RR

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.联邦

联邦:将一个AS逻辑的分为多个小AS,对外依然遵循大AS号传递规则。但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改。

1.所有操作基于小AS好进行
2.AS内所有设备需要定义自己所在的大AS号
3.小AS间的BGP设备需要告知对端的小AS号
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 2   申明本地的大AS号
[r3-bgp]confederation peer-as 64513  告知本地直连的其他小AS号,若没有直连到其他小
AS不用配置
[r3-bgp]peer  2.2.2.2 as-number 64512
[r3-bgp]peer  2.2.2.2 connect-interface LoopBack 0
[r3-bgp]peer  4.4.4.4 as-number 64513
[r3-bgp]peer  4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer  4.4.4.4 ebgp-max-hop  2

在这里插入图片描述

注:在实际工程中,反射器与联邦技术协同工作在一个网络拓扑中;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

BGP的属性

5中标准属性;Cisco和华为还存在一种私有属性

1.PrefVal(权重属性)(只在本地有效)

传播范围           默认值          大或小优
不传播(私有)    0(0-65535)         大     

该属性为私有属性(华为)

[r3]bgp 2
[r3-bgp]peer 4.4.4.4 preferred-value 1
本地所有通过4.4.4.4邻居学习到的BGP路由,优先级全部修改为1

在这里插入图片描述

负载分担:访问不同目标时,让路由器选择不同的路径,起到所有路径被使用的效果 (到不同的目标走不同的路)
通过路由策略来实现:在BGP路由控制层面传递的过程中,抓取路由修改属性

[r3]ip ip-prefix p permit 1.1.1.0 24 抓住网路号
[r3]route-policy p permit node 10 定制策略
[r3-route-policy]if-match ip-prefix p 匹配流量
[r3-route-policy]apply preferred-value 1 修改优先级属性
[r3-route-policy]q
[r3]route-policy p permit node 20 由于路由策略存在分发列表的功能,必须考虑空表
[r3-route-policy]q
[r3]bgp 2
[r3-bgp]peer 4.4.4.4 route-policy p import 在邻居传递路由的控制层面方向调用;由于优先级不传播的特性,只能在本地的入方向调用。

2.LocPrf(本地优先级)

干涉IBGP邻居关系选路最常用的属性,仅在IBGP邻居关系间传播

传播范围                      默认值            大或小优
整个AS内部(IBGP邻居间)     100(0-255)          大
[r4]bgp 2
[r4-bgp]default local-preference 1 本地传递路由给本地所有IBGP邻居时,修改属性为1(比较霸道)

注:只要是R4给的,都需要修改

负载分担:

[r3]ip ip-prefix p permit 1.1.1.0 24
[r3]route-policy p permit node 10
[r3-route-policy]if-match ip-prefix p
[r3-route-policy]apply local-preference 101
[r3-route-policy]q
[r3]route-policy p permit node 20
[r3-route-policy]q
[r3]bgp 2
[r3-bgp]peer 4.4.4.4 route-policy p import 可以在IBGP邻居关系间的出或入方向调用

在这里插入图片描述

3.优先本地下一跳

本地在BGP协议中宣告本地路由表中的IGP路由时(直连),在本地的BGP表中下一跳地址为0.0.0.0,而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0,本地优选0.0.0.0路由传递给本地的其他BGP邻居。
在这里插入图片描述

4.AS-path(记录路由条目经过的所有AS编号)

注意AS号的添加,一定是在EBGP邻居间进行的;
优选经过的AS号数量最少的路径; 同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收。
可以人为的在EBGP邻居关系间,增加AS号的数量来干涉选路;修改A路径,优选B路径。因为人为操作只能添加,不能减少。
可以干涉到EBGP和IBGP关系选路,但只能在EBGP关系设备间配置
新增的AS号处于列表的最左端
在这里插入图片描述
在这里插入图片描述

ip ip-prefix as index 10 permit 1.1.1.0 24

route-policy as permit node 10 
 if-match ip-prefix as 
 apply as-path 3 4 5 additive
#
route-policy as permit node 20

bgp 2
peer 12.1.1.1 route-policy as import

出向调用为  x 3 4 5   X代表实际经过过的AS
入向调用为  3 4 5 X   X代表实际经过过的AS
新增AS号处于列表的最左端;

注:以上配置方式,若网络后端真实存在AS3/4/5.那么由于EBGP水平分割,将导致这些路由无法被学习;
解决方案:重复添加实际已经经过的AS编号来增加数量
[r2-route-policy]apply  as-path  1 1 1 additive

5.起源属性—来源(该条目的来源,通过什么方法进入到BGP协议的)

  • network:一条一条宣告产生,符号i
  • import-route:重发布,IGP重发布到BGP,批量的导入BGP协议,符号?
  • EGP重发布到BGP,符号e
  • i>e>?
BGP宣告本地路由表中路由                     i   
将本地路由表中IGP路由重发布到BGP协议      ?
将本地路由表中EGP路由重发布到BGP协议      e
规则 i优于e优于?
[r3]ip ip-prefix o permit 1.1.1.0 24
[r3]route-policy o permit node 10
[r3-route-policy]if-match  ip-prefix o 
[r3-route-policy]apply origin egp 2    编写对端设备的AS号
[r3-route-policy]q
[r3]route-policy o permit node 20
[r3-route-policy]q
[r3]bgp 2 
[r3-bgp]peer  2.2.2.2 route-policy o import
控制层面流量的入或出接口调用均可;

在这里插入图片描述

6.MED(多出口鉴别属性)

在这里插入图片描述

BGP协议默认没有度量值,没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;
可用于干涉EBGP/IBGP关系下的选路;最常用于干涉EBGP关系选路;
常常用于AS1干涉AS2对AS1的选路;
<r1>ping -r -a 1.1.1.1 3.3.3.3
[r1]ip ip-prefix med permit 1.1.1.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix med
[r1-route-policy]apply cost 2
[r1-route-policy]q
[r1]route-policy med permit node 20
[r1-route-policy]q
[r1]bgp 1 
[r1-bgp]peer  12.1.1.2 route-policy med export

排错常用命令

在这里插入图片描述
在这里插入图片描述

BGP选路规则

比较前提:多条BGP路由目标相同,且均可优(下一跳可达,同步关闭),具有相同的优先级(管理距离)

	优选Preference_Value值最高的路由(私有属性,仅本地有效)。 
    不传递  权限最高属性    可以干涉EBGP/IBGP选路
	优选本地优先级(Local_Preference)最高的路由。
    IBGP邻居关系间传递    只能,最常干涉IBGP关系的选路
	优选手动聚合>自动聚合>network>import>从对等体学到的。
	优选AS_Path短的路由。
    EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
	起源类型IGP>EGP>Incomplete。
    起源属性 i优于e优于?; 可在控制层面任意接口修改;
	对于来自同一AS的路由,优选MED值小的。
    默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
    最常用于干涉EBGP选路的属性
	优选从EBGP学来的路由(EBGP>IBGP)。
	优选AS内部IGP的Metric最小的路由。(度量值)
	优选Cluster_List最短的路由。(相当于RID最小的)
	优选Orginator_ID最小的路由。
	优选Router_ID最小的路由器发布的路由。
	优选具有较小IP地址的邻居学来的路由。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

BGP的社团属性

是BGP的扩展属性,默认大多数厂商的产品在BGP协议中不携带社团属性

例:控制传播范围的社团属性
[r1]route-policy com permit node 10
[r1-route-policy]apply community no-advertise  针对所有的流量修改属性

[r1]bgp 1 
[r1-bgp]peer 12.1.1.2 route-policy com export
默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性  
[r1-bgp]peer 12.1.1.2 advertise-community   逐跳行为,每台设备均需开启传递性
no-advertise  接收到的条目中若存在该社团属性,将不再传递该路由
no-export   接收到的条目若存在该社团属性,将不传递给下一个AS
no-export-subconfed  接收到的条目若存在该社团属性,将不传递给下一个小AS
若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致

揭示next-hop-local秘密

[r2]bgp 64512
[r2-bgp]peer 172.16.1.3 next-hop-local 该命令表面上意思为本地将路由传递给邻居172.16.1.3时,修改BGP条目中下一跳地址为本地r2的ip地址;

但是实际仅针对r2从本地的EBGP邻居学习到的路由传递给172.16.1.3才修改,本地从其他IBGP邻居处学习到的所有路由再传递给172.16.1.3这个IBGP邻居时不修改下一跳地址;意义在于:IBGP邻居间传递路由在一个AS内部,若贸然修改属性,极易出现环回—维持AS-BY-AS特性

BGP协议开启负载均衡

[r1-bgp]load-balancing as-path-ignore  BGP协议开启负载均衡,仅针对EBGP路由有效
条件为均衡的这些路径,其对端一定为同一个AS;且在BGP表中仅显示优最佳;但路由表中出现负载均衡现象;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^~^前行者~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值