首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
BGP协议(一)
时间:
2019-01-19 21:47:46
阅读:
276
评论:
0
收藏:
0
[点我收藏+]
标签:
tar
成功
计算
地址
lis
nconf
out
通告
time
BGP协议概述
BGP协议是用于自治系统AS之间的动态路由协议。
BGP特性:
是一种外部网关协议,与OSPF、RIP等内部网关协议不同,其着眼点不在于发现和计算路由,而是着眼于在AS之间控制路由的转播和选择最佳路由。
BGP使用TCP作为传输层协议(端口号179),提高了协议的可靠性。
BGP 进行域间路由选择,因此对协议的稳定性要求很高,故可用TCP协议的高可靠性来保证协议的稳定性。
在BGP的对等体之间必须逻辑上连通,并且进行TCP连接;目的端口号为179,本地端口号任意。
BGP支持无类别域间路由CIDR。 BGP路由更新时,只发送更新路由,大减少了BGP的传播路由所占用的带宽;
BGP是一种距离矢量路由协议,从设计上避免了环路
AS之间:BGP通过携带AS路径信息来标记途径的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
AS内部:BGP在AS内学到的路由不会在AS中转发,避免了在AS内产生环路。 即为防止环路,BGP协议规定,路由器从IBGP学习到的路由不向它的IBGP对等体发布。另外为了 防止产生路由黑洞,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与是否同步相关。
BGP消息
BGP的运行是通过消息驱动的,共有5种消息类型(Open、Update、Notification、Keeplive和Route-refresh).
Open消息:是TCP建立连接后发送的第一个消息,用于建立BGP对等体之间的连接关系并进行参数协商,内容包括BGP版本、AS号、路由ID、HOLD TIME值、认证信息等。
Update消息:用于在对等体之间交换路由信息。可以发布多条属性相同的可达路由信息,也可以多条不可达的路由信息。
Notification消息:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接就会中断。
Keeplive 消息:BGP会周期性地向对等体发出Keeplive消息,用来保持连接的有效性。
Route-refresh消息:用来通知对等体自己支持路由刷新能力。
4.BGP的状态机
BGP共有6种状态机:Idle、Connect、Active、OpenSent、Openconfirm、Established.
首先是Idle状态,BGP协议一旦start,状态机就进入Connect状态,在Connect状态,若Connect-Rtry定时器超时,则BGP状态机会停留在Connect状态。同时,BGP试图建产TCP连接,如果TCP连接建立失败,在BGP状态机进入ACTIVE状态。若TCP连接建立成功,则BGP状态机直接进入Opensent状态。在ACTIVE状态,若TCP连接依然不能建立起来,那么BGP状态机就会一直停留在active状态,直到TCP连接成功,才会进入opensent状态。在opensent状态,BGP一旦收一个正确的open报文,就会进入openconfirm状态。在openconfirm状态,当keeplive定时器超时,BGP状态机就会停留在openconfirm状态。直到BGP收到keeplive报文,BGP状态机才会进入established,这时BGP连接才算建立起来。
在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active、Established。当BGP状态是active时,BGP邻居之间是无法通告路由的,主要是因为TCP连接还没有建立起来,建立邻居关系的地址之间,IGP路由不通。Established状态,说明BGP对等体之间可以通告路由了。
BGP协议(一)
标签:
tar
成功
计算
地址
lis
nconf
out
通告
time
原文地址:http://blog.51cto.com/ahtao/2344627
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!