HCIP第十天

BGP---边界网关协议

IGP---内部网关协议---RIP.OSPF...

EGP---外部网关协议---BGP

AS---自治系统

由单一的机构或者组织所管理的一系列IP网络及设备组成的集合

(1)范围太大,协议跑不过来,需要划分

(2)自治

为了方便对AS---自治系统进行管理,我们给每一个自治系统设置了一个编号,这个标号称为AS号---本质由16位二进制构成---取值范围:0-65535,其中0和65535为保留,可用的取值范围为1-65534,其中64512-65534这一部分的AS号称为私有AS号,公有AS号取值范围1-64511(这一部分AS号要求全球唯一,统一由IANA组织分配)

所以,目前大多数设备支持拓展版的AS号---32位二进制构成

目前,在IPV4领域下,我们使用最广泛的BGP需要版本为BGPV4版本,但是目前市面上也存在BGPV4+版本---其特点是可以支持多种地址族

在BGP的情况下,我们通过重发布技术也可以实现不同AS之间的路由信息共享,但是,之所以采用BGP而不是重发布,主要因为重发布本身存在缺陷:

①在实现多点重发布时,必然出现选路不佳的情况

②归属问题

BGP在AS之间共享路由信息的方式一定是共享路由条目信息,原因主要是:

(1)拓扑信息的数据量大

(2)拓扑信息将暴露AS内部的网络部署情况

BGP协议被称为无类别的路径矢量协议

路径矢量和距离矢量的区别:

①距离矢量中的距离指的是开销,也就是跳数,是以一台路由器作为一跳,而路径矢量中则是将一个AS看作一个整体,将一个AS作为一跳。

②EGP协议不存在算法的概念,而距离矢量是根据算法来划分的。BGP协议只是将IGP协议计算出来的路由信息传递给其他运行BGP的设备。

IGP协议的评判标准---选路佳,收敛快,占用资源少

EGP协议的关注点

1.可控性

AS之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更方便做策略---为了弥补重发布的缺陷

为了保证路由的可控性,方便选路.BGP协议直接舍弃了开销值,取而代之的是BGP给每条路由信息附加了丰富的路径属性.可以通过多种路径属性进行灵活的选路,使得BGP协议具有强大的可操控性

因为BGP需要传递的路由信息的数量非常庞大,所以无法采用周期更新,只存在触发更新

2.可靠性

BGP协议为了保证传输的可靠性,直接采用TCP协议作为传输层的协议来工作.使用TCP的179号端口来工作

IGP协议不选择TCP的原因

(1)TCP速度较慢

(2)TCP占用资源较大

(3)TCP只能实现单播---因为BGP采用TCP作为传输层协议,所以只能通过单播的形式建立邻居关系,需要手工指定邻居而不能自动发现

BGP支持非直连建邻----因为只要网络可达,即可以实现TCP会话通道的建立,则可以建立BGP的邻居关系

BGP的非直连建邻是承载在IGP(静态路由)的基础上的

AS之间的---EBGP对等体关系---如果建立对等体的两台路由器位于不同的AS中,则它们的关系就被称为EBGP对等体关系

AS内部的---IBGP对等体关系---如果建立对等体的两台路由器位于相同的AS中,则它们的关系就被称为IBGP对等体关系

一般情况下,IBGP对等体关系可以非直连建邻,而EBGP对等体关系之间是直连建邻的,所以,IBGP间建邻时,他所构成的数据包中的TTL值为255.但是,在EBGP对等体关系建邻时,他所构成的数据包中的TTL值为1.若EBGP对等体之间需要非直连建邻,则必须将数据包中的TTL值修改

3.AS-BY-AS

BGP始终将一个AS看作是一个整体

BGP的一个特性:BGP不支持负载均衡。不管到达相同网段存在多少条路由信息,BGP只会选择其中的一条加载到路由表中

1.BGP的数据包

因为BGP传输层使用的是TCP协议,所以传输的可靠性全部由TCP协议来保证,不需要额外的设计确认报文

ospf中的hello包可以实现周期性的发现、建立和保活邻居关系

BGP中发现邻居关系---需要通过人手工来指定邻居关系

BGP中建立邻居关系---由open报文来完成

BGP中保活邻居关系---Keeplive包来完成

OPEN包

---主要作用:用来建立BGP对等体关系,其实质就是协商参数

AS号---在创建邻居关系时需要指定对方的AS号,并且这个AS号会在OPEN报文中携带。若对方收到数据包中发的AS号和本地的AS号不同,则将无法正常建立邻居关系

认证---在BGP中也可以进行邻居间的认证,在数据包中将携带认证口令,口令相同则将正常建立邻居关系,不同则无法建立

Router-ID---其作用也是用来区分和标定不同路由器的,在OPEN报文中也会携带这个参数,对端在收到后将会比较数据包中的RID和本地的RID,相同则代表冲突,无法建立邻居关系,不同则可以正常建立邻居关系

BGP中的RID和OSPF中的完全一样---也是有32位二进制构成,按照IP地址的格式配置

生成方法:(1)手工配置(2)自动生成(先看本地环回接口,取最大的作为RID,如果没有环回,则取物理接口IP最大的作为RID)

手工指定邻居关系时,所配置的目标IP地址必须和邻居发来的OPEN报文中的源IP地址一致,否则将无法正常建立邻居关系 (检查机制)

OPEN报文中还会协商一些参数

---保活时间(Hold time)默认为180s---这个参数也会携带在OPEN包中,但不要求必须相同,但是执行时又必须相同。所以当双方保活时间不同时,则将按照数值小的来执行

---是否支持路由刷新功能---如果有一方不支持,则将不启用该功能

Keeplive包

---主要任务就是保活对等体之间的邻居关系,周期发送时间为保活时间的1/3,默认保活时间为180s,则周期发送时间为60s

除了可以正常的周期保活外,还将在收到对方OPEN报文后,临时充当确认包的作用---确认的不是OPEN报文是否收到,实际确认的是OPEN报文中的参数是否同意,体同意则回复keeplive报文进行确认

Update包

---更新包----主要包含目标网段及掩码信息,以及BGP附加给路由的各种路径属性

当一条路由信息失效时,BGP将直接把该路由信息携带在更新包中的撤销路由条目字段下,代表该路由失效,而不需要像RIP一样采用带毒传输的方式

Notification包

---BGP设置的一个告警机制

Route-refresh包

---用于改变路由策略后请求对等体重新发送路由信息,前提是对等体双方都需要支持路由刷新功能

2.BGP的状态机

BGP的状态机一共六种,主要描述的是BGP对等体建立过程中的状态变化,而不包含路由收发过程。因为BGP可以将邻居建立和路由收发分开

Idle---空闲状态

一开始,设备启动BGP进程后先进入空闲状态,当手工指定邻居关系后,将进入到一个检查步骤。需要先确认指定地址在本地路由表中的可达情况。如果可达,则进入到Connect,尝试建立TCP的会话;如果不可达,则将停留在空闲状态

Connect---连接状态

该状态需要完成TCP会话的建立

如果建立成功,则进入Opensent状态。如果建立失败,则进入Active状态,则将反复尝试建立TCP会话

在建立TCP会话的过程中,因为双方都会主动发起建立会话的过程,而最终建立的都是一个双向的会话。所以最终只需保持一个会话通道即可。选择方式是通过后续open报文中的RID进行比较,选择保留RID大的设备发起的TCP会话

Opensent

发送OPEN包,同时也会收到对方发送的OPEN报文,则将检查对方报文中的参数,如果没问题则将发送keeplive包进行确认

Openconfirm---Open确认状态

等待对方发送keeplive报文确认自己的参数,如果收到keeplive报文则进入下一状态

Established

标志着邻居关系建立成功

 

3.BGP的工作过程

(1)基于IGP(静态、直连)实现IP可达

(2)指定邻居关系,邻居间使用单播传输,建立TCP会话。之后,BGP多有的数据包都将基于TCP会话通道来传输

(3)发送Open报文以及Keeplive报文进行邻居关系的建立。BGP会将邻居关系进行记录,记录在一张表中---邻居表

(4)使用Update包共享路由信息。数据包中包含目标网络号及掩码信息,以及各种属性。在这个过程中,BGP会将所有收到的以及发送的路由信息都记录在一张表中---BGP表

(5)之后,BGP将会把BGP表中最优的路加载到路由表中。(BGP到达相同网段可能会存在多条路由信息,但是因为BGP不存在负载均衡,所以BGP只会将其中最优的路由信息加载到路由表中---通过路由的属性来进行判断)

(6)收敛完成后,BGP将周期性地发送Keeplive报文进行保活

(7)在任何过程当中,只要出现错误,都将使用notification报文进行告警

(8)若出现结构突变的情况,则将使用update报文进行触发更新

4.BGP的路由黑洞

由于BGP协议可以非直连建邻,故可能出现BGP协议跨越未运行BGP协议的路由器;导致BGP路由传递后,控制层面显示可达,但数据层面,流量流经未运行BGP协议的路由器时,将无法通过,形成了路由黑洞

(1)可以直接让未运行BGP协议的设备运行BGP协议

(2)可以让边界设备将BGP的路由信息重发布到IGP协议中

(3)MPLS

为了避免BGP的路由黑洞,BGP提出了同步机制---即当一台路由器从自己的IBGP对等体处学到一条BGP路由时,它不能发送给自己的EBGP对等体,除非它又从IGP(静态)协议中学到这条路由信息。相当于要求IBGP路由和IGP路由同步

华为设备默认关闭同步机制

5.BGP的防环

BGP的防环机制---水平分割

EBGP水平分割

---针对EBGP对等体之间可能出现的环路问题所提出的防环手段---BGP协议将在路由条目中记录所经过的AS的编号---AS_PATH---这个属性对应的是一张列表---接收到BGP路由条目中如果包含本地的AS号,则将不再结束该路由,以防路由回传,造成路由环路问题

因为BGP不存在开销,而是依据路由属性来进行选路的。但是,又因为BGP的AS-BY-AS的规则,导致AS内部在默认情况下,因为要把整个AS看做是一个整体,所以传递的路由属性都是相同的,所以IBGP之间想要防环无法通过属性防环

IBGP水平分割

---针对IBGP对等体之间可能出现的环路问题所提出的防环手段

IBGP的水平分割---当一个路由器从一个IBGP对等体处学习到某条BGP路由时,他将不再把这条路由信息传递给它的其他IBGP对等体

IBGP水平分割确实可以防止IBGP对等体之间的路由回传问题,但是,IBGP水平分割的规则相当于限制BGP路由在IBGP对等体间只能传递一跳。这样就可能造成BGP路由信息的传递障碍

最简单的方法解决IBGP水平分割带来的通讯障碍---建立全连的IBGP对等体关系

这种方法带来的问题:

(1)当网络中运行BGP的路由器数量较多时,则将造成资源占用过大

(2)造成网络的可扩展性变差

BGP为了解决IBGP水平分割带来的通讯障碍,专门设计了两个技术---①路由反射②联邦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值