BGP知识点

1.BGP的基本概念

1、BGP(边界网关协议)是几乎是当前唯一被用于在不同AS之间实现路由交互的EGP。BGP适用于大型的网络环境,例如运营商网络,或者大型企业网。BGP支持VLSM、支持CIDR(无类域间路由),支持自动路由汇总、手工路由汇总。

2、BGP使用TCP作为传输层协议,目的TCP端口为179

3、两台互为对等体的BGP路由器首先会建立TCP连接,随后协商各项参数并建立对等体关系,初始情况下,两者会同步双方的BGP路由表,在BGP路由表同步完成后,路由器不会周期性发送BGP路由器更新,而只发送增量或在需要时进行触发性更新,这大大减小了设备的负担及网络带宽损耗

4、BGP按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)。

EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。

IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

2.BGP特点

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

3.BGP报文种类

Open:负责和对等体建立邻接关系。
KeepAlive:该消息在对等体之间周期性地发送,用以维护TCP的连接。(60s)
Update:该消息被用来在BGP对等体之间传递路由信息。(通告和撤销路由)
Notification:当BGP Speacker检测到错误的时候,就发送给消息给对等体。
Router-refresh:用来通知对等体自己支持路由刷新能力。

4.BGP邻居

(1)BGP的邻居关系

BGP邻居关系建立在TCP连接的基础之上。

可以通过IGP或静态路由来提供TCP连接的可达性。

注:BGP的邻居是通过单播的方式建立的,所以首先需要在BGP进程下手动配置邻接地址。BGP没有自动发现邻居的机制,只能手动建立。

(2)BGP影响邻居建立的条件

停留在Idle状态。
没有到达Peer的路由条目。
EBGP多跳。(不去发送TCP的建立连接报文)
停留在Connect或者Active状态。
源地址错误。(查看对端的IP地址是否是本地指定的邻居地址)
TCP的认证。(TCP MD5)
有到达peer的路由,但是路由错误。
过滤了TCP的报文。

5.BGP状态机

Idle:BGP连接的第一个状态。在空闲状态,BGP在等待一个启动事件。启动事件出现以后,BGP初始化资源,复位连接重试计时器(Connect-Reitry),发起第一条TCP连接,同时转入Connect(连接)状态。

Connet:在此状态,BGP发起第一个TCP连接,如果连接失败,则进入到active状态。如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active状态。

Active:在此状态,BGP总是在试图建立TCP连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就继续保持在Active状态,并继续发起TCP连接。

OpenSent:在此状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open报文,并对收到的Open报文进行正确性检测,如果有错误,系统就会发送一个条出错的通知消息并回退到Idle状态。如果没有错误,BGP就开始放KeepAlive报文,并复位KeepAlive计时器,开始计时。同时转入OpenConfirm状态。

OpenConfirm:在此状态,BGP等待一个KeepAlive报文,同时复位保持计时器,如果收到一个KeepAlive报文,就转入Established阶段,BGP邻居的关系就建立起来了。

Established:在此状态,BGP邻居关系已经建立,这时,BGP将和它的邻居们交换Update报文,同时复位保持计时器。

另外,在除Idle状态以外的其他五个状态出现任何ERROR的时候,BGP状态机就会回退到Idle状态。在BGP对等体建立的过程中,通常可见的三个状态是:Idle,Active,Established。

Idle状态下,BGP拒绝任何进入的连接请求,是BGP的初始状态。

6.BGP路由通告原则

连接建立时,BGP Speaker只把本身用的最优路由通告给对等体。

多条路径时,BGP Speraker只选择最优的路由放入路由表。

BGP Speraker从EBGP获得路由会向它所有的BGP对等体通告(包括EBGP和IBGP)。

通告给EBGP时,下一跳为自己。(注:如果通告路由的EBGP邻居需要接收的的EBGP邻居在同一网段,则通告时不修改下一跳。)

通告给IBGP时,不更改下一跳。防止次优路径。

BGP Speraker从IBGP获得的路由不会通告给其他的IBGP邻居。

IBGP的水平分割原理:从一个IBGP邻居收到的路由条目不会再通告给其他IBGP邻居。

如果想让所有的IBGP邻居都能收到路由,有三种解决方案:

全互联(每两台设备之间都建立IBGP邻居)。
RP(路由反射器)。
联盟
BGP与IGP的同步。从IBGP邻居学来的路由信息:

如果同步关闭:会将从IBGP学到的路由传给eBGP邻居

如果同步开启:BGP不将从IBGP对等体获得的路由通告给它的EBGP对等体,除非该路由信息也能通过IGP获得。

7.BGP选路规则

如果此路由的下一跳不可达,忽略此路由。
优选协议首选值(PrefVal)最高的路由。
优选本地优先级(Local_Pref)最高的路由。
优选本地生成的路由。
优选AS路径最短的路由。
比较Origin属性,依稀选Origin类型为IGP、EGP、Incomplete的路由。
优选MED值最小的路由。
优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
优选到下一跳IGP Metric较小的路由。
优选Cluster_List最短的路由。
优选Router ID最小的路由器发布的路由。
比较对等体的IP address,优选从具有较小IP地址的对等体学来的路由。

8.BGP路由汇总

自动汇总:

开启BGP自动汇总后,只能针对重分发的进BGP的外部路由做自动汇总,并且只汇总成主类路由。

手动汇总:

手动汇总优先于自动汇总。

detail-suppressed //抑制明细路由。

suppress-policy //指定抑制哪些明细路由。

origin-policy //配置起源策略,针对哪些类型的路由做汇总,可以匹配属性。

as-set //用于汇总路由基础明细路由的AS-Path属性,防止环路问题。

**注:**如果汇总的明细路由来自不同AS,则汇总路由继承的明细路由AS—path属性标识为无序。

如果明细路由来自同一个as,则汇总继承的明细路由AS-Path为有序。

attribute-poliy //为汇总路由配置属性。

9.有条件的打破IBGP水平分割

1)反射器
三个角色:RR 客户端 非客户端

此三种角色构建成为一个簇,可以理解为RR是中心,客户端和非客户端是分支

要求所有的分支与中心为IBGP邻居关系,在一个簇里至少存在一台客户端设备。

一台设备可以同时是RR和客户端。

反射规则:

1、RR从一台EBGP邻居处学习到的路由可以传递给本地的客户端、非客户端和其他EBGP邻居关系

2、RR从一个客户端邻居处学习到的路由可以传递给本地的其他客户端,非客户端和其他EBGP邻居

3、RR从一个非客户端邻居处学习到的路由可以传递给本地的客户端和其他EBGP邻居,不得传递给本地的非客户端

非非不非

注意:若路由条目不优秀,则RR不能反射。

[r3]bgp 2 //R3为RR

[r3-bgp]peer 2.2.2.2 reflect-client //该指令指定了本地为RR同时2.2.2.2邻居为本地的客户端。

本地的客户端

2)联邦
将一个真实的大AS逻辑的分成若干个小AS,小AS的编号建议使用私有AS号(64512-65535);

小AS之间构成了联邦内的EBGP邻居关系,可以像真实的EBGP邻居关系一样传递BGP路由条目,但是基于AS-BY-AS,属性不会法神变化。

对于该大AS之外的其他真实的AS,不知道内部小AS的情况。

[r2]bgp 64512 //配置时基于小AS号进行

[r2-bgp]confederation id 102 //在联邦内指定大AS号

[r3-bgp]confederation peer-as 64513 //小AS之间需要互相指定小AS号

**注意:华为路由器中,必须先定义大AS的ID,再配置小AS号的互指,然后再手工指定邻居关系。

[r3-bgp]peer 4.4.4.4 as-number 64513

[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 1

[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2

在实际工程中,联邦和反射器会被同时使用,降低配置量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络涉及的知识点非常广泛,以下是一些重要的知识点: 1. 网络体系结构:了解计算机网络的体系结构,包括客户端/服务器架构、对等网络架构和分布式系统。 2. 网络协议:熟悉常见的网络协议,如TCP/IP协议族、HTTP、DNS、FTP等。了解这些协议的工作原理和功能,以及它们在网络通信中的应用。 3. IP地址和子网划分:理解IP地址的结构和分类,了解子网划分的概念和方法。能够进行IP地址的规划和配置。 4. 路由和转发:了解路由器的工作原理,包括路由表、路由选择算法和数据包转发过程。熟悉常见的路由协议,如RIP、OSPF和BGP。 5. 网络安全:了解网络安全的基本概念和原则,包括身份认证、访问控制、数据加密和防火墙等。掌握常见的网络攻击类型和防御措施。 6. 网络设备和技术:熟悉常见的网络设备,如交换机、路由器、防火墙和负载均衡器。了解虚拟化和云计算等新兴网络技术。 7. 网络性能优化:了解网络性能优化的方法和技术,如带宽管理、流量控制和拥塞控制等。能够使用网络监测工具进行性能分析和故障排除。 8. 网络应用开发:熟悉网络应用开发的基本原理和技术,如Socket编程、Web服务和RESTful API设计。 这些知识点只是计算机网络领域的一部分,但它们是构建一个稳定、安全和高效网络的基础。在实际应用中,还需根据具体需求深入学习和掌握相关知识。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值