BGP总结

BGP边界网关路由协议属于无类别的路由矢量协议,EGP协议中最流行的技术,工作在AS之间
EBGP:外部网关路由协议-BGP,外部BGP邻居关系,建邻的两台设备处于不同的AS中
IBGP内部网关路由协议-RIP、OSPF、EIGRP:内部BGP邻居关系,建邻的两台设备处于相同的AS中
AS:自治系统,全球网络-范围、管理域
AS号:标准(16位二进制构成),0~65535(其中1~64511公有,64512~65535私有);扩展(32位二进制构成)
BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路
IGP协议特点:1、无环(选路佳);2、收敛快;3、占用资源少
EGP协议特点:1、可控性强(管理员可以方便进行策略干涉选路);2、可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居)基于TCP工作 -三次握手四次断开 4种可靠传输机制 --  TCP只能基于单播工作
单播—需要IP可达—依赖IGP    BGP承载于IGP之上   ;3、AS-BY-AS  以一个AS为一跳


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


BGP数据包基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;首先通过TCP的三次握手来寻找到邻居
Open       仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive    保活    周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
Update     携带路由条目     目标网络号+各种属性
Notification   出现错误数据时收发;


BGP的工作过程
1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;
会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表;--- 装载本地发出及接收到的所有路由条目;
默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)
3、收敛完成,仅keeplive周期保活即可;
4、若出现错误信息,邻居间将使用Notification报文进行报错操作
5、结构突变
    1)新增  --- 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
    2)断开  --- 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含,只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目
    3)无法沟通 --- hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由;


BGP的路由黑洞问题
非直连建邻到达控制层面路由条目可传递,递归计算路由可达;
而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回
1、物理、逻辑拓扑全连 --  物理链路直连、或者vpn
2、邻居关系全连 – 网络中所有设备运行BGP 
3、BGP重发布到IGP(LAB)
4、MPLS 多协议标签交换--- 推荐做法


BGP的防环机制 –水平分割
1、EBGP水平分割—解决EBGP环路;
      依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;
2、IBGP水平分割—解决IBGP环路由中的一种机制
      本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS);在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;后期可以依赖打破水平分割的机制来解决---联邦、路由反射器


BGP的基本配置过程:
【1】BGP邻居关系建立,与路由条目宣告是分开的配置的
    1)直连的EBGP邻居关系建立
    2)IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递
    3)  EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立
【2】BGP的宣告,运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输
注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致;在BGP协议中,若通过本地传递过来的路由条目,与本地路由表中已经存在且用于建立BGP邻居关系的路由相同时,该条目将不能优秀


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


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

BGP的认证 ---邻居间进行身份核实的方法:两邻居间用秘钥进行身份核实


BGP的聚合(汇总)
      1、不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量;
宣告特征—本地路由表中任何方式产生的路由均可被BGP宣告;
不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中;
在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不一定能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制;
以上的汇总配置完成后,若还需要同时传输部分明细路由,再逐一宣告需要传递的明细路由即可;
      2、标准的BGP聚合配置
    1)先逐条宣告所有的明细路由
    2)再在更新源路由上进行聚合配置,自动产生空接口防环路由
      3、路由传递干涉策略
    1)抑制列表 – 先让设备将所有路由传递出去,再调用抑制策略
    2)Route-map  在BGP中将route-map当分发列表用
    3)分发列表
          4)前缀列表 – BGP协议中可以直接将前缀列表作为分发列表调用


有条件的打破IBGP水平分割
在一个AS中一台设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系;又由于IBGP的水平分割规则,导致从外部学习到的路由传递给本地AS时,需要和本AS中所有运行BGP协议的设备逐一建立IBGP邻居关系;----两两间均为IBGP邻居关系,建立数量成指数上升;
所谓有条件的打破,是指在保障无环的前提下消除IBGP水平分割机制;--AS-BY-AY
【1】路由反射器    角色:RR反射器   客户端  非客户端
无论客户端还是非客户端都必须是RR的IBGP邻居; 由RR作为中心点与多个客户端、非客户端构成一个簇(组);在一个簇内存在一台RR和至少一台客户端;也可以一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端;
反射规则:不优路由不能被传递,自然也不能被反射;
1、RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
2、RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
3、RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;
【2】联邦-将一个AS,逻辑的分为多个小AS;对外依然遵循大AS号传递规则;
但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改;  
1)所有操作基于小AS号进行;
2)AS内所有设备需要定义自己所在的大AS号
3)小AS间的BGP设备需要告知对端的小AS号


BGP的属性—基础属性
                           传播范围                  默认值                大/小 优
1、PrefVal(优先级)   不传播                   0-65535                  大
该属性为私有属性(华为)
负载分担:访问不同目标时,让路由器选择不同的路径;起到所有路径被使用效果;
路由策略来实现—在BGP路由控制层面传递的过程中,抓取路由修改属性 
                                   传播范围                    默认值                大/小 优
2、LocPrf 本地优先级   整个AS内部-IBGP邻居间     100(0-255)          大
用于干涉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关系设备间配置;
5、起源属性 – 该条目的来源—通过什么方法进入到BGP协议的
BGP宣告本地路由表中路由                     i   
将本地路由表中IGP路由重发布到BGP协议      ?
将本地路由表中EGP路由重发布到BGP协议      e
规则 i优于e优于?
6、MED -多出口鉴别属性    
BGP协议默认没有度量值,没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;
可用于干涉EBGP/IBGP关系下的选路;最常用于干涉EBGP关系选路;
常常用于AS1干涉AS2对AS1的选路;


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最短的路由。
优选Orginator_ID最小的路由。
优选Router_ID最小的路由器发布的路由。
优选具有较小IP地址的邻居学来的路由。


BGP的社团属性
     BGP的扩展属性   默认大多数厂商的产品在BGP协议中不携带社团属性
     默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性
     no-advertise  接收到的条目中若存在该社团属性,将不再传递该路由
     no-export   接收到的条目若存在该社团属性,将不传递给下一个AS
     no-export-subconfed  接收到的条目若存在该社团属性,将不传递给下一个小AS,若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致


BGP的配置
ip ip-prefix 策略名 permit(允许)/deny(拒绝) IP网段 网络掩码:汇总需要进行操作的网段
ip ip-prefix 策略名 permit(允许)/deny(拒绝) IP网段 le(小于等于)/ge(大于等于) mask子网掩码:替换前缀列表
display bgp peer:查看BGP邻居表
display bgp routing-table:查看BGP表
display bgp routing-table peer IP地址 received(接收)/advertised(发送)-routes:仅查看本地从邻居IP接收到的BGP路由或发送给邻居IP的路由
route-policy 策略名 permit(允许)/deny(拒绝) node 节点号(0~65535):创建路由策略
if-match ip-prefix 策略名:匹配汇总网段对应的策略名
apply preferred-value 优先级:修改优先级属性
apply origin egp AS号:编写对端设备的AS号
apply cost cost值:修改cost值
bgp AS号:启动BGP协议,启动时需要输入AS号,BGP没有多进程概念
router-id ID号:创建该AS区域的BGPRID号,不配置将自动生成
confederation id AS号:申明本地的大AS号
confederation peer-as 联邦AS号:告知本地直连的其他小AS号,若没有直连到其他小AS不用配置
peer 对端IP地址 next-hop-local :将本路由器从EBGP邻居学习到的路由器传递给对端IP时,修改路由条目中下一跳地址为本地的IP地址
peer 对端IP地址 preferred-value 优先级:本地所以通过对端ip学到的BGP路由,优先级全部修改为指定优先级
peer 对端IP地址 as-number 对端AS号:与其他路由器建邻
peer 对端IP地址 reflect-dient:使对端成为本地的客户端,同时本地变成RR
peer 对端环回接口ip connect-interface 环回接口:当建邻时使用的是环回接口时,需要将源地址也修改为环回接口
peer 对端环回接口ip ebgp-max-hop 2:当使用环回建立EBGP邻居关系,必须修改TTL值,否则无法建立 
network IP地址 子网掩码:在BGP协议中宣告该IP地址,宣告的条目必须同本地路由表中的记录完全一致
peer 对端IP地址 password cipher 秘钥:给BGP建邻添加秘钥核实,邻居间的秘钥需要一致
aggregate 汇总后的IP网段 【detail-suppressed】:将汇总后的网段和明细条目均传递,加上detail-suppressed时,只传递汇总后的网段
aggregate IP网段 网络掩码 suppress-policy 策略名:汇总网段并抑制策略内的网段
peer 对端环回地址 route-policy 策略名 export(控制层面的出向)/import(控制层面的入向):在对应方向调用策略
filter-policy ip-prefix 策略名 export(控制层面的出向)/import(控制层面的入向):在对应方向调用策略
default local-preference 1:本地传递路由给本地所以IBGP邻居时,修改属性为1
peer 对端IP地址 advertise-community:逐条行为,每台设备均需开启传递性
load-balancing as-path-ignore:BGP协议开启负载均衡,仅针对EBGP路由有效(使用条件:对端一定为同一个AS;在BGP表中仅显示优最佳;路由表中出现负载均衡现象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值