BGP距离矢量动态路由协议

BGP(边界网关协议)

一、BGP特征

边界网关协议( 英文:Border Gateway Protocol,BGP)是互联网上一个核心的去中心化自治路由协议。它通过维护IP路由表或前缀表来实现自治系统(AS)之间的可达性,属于矢量路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。BGP构建在 EGP 的经验之上,其系统的主要功能是和其他的BGP系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。BGP不使用传统的内部网关协议(IGP)的指标,而使用基于路径、网络策略或规则集来决定路由。因此,它更适合被称为矢量性协议,而不是路由协议。

1、主要作用

在AS之间自动交换无环路的路由信息从而消除路由环路并实施用户配置的路由策略。其中EBGP在不同的AS之间传输数据,IBGP在同一个AS之内传输数据。
在这里插入图片描述

2、相关特点

BGP属于外部或域间路由协议。BGP的主要目标是为处于不同AS中的路由器之间进行路由信息通信提供保障。BGP既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。这是因为BGP在发布到一个目的网络的可达性的同时,包含了在IP分组到达目的网络过程中所必须经过的AS的列表。通路向量信息时十分有用的,因为只要简单地查找一下BGP路由更新的AS编号就能有效地避免环路的出现。BGP对网络拓扑结构没有限制。特点有:
【1】传输协议:TCP,端口号:179;
【2】路由更新只发送增量路由;
【3】周期性发送keepalive报文以确保TCP连通性;
【4】支持无类别域间选路;
【5】实现自治系统间通信,传播网络的可达信息。BGP 是一个外部网关协议,允许一个AS与另一个AS进行通信。BGP允许一个AS向其他AS通告其内部的网络的可达性信息,或者是通过该AS可达的其他网络的路由信息。同时,AS也能够从另一个AS中了解这些信息。与距离向量选路协议类似,BGP为每个目的网络提供的是下一跳(next-hop)结点的信息。
【6】多个BGP路由器之间的协调。如果在一个自治系统内部有多个路由器分别使用BGP与其他自治系统中对等路由器进行通信,BGP可以协调者一系列路由器,使这些路由器保持路由信息的一致性。
【7】BGP支持基于策略的选路(policy-base routing)。一般的距离向量选路协议确切通告本地选路中的路由。而BGP则可以实现由本地管理员选择的策略。BGP路由器可以为域内和域间的网络可达性配置不同的策略。
【8】可靠的传输。BGP路由信息的传输采用了可靠地TCP协议。
【9】路径信息。在BGP通告目的网络的可达性信息时,处理指定目的网络的下一跳信息之外,通告中还包括了通路向量(path vector),即去往该目的网络时需要经过的AS的列表,使接受者能够了解去往目的网络的通路信息。
【10】增量更新。BGP不需要再所有路由更新报文中传送完整的路由数据库信息,只需要在启动时交换一次完整信息。后续的路由更新报文只通告网络的变化信息。这种网络变化的信息称为增量(delta)。
【11】BGP支持无类型编制(CIDR)及VLSM方式。通告的所有网络都以网络前缀加子网掩码的方式表示。
【12】路由聚集。BGP允许发送方把路由信息聚集在一起,用一个条目来表示多个相关的目的网络,以节约网络带宽。
【13】BGP还允许接收方对报文进行鉴别和认证,以验证发送方的身份。

二、BGP的6种状态

在这里插入图片描述

1、空闲(Idle)

为初始状态,当协议激活后开始初始化,复位计时器,并发起第一个TCP连接,并开始倾听远程对等体所发起的连接,同时转向Connect状态。。

2、连接(Connect)

开始TCP连接并等待TCP连接成功的消息。如果TCP连接成功,则进入OpenSent状态;如果TCP连接失败,进入Active状态。

3、行动(Active)

BGP总是试图建立TCP连接,若连接计时器超时,则退回到Connect状态,TCP连接成功就转为Open sent状态。

4、OPEN发送(Open sent)

TCP连接已建立,自己已发送第一个OPEN报文,等待接收对方的Open报文,并对报文进行检查,若发现错误则发送Notification消息报文并退回到Idle状态。若检查无误则发送Keepalive消息报文,Keepalive计时器开始计时,并转为Open confirm状态。

5、OPEN证实(Open confirm)

BGP等待Keepalive报文,同时复位保持计时器。如果收到了Keepalive报文,就转为Established状态,邻居关系协商完成。如果系统收到一条更新或Keepalive消息,它将重新启动保持计时器;如果收到Notification消息,BGP就退回到空闲状态。

6、已建立(Established)

即建立了邻居(对等体)关系,路由器将和邻居交换Update报文,同时复位保持计时器。
在这里插入图片描述

三、BGP的5个报文

在这里插入图片描述

1、Open

Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。

2、Keepalive

BGP会周期性地向对等体发出Keepalive消息,用来保持连接的有效性。

3、Update

Update消息用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以撤销不可达路由信息。

4、Notification

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

5、route-refresh

告知对等体所支持的路由刷新能力

四、BGP的2个对等体类

由于可能与不同的AS相连,在一个AS内部可能存在多个运行BGP的边界路由器。同一个自治系统(AS)中的两个或多个对等实体之间运行的BGP 被称为 IBGP(Internal/Interior BGP)。归属不同的AS的对等实体之间运行的BGP称为EBGP (External/Exterior BGP)。在AS边界上与其他AS交换信息的路由器被称作边界路由器(border/edge router)。在互联网操作系统(Cisco IOS)中,IBGP通告的路由的距离为200,优先级比EBGP和任何内部网关协议(IGP)通告的路由都低。其他的路由器实现中,优先级顺序也是EBGP高于IGP,而IGP又高于IBGP。
1、IBGP
AS内部的BGP邻居关系,运行在BGP协议对等体在同一个AS域内。
2、EBGP
AS之间的BGP邻居关系,运行在BGP协议对等体不在同一一个AS域内。
BGP属于外部网关路由协议,可以实现自治系统间无环路的域间路由。BGP是沟通Internet广域网的主用路由协议,例如不同省份、不同国家之间的路由大多要依靠BGP协议。BGP可分为IBGP(Internal BGP)和EBGP(External BGP)。BGP的邻居关系(或称通信对端/对等实体)是通过人工配置实现的,对等实体之间通过TCP(端口179)会话交互数据。BGP路由器会周期地发送19字节的保持存活keep-alive消息来维护连接(默认周期为30秒)。在路由协议中,只有BGP使用TCP作为传输层协议。

五、BGP的5大原则

1)连接建立时,BGP Speaker只把本身用的最优路由通告给对等体。
2)多条路径时,BGP Speraker只选择最优的路由放入路由表。
3)BGP Speraker从EBGP获得路由会向它所有的BGP对等体通告(包括EBGP和IBGP)。通告给EBGP时,下一跳为自己。(注:如果通告路由的EBGP邻居需要接收的的EBGP邻居在同一网段,则通告时不修改下一跳。)通告给IBGP时,不更改下一跳。防止次优路径。
4)BGP Speraker从IBGP获得的路由不会通告给其他的IBGP邻居。
5)EBGP与IBGP同步。BGP不将从IBGP对等体获得的路由通告给它的EBGP对等体,除非该路由信息也能通过IBGP过得。所有厂商同步功能默认关闭。华为不支持开启,思科可以开启。

六、BGP的属性

路由器发送关于目标网络的BGP更新消息,更新的度量值被称为路径属性。属性可以是公认的或可选的、强制的或自由决定的、传递的或非传递的。属性也可以是部分的。并非组织的和有组合的都是合法的,路径属性分为4类:公认必遵、公认自决、可选过渡、可选非过渡。

1、公认属性:

是公认所有BGP实现都必须识别的属性,这些属性被传递给BGP邻居。公认强制属性必须出现在路由描述中,公认自由决定属性可以不出现在路由描述中。

【1】公认必遵(Well-Known Mandatory)

ORIGIN(起源):这个属性说明了源路由是怎样放到BGP表中的。有三个可能的源IGP,EGP,以及INCOMPLETE.路由器在多个路由选择的处理中使用这个信息。路由器选择具有最低ORIGIN类型的路径。
AS_PATH(AS路径):指出包含在UPDATE报文中的路由信息所经过的自治系统的序列。
Next_HOP(下一跳)声明路由器所获得的BGP路由的下一跳,对EBGP会话来说,下一跳就是通告该路由的邻居路由器的源地址。

【2】公认自决(Well-Known Discretionary)

LOCAL_PREF(本地优先级):本地优先级属性是用于告诉自治系统内的路由器在有多条路径的时候,怎样离开自治系统。本地优先级越高,路由优先级越高。
ATOMIC_AGGREGATE(原子聚合):原子聚合属性指出已被丢失了的信息。

2、可选属性:

非公认属性被称为可选的,可选属性可以是传递的或非传递的。可选属性不要求所有的BGP实现都支持。对于不支持的可选传递属性,路由器将其原封不动的传递给其他BGP路由器,在这种情况下,属性被标记为部分的。对于可选非传递属性,路由器必须将其删除,而不将其传递给其他BGP路由器。

【1】可选过渡(Optional Transitive)

AGGREGATOR(聚合者):此属性标明了实施路由聚合的BGP路由器ID和聚合路由的路由器的AS号。
COMMUNITY(团体):此属性指共享一个公共属性的一组路由器。

【2】可选非过渡(Optional Nontransitive)

MED(多出口区分):该属性通知AS以外的路由器采用哪一条路径到达AS,它也被认为是路由的外部度量,低MED值表示高的优先级。
ORIGINATOR_ID(起源ID):路由反射器会附加到这个属性上,它携带本AS路由器的路由器ID,用以防止环路。
CLUSTER_LIST(簇列表):此属性显示了采用的反射路径。

七、配置命令

假设一个对等体路由器的loop0IP地址是1.1.1.1 32,属于AS100。另一个为2.2.2.2 32,属于AS200。对等体属于 ebgp类别。

router id 1.1.1.1
bgp 100(AS区域号)
peer 2.2.2.2 as-number 200(建立邻居关系)
peer 2.2.2.2 connect-interface loopback 0(连接对等体接口是loo0)
peer 2.2.2.2 ebgp max-hop 2(到对等体环回口最大条数)
network 1.1.1.1 32(引入路由信息)

在其对等体路由器上配置

router id 2.2.2.2
bgp 200(AS区域号)
peer 1.1.1.1 as-number 100(建立邻居关系)
peer 1.1.1.1 connect-interface loopback 0(连接对等体接口是loo0)
*在IBGP类上面配置是没有最大跳数的。
peer 1.1.1.1 ebgp max-hop 2(到对等体环回口最大条数)
network 2.2.2.2 32(引入路由信息)
七、配置实验
1、实验拓扑

在这里插入图片描述

2、路由器1的配置信息

在这里插入图片描述
路由表信息
在这里插入图片描述

3、路由器2的配置信息

在这里插入图片描述
路由表信息
在这里插入图片描述

4、路由器3的配置信息

在这里插入图片描述
路由表信息
在这里插入图片描述

5、路由器4的配置信息

在这里插入图片描述
路由表信息
在这里插入图片描述

6、测试连通性

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值