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 并不直接参与自治系统(AS)内部的路由计算,而将内部网关协议(IGP)计算得出的路由信息,高效传递给其他 AS,实现不同自治系统间的路由互通。与常见的路由协议不同,BGP 协议中不存在 “开销值” 的概念,它通过为每条路由信息赋予特定属性,如 AS 路径、本地优先级、MED(多出口鉴别器)等,来进行路由选择与路径决策。​

        BGP 摒弃了传统的周期更新方式,采用触发更新策略。只有当网络拓扑发生变化,如路由条目新增、删除或属性变更时,BGP 才会发送更新消息,这种机制极大减少了网络带宽占用。

        BGP 作为路径矢量型无类别路由协议,通过传递路由条目获取路由信息,基于 TCP 179 端口保障传输可靠性;因 TCP 面向连接特性需手工配置邻居(不支持广播发现),且依赖 IGP 协议构建底层连通性以支持非直连建邻。

EBGP和IBGP概念:   

  • EBGP:运行于不同 AS 之间的BGP称为EBGP。
  • IBGP:运行于相同 AS 内部的BGP称为IBGP。

二.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 

十.BGP社团属性

    BGP社区属性是BGP路由协议中的一种特殊属性,可以用于指定一组AS号码,表示这些AS号码的路由不会被转发到这些AS之外的网络。它可以用于限制或控制路由的传播范围,保证路由的可控性和安全性,并且被广泛应用于ISP之间的路由控制和安全管理。在BGP协议中,社区属性可以被视为一种标记,用于对路由进行分类和管理。它可以用于限制和控制路由的传播范围,以及在网络中实现访问控制和QoS保障等功能。

社团属性有32位二进制构成,一条路由条目中可以打上多个路由条目

公有社团属性

1.0X00000000(16进制)---转化位10进制---0

  • 别名“internet” 
  • 所有路由器默认加入该社团中,抓取该社团属性相当于抓取所有路由信息

2.0XFFFFFF02 

  • 别名“no-advertise” 
  • 路由器收到打上该社团属性的路由信息将不再通告给其它BGP对等体

3.0XFFFFFF01

  • 别名“no-export”
  • 路由器收到打上该社团属性的路由条目将不再通告给EBGP对等体(不包含联邦EBGP对等体)

4.0XFFFFFF03

  • 别名“no-export-subconfed”
  • 路由器收到打上该社团属性的路由条目将不再通告给EBGP对等体(包含联邦EBGP对等体)

配置命令 

#做策略
[r1]route-policy aa permit node 10
#在路由策略中打上社团属性标记
[r1-route-policy]apply community no-advertise  
#调用
[r1-bgp]peer 12.0.0.2 route-policy aa export
#开启社团属性传递功能,R1将社团属性传递给R2 
[r1-bgp]peer 12.0.0.2 advertise-community 

 抓取社团属性流量

#做策略
[r1]route-policy 1 pemit node 10
#打上社团属性标记
[r1-route-policy]apply community 1:11 #1:11代表生产网段标记
#针对所有流量的策略无需放通所有

#发布路由时调用策略
[r1-bgp]network 172.16.1.0 24 route-policy 1 
#可以使用重发布技术批量打标记
#办公网段打标记方法如上

使用社团属性过滤器根据社团属性抓取流量 

#创建社团属性过滤器抓取社团属性
[r1]ip community-filter 1 permit 1:11# 编号 1 代表基础过滤器
#抓取办公网段流量配置如上

做路由策略实现效果 

#根据社团属性拒绝生产网段段流量
[r1]route-policy 2 deny node 10
[r1-route-policy]if-match community-filter 1
#
[r1]route-policy 2 permit node 20
[r1-route-policy]if-match community-filter 2
[r1-route-policy]apply community no-export additive #additive 在原先的基础上添加新的社团属性
                                                    #不添加会覆盖
#放通所有
[r1]route-policy 2 permit node 30 
#调用
[r1-bgp]peer 12.0.0.2 route-policy 2 export 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北 染 星 辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值