HCIP---BGP协议

目录

前言

一.BGP协议概述

二.BGP协议简介

   EBGP和IBGP概念:   

目录

前言

一.BGP协议概述

二.BGP协议简介

   EBGP和IBGP概念:   

TTL值概念:  

二.BGP工作原理

BGP工作中的5类报文:

三.BGP的状态机

BGP协议状态机:

四.BGP工作过程 

五·.路由黑洞

六.BGP防环机制:

EBGP水平分割:

IBGP水平分割:

路由反射器

联邦

七.BGP基本配置:

建邻基本配置 

BGP的路由发布

BGP路由聚合

八.BGP选路原则

拓扑图


前言

           根据AS自治系统可以将动态路由协议划分为IGP和EGP协议。IGP协议是应用在AS内部,如HCIA当中学到的OSPF,RIP等协议,而EGP协议用在AS之间,用于获取不同AS的路由信息,例如BGP协议。


一.BGP协议概述

         BGP(Border Gateway Protocol,边界网关协议)是一种在互联网中广泛使用的路由协议。它主要用于在互联网中传递路由信息,帮助互联网上的各个自治网络(AS,Autonomous System)之间建立连接,并进行路由选择BGP协议是一种自治系统间的协议,用于控制路由的传递和选择。它能够实现异构网络之间的互操作,保证网络的可靠性和可扩展性。BGP协议的主要功能包括:路由选择、路由信息交换、路由策略控制等。

二.BGP协议简介

  • BGP通过传递路由条目来获取路由信息
  • BGP协议是一种路径矢量型协议
  • BGP协议是一种无类别的路由信息
  • BGP协议为保证传输可靠性和稳定性使用TCP协议作为传输层协议,端口号179

       RIP是距离矢量型协议的一种,使用贝尔曼福特算法,以路由器为跳数计算,而BGP协议是路径矢量型协议的一种,以一个AS为跳数传递信息。

       IGP协议的目的是通过自身独有的算法计算出未知网段的信息,根据算法不同将协议分为距离矢量型和链路状态型例如,RIP协议使用贝尔曼福特算法,OSPF使用最短路径优先算法。

      BGP协议作为EGP协议的一种,只负责将IGP协议计算完成的路由信息传递给其它AS。

EGP协议特点:

          在BGP协议中没有开销值的概念,因此BGP协议并非通过开销值来干涉选路,而是通过     给每一条路由信息赋予特定的属性来干涉选路。

           BGP协议具有触发更新,没有周期更新,为了保证可靠性,BGP协议使用TCP协议。 

TCP协议的特点是面向连接的协议,需要在传输数据之前建立连接,并且只能同时建立一个连接,导致TCP协议只能实现单波通信,因此BGP协协议无法通过广播的方式自动发现邻居关系,只能手工配置。 然而BGP协议由于是建立在TCP协议基础上的缘故,可以进行非直连建邻。

  • 非直连建邻的条件:建邻双方必须能够互相通信
  • 运行TCP协议的前提;双方能够正常通信
  • BGP的非直连建邻是建立在IGP基础上的原因:AS内部运行IGP协议帮助双方建立通信

   EBGP和IBGP概念:   

EBGP:运行于不同AS之间的BGP称为EBGP。

IBGP:运行于同一AS内部的BGP称为IBGP。

EBGP对等体关系:建立对等体的两台设备在不同的AS之间

IBGP对等体关系:建立对等体的两台设备在相同的AS之间

     为了保证EBGP对等体关系直连建立,EBGP对等体之间的数据包中的TTL值被设置为 1
     如果EBGP对等体需要非直连建领,则需要将 TTL值改大,而IBGP对等体之间都是非直连建邻。则IBGP对等体数据包的TTL值被设置为255 。 

TTL值概念:  

IP数据包在计算机网络中可以存活的时间或者IP数据包在计算机网络中可以转发的最大跳数

二.BGP工作原理

BGP工作中的5类报文:

Open 报文:

     是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息并协商成功后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-Refresh消息的交换。
Open 报文含有以下几种参数:

  • AS号:

open报文中将携带发出设备所在的AS号,对端收到后会和手工配置邻居中指定的AS号进行对比,如果一致,则可以正常建立对等体关系,否则,不可建立。

  • Router-id:

open报文中将携带自己发出者的RID ,对端收到后,将和自己的RID进行对比,如果相同,则证明RID冲突,对等体关系将建立失败。

  • 保活时间:

在发送open中将携带保活时间,默认180S,如果在保活时间内收到keep-live报文或update报文,将刷新保活时间,时间归零后将判定对等体失效,由于保活时间允许不同,为了实现保活时间的统一执行,选择数值小的作为保活时间执行。

  •  认证参数:

BGP可以进行认证,认证参数携带在tcp的选项字段中,认证不通过,将无法正常建立邻居关系

在进行BGP配置时手工配置的对等体IP地址必须和对端的发送的数据包中的IP相同,否则无法建立对等体关系。

Keep-live报文

   BGP会周期性的向对等体发出Keepalive消息,用来保持连接的有效性,从而保活邻居关系。

周期时间根据保活时间来决定,周期发送时间为保活时间的1/3。

   Open报文中的Keep-live报文主要充当临时确认报文使用,用来确认open报文中的参数是否符合建邻要求,符合则发送keep-live报文确认之后建邻,而非简单的确认数据是否收到,数据传递的可靠性交给TCP来确认(Tcp三次握手)

Update 报文

    用于在对BGP等体之间交换路由信息。

BGP协议中Update报文包含以下信息:

  • 需要撤销的路由信息:如果准备发送新的路由信息,就必须撤销旧的路由信息。

  • 需要新增的路由信息:包含具体的路由信息,如路由的目的地址、下一跳地址、AS_Path属性等。

  • 需要修改的路由信息:更新已经存在的路由信息,例如修改某一路由的属性。

  • 需要撤销的路由属性:指定需要撤销的路由信息的属性。

  • 需要新增的路由属性:指定需要新增的路由信息的属性。

  • 需要修改的路由属性:指定需要更新的路由信息的属性。

  • 路由删减通知: 如果收到的Update报文中不包含某些路由,就需要将这些路由从路由表中删除并通知其他路由器。

 Notification报文

 当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。

  BGP使用这个报文进行错误告警,告知错误点处。预警机制保障BGP全过程 。 

Route-Refresh报文

BGP协议中的Route-Refresh报文是用于更新BGP路由表的一种机制。BGP路由表是由路由器交换的路由信息组成的,当网络拓扑发生变化时,BGP路由表需要及时更新,保证网络的正常运行。Route-Refresh报文可以让BGP路由器重新发送所有的NLRI(描述一个路由器所能到达的目的网络),以便更新路由表。

具体来说,当一台路由器向其邻居发送Route-Refresh报文时,邻居会将所有已经发布的路由信息都清除掉,然后重新发送所有的NLRI给该路由器。这样,该路由器就可以更新自己的路由表,并将新的路由信息传递给其他邻居路由器,从而实现全网的路由信息同步

报文格式 

Marker(标记):16字节,固定为1。
Length(长度):两字节无符号整数。指定了消息的全长,包括头部。
Type(类型):1 字节,指示报文类型,如OPEN、UPDATE报文等
1 – OPEN
2 – UPDATE
3 –NOTIFICATION
4 – KEEPALIVE

三.BGP的状态机

     BGP和OSPF不同,OSPF中只要宣告完成,接口被激活同时该接口所对应的直连网段路由信息将会被通告出去。

    BGP在邻居关系建立完成后发送一次已发布的路由,后续不再主动发送,除非本地路由条目有更新时才发布更新路由v。OSPF的状态机

BGP协议状态机:

Idle:空闲状态

  • BGP建邻之前的初始状态,类似于OSPF中的Down状态,idle状态下的BGP协议会进入一个检查状态,检查完成后进入下一个状态。
  • 检查状态:检查需要建邻的路由器是否可达,是否具备TCP会话建立的条件。

为什么要进入检查状态? 

  1. OSPF是以组播或广播的形式通信且OSPF是直连建邻,无需担心通信问题无需检查。
  2. BGP协议中不仅有直连建邻还有非直连建邻,如果是非直连建邻,则存在建邻目标·数据布可达的问题。
  3. BGP协议的确认机制是建立在TCP协议之上的,如果建邻目标无法通信,将导致无法进行TCP的三次握手,无法完成TCP的建立。

Connect状态:

  • 该状态尝试建立TCP会话
  • 建立成功进入送open报文进入OpenSent状态
  • 建立失败进入Active状态

注:TCP是建立一个双向的会话,当R1与R2建立BGP邻居时,假设双方都进入Connect状态,R1会找R2.R2会找R1三次握手,由这将导致R1与R2之间建立两条双向的会话通道,导致资源浪费,因此BGP会保留后建立的会话通道,拆除先建立的会话通道

OpenSent状态:

  • 在接收到对方的open报文之后,BGP将会检查open报文中的参数(AS号,版本号,认证码等)
  • 如果收到的Open报文参数正确,则回复keep-live报文进行确认,并进入Opencomfirm状态
  • 如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。

Opencomfirm状态

  • BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

Established状态

  • 如果收到正确的Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接,此时双方通过update报文交换路由信息
  • 如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
     
  • Route-refresh报文不会改变BGP状态。 如果收到Notification报文,那么BGP转至Idle状态。
  • 如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。
BGP状态机总结

Peer状态

用途
Idle开始准备TCP的连接并监视远程对等体,启用BGP时,要准备足够的资源
Connect

正在进行TCP连接,等待完成连接,认证都是在TCP建立期间完成

如果TCP建立失败则进入Active状态,反复尝试连接

ActiveTCP连接没建立成功,反复尝试TCP连接
OpenSentTCP连接已经建立成功,开始发送Open包,Open包携带参数协助对等体的建立
OpenConfirm参数,能力特性协商成功,自己发送keeplive包,等待对方的Keeplive包
Established收到对方的Keeplive包,双方能力特性经协商发现一致,开始使用Update通告路由信息

四.BGP工作过程 

  • 基于IGP实现IP可达
  • 手工指定邻居关系,邻居之间通过单播进行通信,通过三次握手,建立TCP会话通道,之后,BGP的所有报文通过TCP会话通道传递。
  • 通过open报文和keep-live报文进行邻居关系的建立,在邻居关系建立完成后,将会把邻居关系收集记录在邻居表中。
  • 使用update更新报文携带路由信息传递个邻居,之后BGP会将收集到的路由信息记录在BGP表中

注: update报文包含:目标网络号,掩码以及路径属性

BGP不直接将路由信息刷新到路由表中的原因?

      BGP不允许存在负载均衡,当出现多条到达目标网段的路由,BGP会将这些路由信息记录在BGP表中,然后选择最优的路由信息加载到路由表中

  •  选择到达目标网段最优路径加载到本地的路由表中
  • 收敛完成后,将使用keep-live报文进行周期保活---1/3hold time---默认60s
  • 如果全过程中出现错误将使用notification报文进行告警
  • 如果发生结构突变则将进行出发更新---直接发送update报文进行更新

五·.路由黑洞

 通过下图来清晰了解一下什么是BGP协议的路由黑洞

R1需要将1.0.0.0/8这个网段信息发布到其它AS区域中,保证其它AS区域能够收到该网段信息

网段信息发布过程分为控制层面流量可达和数据流量层面可达

具体过程如下:

控制层面流量可达:一条路由信息可在每个AS区域之间正常传递

  • R1通过EBGP对等体关系将网段信息发布给R3,R3收到该网段信息后通过IBGP对等体关系将网段信息通过R4/R5发送给R7,R7通过EBGP对等体关系发送给R2。

 数据层面流量可达:数据可正常访问目标网段

  • 当报文通过R2访问R1时,R2查看本地路由表发现下一跳是R7,R2将报文发送给R7,R7收到报文之后,查看路由表发现去往R1的路由信息中R3是下一跳,R7路由表中去往R3的路由信息中R4是下一跳,R7会将报文发送给R4,而R4查看本地路由表无法查询目标网段对应的到下一跳,报文将无从转发而被R4丢弃,产生有去无回的路由黑洞。

 R4无法查询到下一跳的原因:

R4仅仅充当一个转发的角色,没有运行BGP协议,R4没有权限查看路由信息

解决办法:MPLS

 MPLS

注:点击此处了解MPLS 

在BGP协议中存在路由黑洞,产生黑洞的原因这里不过多赘述,MPLS主要从以下方面解决黑洞:

  • MPLS将流量标记为标签,而不是IP地址,这意味着路由器可以根据标签进行路由,而不需要考虑IP地址的变化。因此,即使BGP路由表中的一些IP地址无法到达目标,其他标签仍然可以被正确转发

 案列分析:

拓扑描述:R1-R2:EBGP   R2和R5:非直连建邻IBGP  R5-R6:EBGP  area 1:运行MPLS

黑洞原因:R1发送给6.6.6.0网段的报文来到R2后,R2查找路由表发现下一跳时R5,想要去往R5,需要通过R3转发,因此R2会将报文转发给R3,报文来到R3后,R3查找路由表并未发现6.6.6.6.0网段的路由信息,报文无从转发将被丢弃,到此黑洞产生。

  • R2路由表以及FIB表:

 

  根据R2 FIB表中 6.6.6.0网段的Tunnel隧道标记为0X0,意味着该网段未建立LSP链路,不运行MPLS,报文会转发给下一跳23.0.0.2(R3)产生黑洞。

 解决办法:使报文访问通过非直连BGP对等体传递的网段信息时,优先进行标签交换。

 让6.6.6.0网段的报文在R3上转发时优先进行标签交换,走LSP链路从而到达R5,将报文交给R5正常转发。(R5含有6.6.6.0网段的路由信息)

配置命令: 

#配置如下命令使R2优先使用MPSL隧道转发
[r2]route recursive-lookup tunnel
#查看FIB表细节信息
[r2]dis fib verbose

#R2的BGP对等体也需要配置才能实现回包
[r5]route recursive-lookup tunnel
#使用 ping -a 命令指定发送报文的接口
<r1>ping -a 1.1.1.1 6.6.6.6

 

 

六.BGP防环机制:

  • As_PATH:AS路径属性。是路由经过的AS的序列,即列出此路由在传递过程中经过了哪些AS。它可以防止路由循环,并用于路由的过滤和选择。

EBGP水平分割:

  • BGP协议将路由条目所进过的AS编号记录AS path 中 ,之后接受到的路由条目属性中如果存在本地的AS号,则将拒绝接受,避免环路的出现

IBGP水平分割:

AS-BY-AS原则中,BGP始终将一个AS看作一个整体,默认情况下,一个·AS内部路由属性相同 

上图中,R1将10.1.1.0网段通过EBGP协议通告给 R2 ,R2收到该网段信息后会通告给IBGP对等体R3 ,R3通告给R4 ,R4又会通告给 R2 至此环路出现

IBGP水平分割:当路由器从一个IBGP学来一条BGP路由时将不能传递给其它IBGP对等体

IBGP水平分割缺点:

这种机制导致学来的路由在 IBGP对等体内部只能传递一跳,会导致下图的所示通信障碍、

R4收到信息之后,由于水平分割的特点,将无法发送给R5 

解决办法:路由反射器/联邦

路由反射器

路由反射器简介

路由反射器:Router Refliector 简称 RR 为了解决IBGP水平分割的缺点,可以指定AS区域内的一台设备配置为路由反射器,该路由可以将来自其它IBGP对等体发送的路由信息反射给下一个IBGP对等体。路由反射器和OSPF中的DR设备原理类似。

路由反射器的规则:

  • 必须指定至少一台对等体作为 RR 的客户,剩余的路由器称为非客户
  • 客户和对等体之间将形成反射簇,使用RR 的RID作为簇ID
  • 客户之间+客户与非客户之间不建立邻居关系,客户与非客户仅与RR建立邻居关系。
  • 所有客户发来的路由信息,将通过RR反射给 RR 的客户和非客户
  • 非客户发来的路由将反射给所有的客户
  • 只有可用且优的路由才会被反射

路由反射器解决了水平分割的缺点,同时也打破了水平分割的机制,导致再次存在出现环路的可能,为了防止环路,路由反射器设计了两个属性:

Originator ID(起源者ID)

  • 起源者ID为反射该条路由信息的始发者ID,转发过程中不改变
  • 当路由器收到的路由信息中的起源者ID和 自身 RID相同,将拒绝学习该路由,以此达到防环目的

 环路产生原因:

R1/R2为R3的客户,R1的路由信息发送给R3后,R3将接收的路由信息发送给客户R2,而此时R2同样为RR,同样会将R3收到的路由信息发送给R1,此时产生环路。

解决办法

当R3收到一条路由来自R1的路由信息之后,将给这条路由信息添加起源者ID,当R3反射给R2,R2再次反射给R1时,R1发现该条路由信息中的起源者ID和自身的RID相同,将拒绝学习

Cluster_list(簇列表)、

 上图中,R4发送的路由信息经过层层转发和反射来到R2,R2同样会将该路由信息反射给R1,此时该条路由信息的起源者ID为4.4.4.4 和R1的RID不同,R1将不会拒绝学习该条路由信息,但是R1原本就含有该条路由信息,此时环路出现

Cluster_list(簇列表)则能够有效解决上述问题

#指定R3为路由反射器并指定R2为客户
[R3]bgp 2
[R3-bgp]peer 2.2.2.2 reflect-client
  •  BGP反射簇:是一种BGP网络拓扑结构,它将BGP路由反射器(Route Reflector)组成一个集群(Cluster),并使用集群ID标识,以便于管理和配置
  • 当反射路由离开一个反射簇时,将把该反射簇ID记录在簇列表中,将不学习该路由防止回传

上图中,反射器在反射该条路由信息的同时将上一个路由器的RID作为反射簇添加到路由信息中,R1收到之后,发现簇ID和自身RID相同,将拒绝接收该路由信息

 配置命令:

联邦

IBGP水平分割机制:当该路由信息是从另一台IBGP路由器学习的,将无法发给该AS区域中的另一台IBGP路由

联邦原理将一个大的AS区域中创建多个小AS,那么这些路由器之间将运行EBGP协议,将不受IBGP水平分割机制的影响小的AS之间将形成联邦对等体关系,这种关系遵循EBGP对等体的传输特性,但是遵守IBGP中AS-BY-AS的规则

联邦路由器的AS_path通常用一系列的AS号码来表示。AS表示自治系统,即一组网络和路由器,它们受同一个管理机构控制,并使用统一的协议来进行路由选择。在AS_path中,AS号码按照数据包通过路由路径的顺序排列。例如,一个AS_path可能表示为:AS100 AS200 AS300。这意味着数据包经过了自治系统100、200和300,从而到达目的地。

联邦配置命令:

  • 联邦设备 使用小AS号启动进程

[r2]bgp 64512
  •  配置RID
[r2-bgp]router-id 2.2.2.2
  • 声明64512在大区域AS 2中
[r2-bgp]confederation id 2
  •   建立邻居关系
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
  •  在需要建立联邦的EBGP对等体设备上声明对端联邦AS号
[r3-bgp]confederation peer-as 64513
  •  联邦对等体之间遵循EBGP传递原则,TTL值将被设置为1 需要修改TTL值
[r3-bgp]peer 3.3.3.3 ebgp-max-hop

七.BGP基本配置:

建邻基本配置 

  • 启动BGP进程 
[r1]bgp 1 #1代表AS号
  •  配置Router-ID
[r1-bgp]router-id 1.1.1.1
  • EBGP对等体关系建立邻居
[r1-bgp]peer 12.0.0.2 as-number 2
#建邻是双向的,R2同样需要建邻配置 
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 12.0.0.1 as-number 1

#EBGP对等体之间需要将TTL值修改为1
[r4-bgp]peer 5.5.5.5 ebgp-max-hop #需要双方都进行修改
  •  查看邻居表
[r1]display bgp peer 
BGP邻居表字段解析
VBGP使用的版本号

MsgRcvd/MsgSent

路由器 收到/发送 的数据包数量

OutQ

出栈队列排名号
UP/Down邻居关系建立消耗的时间
PrefRcv从该邻居收到的路由条目数量
  •  IBGP对等体关系建立邻居
#为了减少路由新量,减轻路由器负载量
#IBGP对等体一般采用非直连建邻再搭配MPLS防止路由黑洞
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 as-number 2

#为了方便辨认是娜两个路由器之间建立对等体,使用环回接口建邻更直观
[r2-bgp]peer 4.4.4.4 connect-interface loopback 0
[r4-bgp]peer 2.2.2.2 connect-interface loopback 0

#非直连建邻时需要将下一跳改为本地环回接口
#由于上述建邻时将交互接口改为了环回接口,因此邻居表中下一跳显示为邻居的环回接口
[r2-bgp]peer 4.4.4.4 next-hop-local 
[r4-bgp]peer 2.2.2.2 next-hop-local

BGP的路由发布

BGP路由发布的方法如下几种方法:

通过network命令发布:

在OSPF中,network命令不仅可以激活接口还可以在接口激活的同时发布路由

该命令在BGP协议中同样可以用于发布路由。

  • 使用network命令将路由表中的网段信息发布
[r1-bgp]network 1.1.1.0 24 #将1.1.1.0/24网段信息发布
  •  查看BGP路由信息表
[r1]display bgp routing-table
BGP路由信息表字段解析

Network

目标网段和掩码信息

NetHop:下一跳

发送网段信息的路由器

0.0.0.0

代表路由器本身是始发 路由器

Status codes

状态码

Ogn

起源码


Status codes:状态码

*: 如果下一跳可达,该条路由信息被赋予可达的标识:*

>:优选标识:如果到达同一个目标网段将通属性选择其中最优的赋予优选标记,只有可用且优的路由条目才可以传递给其它的BGP对等体,才可以加到路由表中

i:代表BGP路由是从IBGP对等体发送的

上图可知:BGP中存在AS-BY-AS规则,该规则下IBGP对等体在传递路由时,属性不发生变化,导致下一跳不可达,因此R3收到R2 的路由条目不可用

通过重发布批量发布路由

#该命令无需一条条发布路由,可以按照路由类型发布
[r2-bgp]imporrt-route ospf 1

Ogn:起源码:

i:通过network发布的路由条目,代表该路由起源于IGP协议(包括静态和直连路由)

?:除了i情况发布的路由,其它情况都使用该标识

BGP路由聚合

[r1-bgp]aggregate+(需要聚合的IP地址) 172.16.0.0/22

手工汇总也将生成一条指向汇总的空接口

缺点:

明细没有被抑制,不仅无法减少路由条目数量,反而增加了一条聚合路由

聚合路由不携带明细路由的AS-Path属性将导致路由可能被回传造成路由环路

手工聚合完善:

[r4-bgp]aggregate 172.168.0.0/22 detail-suppressed #在聚合路由的同时抑制明细

八.BGP选路原则

拓扑图

前提:排除所有不可用的路由条目

按照原则序号依次筛选

原则 1

优选preVal值最大的信息:

preVal值(权重属性):

  • 路由信息中previal值越大越优
  • 华为设备的私有属性
  • 仅在本地设备上生效(R1设备上修改的preVal值仅在R1上生效,路由条目到达其它设备后preVal值仍为默认值)
#修改来自RID为3.3.3.3设备的所有路由条目信息PreVal值为100
[r4]bgp 2
[r4-bgp]peer 3.3.3.3 preferred-value 100

上述配置缺点:

R4上所有来自R3的路由条目信息的PreVal值都被修改为较大值,R4优选PreVal值最大的路由,R4会将所有需要转发的数据全部转发给R3,导致R3压力增大。

 负载分担:使不同的流量走不同的路线,分担单一路线的压力

#将10.0.0.0网段路由信息PreVal值单独改大
#使用前缀列表抓取流量
[r4]ip ip-prefix permit 10.0.0.0 24
#创建路由策略
[r4]route-policy 1(策略名) permit node 10 
[r4-route-policy]if-match ip-prefix 1
#修改PreVal值
[r4-route-policy]apply preferred-value 100
#放通其余流量
[r4]route-policy 1 permit node 20     #node 20代表空表即放通所有
#调用路由策略
[r4-bgp]peer 3.3.3.3 route-policy 1 import #import 入方向影响自己,export出方向影响他人
                                           #具体查看路由策略博客

原则 2

优选本地优先级(local pref)最高的路由器

local pref:本地优先级

  • AS内部最常用的属性,仅可在IBGP对等体之间传递
  • 默认值 100
#负载分担
#抓取流量
[r3]ip ip-prefix 2 permit node 10
[r3-route-policy]if-match ip-prefix 2
[r3-route-policy]apply local-preference 200
[r3]route-policy 2 permit node 20

原则 3

到达某网段有两条路由时,优选下一跳是0.0.0.0的路由,次选从对等体学习的路由。

本地始发的路由中:优先手动聚合>自动聚合>network>import (重发布)

#在R2上创建环回接口并在OSPF宣告
[r2]interface loopback 0
[r2]ip address 11.0.0.1 24
[r2-ospf-1-area-0.0.0.0]network 11.0.0.0 0.0.0.255

#R4通过OSPF获得11.0.0.0 网段信息后并发布到BGP中
[r4-bgp]network 11.0.0.0 24

#完成上述操作后,R2将通过R4再次学到由R2发布给R4的路由信息
#R2将优选自己作为下一跳的路由信息,即优选由本地发出的路由信息

 原则 4

优选AS(as—path)最短的路由

#AS_Path 携带的AS号 因此只能在EBGP对等体上配置命令
#抓取流量
[r1]ip ip-prefix 1 permit 10.0.0.0 24
#路由策略
[r1]route-policy 1 permit node 10
[r1-route-policy]if-match ip ip-prefix 1 
#执行修改AS_Path的动作
#使得AS_path多增加一个AS 11 22 33(可继续添加可添加同样的AS号)
#添加重复的AS号例如 1 1 1 1 即可增加AS_Path长度又可防环
[r1-route-policy]apply as-path 11 22 33 additive # additive代表添加  overwrite代表覆盖
#放通所有
[r1]route-policy 1 permit node 20
#调用路由策略
[r1-bgp]peer 12.0.0.2 route-policy 1 export(出方向)

原则 5

优先OGN属性 I > E >?

[r1]rpute-policy OGN permit 10.0.0.0 24
[r1]route-policy OGN permit node 10
[r1-route-policy]if-match ip-prefix OGN
#将OGN改为?
[r1-route-policy]apply origin ?
#放通所有
#调用
[r1-bgp]peer 12.0.0.2 route-policy OGN export 

原则 6

MED,越小越好,控制进入本as流量

  • BGP中的MED值用于告诉其他自治系统(AS)通过哪条路径离开本 AS 是最好的选择。MED值的数值越小,表示经过该路径离开本 AS 的成本越低,这样其他 AS 就更可能通过该路径来访问本 AS。
  • 默认继承IGP协议开销值。
  • 同一个AS内部,IBGP对等体不会将MED值传递给EBGP对等体(边界路由器),此时EBGP对等体默认MED值为0,为了防止邻居AS选择MED默认值为0的对等体,造成选路不佳的问题,需要所有边界设备都发布路由。
[r2]ip ip-prefix MED permit 4.4.4.0 24
[r2]route-policy MED permit node 10
[r2-route-policy]if-match ip-prefix MED
#修改MED值
[R2-route-policy]apply cost 10
#放通所有
[r2-bgp]peer 12.0.0.1 route-policy MED export
#记录ping包经过的路径
[r2]ping -r -a 4.4.4.4 1.1.1.1

原则 7:EBGP优于IBGP路由(联邦EBGP当做IBGP处理)

原则 8:优先最近下一跳(下一跳在路由表中对应的路由条目的比较开销值,无关RIP/OSPF)

原则 9:优先簇列表最短路由

原则 10:优选Router ID最短的设备所通告的路由

注意:如果使用起源者的router id比较必须对方也是也包含起源者属性,起源者属性的router id与正常router id比较,优先选择 正常的router id

原则 11:优选有最小IP地址的对等体所通告的路由

九.BGP过滤

要求:R1发送给R2的路由信息中不包含1.1.1.0网段

1.通过Router-Policy 过滤

#抓取流量
[r1]ip ip-prefix aa permit 1.1.1.0 24
#做策略
[r1]route-policy aa deny node 10
[r1-route0policy]if-match ip-perfix aa
[r1]route-policy aa permit node 20
#调用策略
[r1]bgp 1
[r1-bgp]peer 12.0.0.2 route-policy aa export 

2.过滤列表进行过滤

#过滤列表需要借用低阶列表过滤
[r2]acl 2000
[r2-acl-basic-2000]rule deny source 10.0.0.0 0 
[r2-acl-basic-2000]rule permit source any
#允许所有
[r2]ip ip-perfix aa permit 0.0.0.0 0 less-equal 32
#调用过滤列表---在BGP建邻时只能调用ACL列表进行过滤
[r2]bgp 2
[r2-bgp]peer 12.0.0.1 filter-policy acl 2000 import 

3.前缀列表过滤

[r3]ip ip-perfix aa deny 10.0.0.0 24
[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
[r3]bgp 2
[r3-bgp]peer 12.0.0.1 ip-perfix aa import 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北 染 星 辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值