HCIP第十天作业

BGP -----边界网关协议

AS ----自治系统----由单一机构或组织管理的一些列 IP 网络及其设备的集台。

1,网络范围太大,协议跑不过来,需要进行划分;
2,自治管理

为了方便区分和标定不同的 AS ,我们给每个自治系统设计了一个编号---- AS 号----16位二进制构成 ----0-65535;其中0和65535为保留值,不用,所以, AS 号真正的取值范围为1 - 65534;我们将64512-65534AS号称为私有 AS 号。---- 因为传统的 AS 号存在不够用的问题,所以目前也存在拓展版的 AS 号----32位构成----目前绝大多数设备已经支持拓展版的 AS 号

EGP 协议在之前还存在一款协议----- EGP ,但是由于其功能有限,后来在其基础上进行优化和改进,生成了现在的 BGP 协议。目前 AS 之间使用最广泛的协议就是 BGP 协议。

在目前IPV4环境下,使用最广泛发 BGP 版本是BGPV4。目前市场上已经存在BGPV4+。BGPV4+又可以称为 MP - BGP ----可以支持多种地址族的应用。

在没有 BGP 协议的情况下,仅使用重发布技术,也可以实现 AS 之间的路由信息的共享。但是,之所以不采用这种方案,其原因如下:
1,重发布技术本省存在缺陷-----在多点重发布中,因为种子度量值问题,必然造成选路不佳。
2, ASBR 设备的归属问题。

BGP 之间传递路由信息的方式一定是和 RIP 类似,通过传递路由条目信息来实现。----之所以不使用拓扑信息,主要因为:
1,拓扑信息资源占用量太大,而 BGP 需要传递的数量是巨大的。
2,传递拓扑信息将暴露本 AS 内部的拓扑连接情况。

BGP ----无类别的路径矢量型协议

距离矢量----在距离矢量型协议中,距离是开销的体现,将跳数作为开销值的评判标准。将一个路由器看作是一个单位计算距离。

距离矢量是算法的概念,因为 GP 协议本身需要通过算法来计算出未知网段的路由信息。

路径矢量-----是将一个 AS 看作一个整体

路径矢量不牵扯算法,因为 BGP 仅仅是将 GP 计算出来的路由信息发送到其他 AS 之中,相当于仅将现成的路由进行传递而不需要计算。

IGP -----选路佳,收敛快,占用资源少

BGP 协议的关注点

1,可控性----- AS 之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更容易做路由策略。
为了保证可控型, BGP 舍弃了开销值。取而代之的是 BGP 给每条路由信息附加了很多路径属性。之后,可以通过这些属性来进行选路。因为多种属性的存在,将导致我们的选路变的更加的灵活和方便。使得 BGP 协议具有强大的可操控型。
因为 BGP 协议需要传递大量的路由信息,所以,其本身不可能存在周期更新机制。 BGP 仅存在触发更新。

2,可靠性----需要保证数据传输的可靠。 BGP 为了保证传输的可靠性,其传输层协议直接选择使用 TCP 协议。使用 TCP 的179号端口进行工作。

IGP 协议不选择使用 TCP 的原因:
1, TCP 传输效率较低。
2, TCP 传输占用资源较大。
3, TCP 协议只能实现单播,所以,无法通过组播或者广播的形式发送,则将导致 GP 协议无法自动发现邻居关系,只能手工指定。

因为 BGP 选择使用的是 TCP 协议,所以, BGP 需要手工建立邻
居关系。

BGP 因为传输层使用的是 TCP 协议,所以,只要在 TCP 协议可以正常建立会话的基础上就可以完成 BGP 的建邻工作。---- BGP 支持非直连建邻(网络可达)---- BGP 的非直连建邻建立在 IGP (静态)之上在 BGP 中,我们将邻居关系称为对等体关系。

EBGP 对等体关系----如果建立对等体的两台路由器位于不同的 AS 中,则他们的关系被称为 EBGP 对等体关系。
1BGP对等体关系----如果建立对等体的两台路由器位于同一个的 AS 中,则他们们的关系被称为 IBGP 对等体关系。

因为, EBGP 对等体之间一般使用直连建邻,所以, EBGP 对等体之间发送的数据包中的 TTL 值我们将其设置为1。如果遇到 EBGP 对等体之间需要进行非直连建邻,则需要手工修改 TTL 值。 IBGP 对等体关系在 AS 内部一般都是非直连建邻,所以, TTL 值设置为255。

3, AS - BY - AS -----在 BGP 当中,我们们将一个 AS 看作一个整体。
BGP 协议是不支持负载均衡的。----在 BGP 当中,如果到达同一个目标网段存在多条路径可以走时, BGP 将会根据其中的路径属性来选择一条最优的加载到路由表中,而不会进行负
载均衡。

1, BGP 的数据包

BGP 协议所有数据包的传输的可靠性均由 TCP 协议来保证。所有 BGP 数据包均基于 TCP 建立的会话通道发送。
OSPF 的 Hello ----可以周期性的发现,建立和保活邻居关系。

在 BGP 中,发现邻居关系的过程变为由人手工指定。主要因为 TCP 协议需要建立会话通道,之后才会基于通道发送数据包。

open 包----建立 BGP 对等体关系。----邻居关系的建立无非就是参数协商的过程。 BGP 建立邻居关系需要通过 OPEN 包来携带参数,进行比对协商。

AS 号----在创建邻居关系时需要指定邻居所在的 AS 号,这个参数将被携带在 OPEN 报文中发送给对方,对方将比对这个 AS 号和本地所在的 AS 号是否一致,如果一致,则可以正常建立邻居关系。

认证---- BGP 建邻也可以做认证,做证后将携带认证口令,认证口令双方需要比对,一致则可以正常建立邻居关系。

ROUTE - ID ----区分和标定路由器的。也是由32位二进制构成,按照 P 地址的格式来表示。----1,手工配置;2,自动获取(先看设备是否存在环回接口,如果存在则将选择环回接口中 IP 地址最大的地址作为 RID ,如果没有环回接口,则将在物理接口中选择 IP 地址最大的作为 RID )这个 RID 将在 OPEN 包中携带,发送到对端之后,对端将检测这个 RID ,如果和本地的 RID 不同,则将可以正常的建立邻居关系。

手工建立邻居关系时所指定的建邻的 IP 地址必须和收到的 open 包中的源 P 地址相同才能正常建立邻居关系。否则,邻居关系将建立失败。

Holdtime ----保活时间----默认时间为180S,在保活时间内,如果没有收到对方发送的 keeplive 包或者update 包,则将断开 BGP 邻居关系。这个参数在 open 报文中将被携带,但是,双方不一致不会影响邻居关系的建立,但是在执行时,这个时间必须是一致的,则将采用双方中较小的保活时间来使用。

路由器是否支持刷新功能也将成为 OPEN 报文中所携带的一个协商参数。

keeplive 包----周期保活----周期发送时间等于保活时间的1/3。默认保活时间180S,则默认的周期发送时间为60S。

除了保活之外, keeplive 包还将在 open 报文协商参数时临时充当确认包的作用。

TCP 协议进行确认的目的是为了保证数据传输的可靠性,而 keeplive 报文确认的目的是为了确认认可对方发送的 open 报文中的参数。

update 包----更新包----携带需要传递的路由信息的数据包。表示一条路由条目信息,需要携带的参数主要就是目标网络号和子网掩码信息,以及路径属性。

在更新包中,存在一个撤销路由条目字段,在这个字段下的路由条目将需要对端删除,而不再需要通过带毒传输的方式来表达。

notification 包---- BGP 中设计的一个告警机制。

Route - refresh 包----用于改变路由策略变更后请求对等体重新发送路由信息。(前提条件是双方均支持路由刷新功能才行。)

2, BGP 的状态机

BGP 的状态机描述的是 BGP 对等体建立过程中状态的变化。因为 BGP 这个协议可以将邻居建立过程和路由收发过程分开进行。
BGP 的状态机----6种

Peer 状态名称用途
dle开始准备 TCP 的连接并监视远程对等体,启用 BGP 时,要准备足够的资源
Connect正在进行 TCP 连接,等待完成中,认证都是在 TCP 建立期间完成的。如果 TCP 连接建立失败则进入 Active 状态,反复尝试连接
ActiveTCP 连接没建立成功,反复尝试 TCP 连接
OpenSentTCP 连接已经建立成功,开始发送 Open 包, Open 包携带参数协商对等体的建立
OpenConfirm参数、能力特性协商成功,自己发送 Keepalive 包,等待对方的 Keepalive 包
Established已经收到对方的 Keepalive 包,双方能力特性经协商发现一致,开始使用 Update 通告路由信息

IDLE ----空闲状态----路由器启动 BGP 进程之后,将先处于 idle 状态。当你手工指定邻居关系后, BGP 将进入到一个检查环节,检查指定的 IP 地址在本地路由表中是否可达。如果可达,则将进入到下一个状态---- connect 。

Connect ----连接状态,该状态完成 TCP 会话的建立。
如果 TCP 会话建立成功,则将进入到 opensent 状态,发送 open 报文。
如果 TCP 会话建立失败,则将进入 ACTIVE 状态,尝试重新建立 TCP 会话。
在建立 TCP 会话过程中,因为双方都会主动发起建立会话的过程,而最终建立的都是一个双向的会话。所以,最终只需要保持一个会话通道即可。选择方式是通过后续 open 报文中的 RID 进行比较,选择保留 RID 大的设备发起的 TCP 会话。

Opensent ---- 发出本地的 open 报文。收到对端发送的 open 报文,查看里面的参数,之后,如果确认参数无误。则将回复 keeplive 报文作为确认。

Openconfirm ---- open 报文确认状态----对端也收到本地发送的 open 报文,之后根据里面的参数进行确认。如果确认无误则将发送keeplive 报文。本段收到对方发送的 keeplive 报文之后将进入下一个状态。

Established ----建立状态----标志着 BGP 对等体关系的建立。

3, BGP 的工作过程

1,基于 IGP 协议实现 P 可达。
2,指定邻居关系,通过三次握手,建立 TCP 的会话通道。之后所有 BGP 的数据报都将基于 TCP 会话通道来进行传递。
3,使用 open 报文和 keeolive 报文进行邻居关系的建立。之后将邻居关系收集到一张表中----邻居表。
4,通过 update 报文传递路由信息。传递的路由条目信息中主要包含目标网络号,掩码信息,以及各种路径属性。之后,设备会将所有自己发出的以及收到的路由信息记录在一张表中---- BGP 表。
5,之后将 BGP 表中的最优路径加载到路由表中。
6,收敛完成后, BGP 将周期使用 keeplive 报文进行保活。保活时间默认为180S,周期发送时间默认为保活时间的1/3,即60s。
7,若出现错误信息,将使用 notification 报文进行告警。
8,若发生结构突变,则将使用 update 报文进行触发更行。

4, BGP 的路由黑洞

由于 BGP 协议支持非直连建邻,故可能出现 BGP 协议跨越未运行 BGP 协议的路由器。导致 BGP 路由传递后,控制层面可达,但是数据层面,在经过未运行 BGP 协议的路由器时无法通过。形成路由黑洞。
1,在R3上将 BGP 协议的路由信息重发布到 GP 当中。
2,直接在R4上运行 BGP 协议
3,MPLS

为了避免路由黑洞的情况产生, BGP 提出了同步机制----即当一台路由器从自己的 IBGP 对等体学习到一条 BGP 路由时,他将不能把他通告给自己的 EBGP 对等体,除非他又从 IGP 协议当中学习到这条路由。

5, BGP 的防环

BGP 使用的防环机制 ---- 水平分割机制
EBGP 的水平分割---- 一种专门应用在 EBGP 对等体之间,用来解决 EBGP 对等体之间可能出现的环路问题。
BGP 协议将在路由条目中记录所经过的 AS 编号---- AS _ PATH ---- 记录 AS 路径的一个属性。(这个属性除了可以完成 EBGP 的水平分割外,还可以作为选路的依据。)----接收到的 BGP 路由条目中,其中的 AS PATH 属性中,若存在本地的 AS 号,则将拒绝接受。

IBGP 的水平分割----一种专门应用在 IBGP 对等体之间,用来解决 IBGP 对等体之间可能出现的环路问题。

IBGP 水平分割----当一个路由器从一个 IBGP 对等体处学习到某条 BGP 路由时,他将不能在将这条路由信息通告给其他的 IBGP 对等体关系。

因为 IBGP 水平分割的限制,导致IBGP对等体之间的路由信息只能传递下一跳,在这种情况下,可能会照成通信障碍。解决方案:
1,构建全连的IBGP对等体关系---- 这样的方法弊端在于:1,全连建邻会导致资源消耗增加;2,可能会导致网络的可拓展性降低。
2,路由反射器
3,联邦

6, BGP 的基本配置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值