bgp路由协议完整教程

2024-09-06

bgp路由协议完整教程(2篇)

1.bgp路由协议完整教程 篇一

在城域网中的一些经验,和大家分享一下,大概的拓扑如上图所示(物理连接图),两台下行设备(R1、R2)、两台核心设备都与两台路由反射器RR建立IBGP的邻居关系,在R1与R2的BGP中,同时使用network发布192.168.1.0/24网段。

1、假如在两台路由反射器上没有设置多条路径(maximum-paths,注意:思科的分IBGP与EBGP,假如后面不跟ibgp参数的话,只在ebgp中允许多条等价路径,但是华为的不份),RR只会选择一条最优的路由,并加到路由表中(没设置任何其它参数的前提下,选择router-id小的),并反射给两台核心。

2、假如在两台路由反射器上设置多条路径,两台RR会选择多条等价路径,但要注意,在看BGP表的时候,只会看到一条路由打了*>(router-id小的那条),但是看路由表的时候,会有多条路径分担,

同时,在两台RR反射路由给两台核心路由器的时候,只会反射最优的那条,也就是打了*>的那条路由,所以在两台核心路由器上看路由的时候只会看到一条。

3、对于next-hop-self命令,在两台路由反射器上使用些命令时,在反射路由给核心时,并不会修改下一跳为自己,也就是next-hop-self在路由反射器使用时,反射路由也不会改变下一跳。

4、华为与思科的设备,在network时,产生的下一跳有所不同:当思科的设备在network(或重分发)发布一条从IGP学到的路由,默认情况下,下一跳为IGP中下一跳地址,同样,当华为的设备在network(或重分发)发布一条从IGP学到的路由,默认情况下,下一跳为自己,也就是用来建BGP邻居的那个地址)

本文出自 “Esc结束” 博客

2.bgp路由协议完整教程 篇二

关键词:BGP,AS,EBGP,IBGP

1 BGP协议概念

BGP是一种外部网关协议 (Exterior Gateway Protocol, EGP) , 与OSPF、RIP等内部网关协议 (Interior Gateway Protocol, IGP) 不同, 其着眼点不在于发现和计算路由, 而在于控制路由的传播和选择最佳路由;BGP使用TCP作为其传输层协议 (端口号179) , 提高了协议的可靠性;BGP支持CIDR (Classless Inter-Domain Routing, 无类别域间路由) ;路由更新时, BGP只发送更新的路由, 大大减少了BGP传播路由所占用的带宽, 适用于在Internet上传播大量的路由信息;BGP路由通过携带AS (自治系统, autonomous system) 路径信息彻底解决路由环路问题;BGP提供了丰富的路由策略, 能够对路由实现灵活的过滤和选择;BGP易于扩展, 能够适应网络新的发展;发送BGP消息的路由器称为BGP发言者 (BGP Speaker) , 它接收或产生新的路由信息, 并发布 (Advertise) 给其它BGP发言者。当BGP发言者收到来自其它自治系统的新路由时, 如果该路由比当前已知路由更优、或者当前还没有该路由, 它就把这条路由发布给自治系统内所有其它BGP发言者。相互交换消息的BGP发言者之间是互称对等体 (Peer) , 若干相关的对等体可以构成对等体组 (Peer group) 。

BGP在路由器上以下列两种方式运行:

IBGP (Internal BGP) :当BGP运行于同一自治系统内部时, 被称为IBGP。

EBGP (External BGP) :当BGP运行于不同自治系统之间时, 被称为EBGP。

2 BGP协议的工作机制

2.1 BGP的基本原理

BGP使用TCP (端口179) 作为底层传送机制, 在每个BGP对等体建立一条唯一的基于单播的连接;路由更新时, BGP只发送更新的路由, 大大减少了BGP传播路由所占用的带宽, 适合在Internet上传播大量的路由信息;BGP支持CIDR (无类域间路由) ;BGP是一种距离矢量协议, 依赖与下游邻居从其路由表中传递路由;BGP使用数据包到达特定目的地所要经过的一个AS号列表来量化距离。

2.2 BGP的消息类型

在建立一个BGP对等连接之前, 两个邻居必须执行标准的TCP三次握手, 并且打开到端口179的TCP连接。TCP提供可靠连接所需要的分段, 重传, 确认以及排序功能, 从而把BGP从这些任务中解脱出来。所有的BGP消息都通过TCP连接单播给一个邻居。

BGP使用以下4种消息类型:

Open (打开) 消息:BGP对等体通过发送Open消息来交换各自的版本, 自治系统号、保持时间、BGP标识符等信息, 进行协商。Open消息主要用于建立BGP对等体关系。

Keepalive (保持激活) 消息:改消息在BGP对等体间周期地发送, 以确保连接保持有效。每60S发送一次, 或者以协商一致的保持时间的1/3为周期发送。

Update (更新) 消息:改消息携带的是路由更新信息。其中包括撤销路由信息和可达路由信息及其路径属性。

Notification (通知) 消息:当BGP检测到差错 (连接中断、协商出错、报文差错等) 时, 发送该消息报文, 关闭同对等体的连接。

2.3 BGP的协议状态

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

Connect (连接) :在Connect状态, BGP发起第一个TCP连接, 如果TCP连接成功, 就转入OpenSent状态, 如果TCP连接失败, 就转入Active状态。

Active (活跃) :在Active状态, BGP总是试图建立TCP连接, 如果连接重试计时器超时, 就退回Connect状态, 如果TCP连接成功, 就转入Opensent状态。

OpenSent (打开消息已发送) :在OpenSent状态, TCP连接已建立, BGP也已经发送了第一个Open消息, 剩下的工作, BGP就在等待其对等体发送的Open消息。当检测收到的Open消息没有错误, BGP就开始发送Keepalive消息, 并复位Keepalive计时器, 开始计时, 同时转入OpenConfirm状态。

OpenConfirm (打开消息确认) :在OpenConfirm状态, BGP等待一个Keepalive消息, 同时复位保持计时器, 如果收到了一个Keepalive消息, 就转入Established阶段, BGP对等体关系就建立起来了, 如果TCP连接中断, 就退回到Idle状态。

Established (连接已建立) :在该状态, BGP对等体关系已经建立, 这时, BGP将和它的对等体交换Update消息, 同时复位保持计时器。

2.4 BGP的三张表

(1) BGP邻居表

Neighbor table:列出了所用邻居, 包括已经建立成功了和没有建立成功的邻居。

(2) BGP表

BGP forwarding table/database:列出了从邻居学到所有网络, 能够包括多条到目标网络的路径, 但默认情况下只能使用一条最佳路由。

(3) 全局路由表

IP routing table:默认情况下从BGP表中根据路径优先选原则, 选择一条道目标网段最优的路由放入全局路由表。

2.5 BGP的邻居类型

(1) BGP peers

对等体:与之建立BGP关系的设备。与BGP建立对等关系的邻居既可以在不同的AS中, 也可以在同一个AS中;通过TCP来建立邻居关系, 任何两个路由器只要可以建立TCP的连接就可以建立邻居, 邻居可以是直连也可以是非直连。

(2) Internal BGP

IBGP:如果邻居位于同一AS中, 则该邻居为内部对等体 (Internal peer) , 此时的BGP被称IBGP (Internal BGP, 内部BGP) ;邻居可以不是直连的, 但是需要保证TCP179的连接时可以建立的。

(3) External BGP

EBGP:如果邻居位于不同的AS中, 则该邻居为外部对等体 (External peer) 此时的BGP被称EBGP (External BGP, 外部BGP) ;

默认EBGP邻居要求是直连的。

2.6 BGP的路由发布

将全局路由表中其他协议的路由 (包括直连/静态/IGP等) , 通过network/redistribute命令发布至BGP表。

(1) 静态注入 (使用network发布静态汇总路由至BGP)

(2) 纯动态注入 (重发布IGP路由至BGP)

(3) 半动态注入:把IGP发现的路由使用network精确发布BGP路由表

3 BGP协议在运营商城域网中的实际应用

一般情况下运营商城域网逻辑上分为核心层和汇聚层两层结构。扩容城市分三类情况进行建设。采用BGP作为路由承载协议与骨干网进行互连, 在省内采用IS-IS路由协议来作数据转发的路径选择协议, 省网和骨干网之间的路由学习完全由BGP承载。省干核心出口路由器与骨干汇接路由器运行EBGP, 所有省干路由器上都全部运行BGP协议, 省干路由器之间建立IBGP连接, 这样可以方便地实现路由策略和路由通告控制, 地市城域网和省网之间通过EBGP连接, 地市城域网通过EBGP通告地市汇聚后的IP地址范围。

3.1 EBGP部署

省干核心路由器与骨干路由器建立EBGP连接, 省干核心路由器学到国内路由和默认路由, 同时向骨干路由器通告省内路由。骨干在向各省网广播国内 (或者全部) 路由信息时, 通过设置BGP MED值的方式, 以使各省网的边界路由器了解骨干网内部的路由代价信息, 从而进行出省路径选择, 省网路由器通过接受骨干网设备发布的BGP MED属性来决定出省链路方向;在入省方向, 地市的省干与各自的城域网核心直接建立EBGP连接, 将从学到的国内路由和默认路由通告给城域网内。

3.2 IBGP部署

地市省干节点选取两台路由器分别与省干核心节点的两个路由反射族建立IBGP, 地市核心路由器与省干核心路由器建立IBGP连接。

例:某运营商IBGP路由配置实例

某运营商省干核心为两台华为NE80E, 分别作为两台路由反射器, 地市分公司核心路由器作为一级路由反射器的Client。

地市公司核心路由器仅从省NE80E接收默认路由, 原则上不接收精确的电信、联通路由。

IBGP最大ECMP路径数设为16条。

配置入方向的soft-reconfiguration。

省网核心路由器NE80E配置:

地市公司核心路由器NE40配置:

4 结束语

随着INTERNET在中国的发展, ISP服务商与INTERNET的连接也在发生着变化。在网络连接上, 从单一的连接, 到通过多个电信公司多条线路连接到INTERNET;在所使用的路由协议方面, 从使用的静态路由协议, 发展到使用BGP。那么在网络内部合理有效地部署BGP路由协议就变的尤其重要。BGP的应用重点和优势在于其对路由信息的控制能力, 从而达到对数据流量的控制和分配。与互联伙伴共同协作, 来满足各种不同的实际需要。

参考文献

[1][美]多伊尔 (Doyle, J) , [美]卡罗尔 (Carroll, J.D) .TCP/IP路由技术:第二卷[M].夏俊杰, 译.人民邮电出版社, 2009, 6 (1) .

[2][美]Randy Zhang Micah Bartell, 李际, 辑.BGP设计与实现[M].人民邮电出版, 2008, 9.

上一篇:会展旅游发展实例分析下一篇:小学生五年级作文我爱故乡的