BGP学习总结

BGP是目前使用的唯一的自治系统间的路由协议,它是一种矢量路由协议,基于TCP的179号端口,它采用单播增量更新的方式更新路由,与其他的路由协议不同的是,BGP只要TCP可达,就可以建立对等体关系,BGP需要手工显式的指定对等体关系。

一、常见术语

1、  BGP的发言者:发送BGP消息的路由器叫做BGP的发言者。

2、  BGP对等体:相互交换BGP消息的路由器叫做BGP的对等体。

3、  IBGP对等体:同一个自治系统内的对等体关系。

4、  EBGP对等体:不同自治系统间的对等体关系。

二、BGP的通告原则:

1、  当多条路径存在时,BGP的发言者首选最优的路由供自己使用。

2、  BGP发言者只把自己使用的最优的路由通告给其他对等体。

3、  BGP发言者从EBGP获得路由信息向它的EBGP和IBGP对等体通告。

4、  BGP发言者从IBGP对等体获得的路由信息不会再向它的IBGP邻居通告。

5、  BGP发言者从IBGP获得的路由信息是否通告给EBGP对等体,要依IBGP与EBGP同步情况而定。

6、  对等体关系建立后,BGP发言者将自己的所有的BGP路由通告给新想相邻体。

三、BGP的消息类型和功能

1、  open消息:用来建立BGP对等体间的关系并协商参数。

2、  keepalive消息:用来对open消息确认,周期性的发送keepalive消息向对等体通告自己的存在,保持对等体的关系。

3、  nitification:错误日志,当有错误发生的时候,会向对等体发送notification报文,并且断开TCP连接,并回到idle状态。

4、  update消息:用来更新路由条目。

5、  route-fresh消息:向对等体请发送求指定地址族的路由信息。

四、BGP的状态机制

1、  idle状态:初始状态,不接受任何BGP的连接,等待start事件的产生,start事件产生后,系统开启connectRetry定时器。

2、  connect状态:连接状态,系统等待TCP连接建立完成,如果建立成功后,系统拆除connectRetry定时器,并发送open消息,此时进入open-sent状态。

3、  Active状态:活跃状态,。如果有start事件的产生,但是TCP连接并没有建立成功,此时系统进入Active状态。

4、  Open-sent:open消息发送状态,表示已经发送open消息,等待对等体的open消息。

5、  Open-confirm:open消息确认状态。收到对等体的open消息已经发送确认消息,等待对等体对自己的open消息确认的keepalive消息。

6、  Established:连接已建立,此时对等体可以发送update消息报文进行路由的更新了。

五、BGP的路由属性

1、  公认必遵属性:所有BGP路由器都能够识别这种属性,并且这种属性必须存在于update报文中,如果缺少这种属性,路由会出错,主要包括:origin属性、as-path属性、next-hop属性。

2、  公认可选属性:所有的BGP路由都能够识别这种属性,但是这种属性不要求一定存在于update消息中,主要包括:Local_pref属性等。

3、  可选传递:在AS之间具有可传递的属性,BGP路由器都可以不支持此属性,但它仍会接受有此属性的路由,并通告给其他的路由器,主要包括:commutity属性等。

4、  可选非传递属性:如果BGP路由器不支持此属性,则此属性可以被忽略,主要包括MED、CLUESTER_LIST属性。

Origin属性:路由的源属性,BGP路由的来源主要有三种,第一:通过引入IGP路由实现,即Incomeplete,第二:通过network方式注入BGP,即IGP,通过EGP协议学习,这个可以忽略了。

As-path:指示出了该路由信息经过了哪些AS路径,主要作用是保证AS间无环路,一般当本自治系统的路由离开自治系统的时候会添加本自治系统的号码,BGP路由选路的时候,会优先选择AS-PATH短的路由。

Next-hop属性:下一跳属性,需要注意的是当边界设备学习到EGP对等体发布的路由的时候,传递给IBGP对等体的时候,不会修改路由的下一跳。

5、  local_pref:本地优先级,当一个AS有多条到达外部AS的路径的时候,BGP会优先选择本地优先级高的路由,本地优先级只在本AS内有效,只能影响进入本AS的流量,不会影响离开本AS的流量。

6、  MED属性:BGP的MED属性相当于IGP协议的度量值,当有多条路由进入本AS的时候,用来告知EBGP对等体哪条路由最优,默认的MED值为100,值越小越优。

需要注意的是med值仅在两个AS之间传递,不会传递到第三个AS。

7、  preferred-value值:首选值,为从不同对等体接收的路由分配不同的preferred-value值,从而可以改变指定对等体学到路由的优先级,这是h3c的私有属性,改属性仅在本地有效,不随路由信息传播。

BGP协议学习总结的更多相关文章

  1. 学习总结---BGP协议

    一.可以在自治域内使用BGP作为域内协议吗? 为什么?它和OSPF的关键差异是什么? 1.BGP的全称是边界网关协议,用于自治域间的路由传递,它不像OSPF协议,其重点不在于路由的计算,而在于路由的控 ...

  2. quagga源码学习--BGP协议中的routemap

    路由策略的基础知识 定义 路由策略(Routing Policy)作用于路由,主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径. 目的 路由器在发布. ...

  3. quagga源码学习--BGP协议对等体连接建立的状态机

    创建完bgp peer之后,就要bgp start了,不然费那么大劲创建出来不做事情就销毁了,就很尴尬了. 那么对等体一旦start起来,就会进入各自的状态,在不同的状态下处理各自的事件消息. 下面列 ...

  4. 网络协议学习笔记(九)CDN和数据中心

    概述 上一篇给大家介绍了DNS协议和HttpDns协议,现在给大家介绍一下CDN和数据中心相关的知识. CDN:你去小卖部取过快递么? 如果你去电商网站下单买个东西,这个东西一定要从电商总部的中心仓库 ...

  5. BGP协议测试—信而泰网络测试仪实操

    关键词  BGP; 协议仿真; 测试原理. 前言:当前信息化时代之下,数据传输已经成为了日常工作和生活必不可少的重要组成部分,网络服务的易得性和可靠性也因此得到广泛关注.这其中负责网络正常工作的诸多协 ...

  6. TCP/IP协议学习(五) 基于C# Socket的C/S模型

    TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...

  7. http协议学习系列

    深入理解HTTP协议(转)  http://www.blogjava.net/zjusuyong/articles/304788.html http协议学习系列   1. 基础概念篇 1.1 介绍 H ...

  8. TCP/IP协议学习之实例ping命令学习笔记

    TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...

  9. BGP网络学习总结

    1.前言     云计算在中国发展越来越快,企业逐步开始将业务迁移到公有云中,方便运维,节省成本.公有云最复杂的地方是网络,客户对网络的需求千奇百怪,造成网络环境极其复杂,稍有不慎,就会出现网络连通性 ...

随机推荐

  1. 1.1.0-学习Opencv与MFC混合编程之---全屏截图,保存为BMP图像(并增加快捷键)

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961677 Ø  添加全屏截图菜单项,菜单项的属性如下; Ø  为该菜单项建立类向导. 编辑消息处理函 ...

  2. hadoop 学习入门 一 云计算之旅

    一. 什么是云计算: 云计算是分布式计算.网格计算.并行计算.效用计算.网络存储.负载均衡.虚拟化.网络计算等传统计算技术的融合体. 二. 云计算的核心技术: 1 编程模型 2 海量数据分布存储技术 ...

  3. Swift - 使用Auto Layout和Size Classes实现页面自适应弹性布局

    在过去只有iphone4的时候,可以在代码里将一个可视单元的位置写死,这样是没问题的,但随着iPhone5,6的发布,屏幕尺寸有了越来越多种可能.这就要求App的UI控件具有在不同屏幕尺寸的设备上具有 ...

  4. Decoding BASE64 in ABAP

    Code Gallery Decoding BASE64 in ABAP Skip to end of metadata Created by Frank Klausner, last modifie ...

  5. Minor GC、Major GC和Full GC之间的区别(转)

    在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章.书籍和演讲来介绍我所做的工作.在整个过程中,经常对 Minor.Major.和 Full GC 事件的使用感到 ...

  6. linux脚本初体验

    前言 第一次写linux脚本,有点紧张. 1. 写一个寻找特定用户的脚本文件? #! /bin/sh who | grep $1 其中脚本第一行用来告诉kernel去使用/bin/sh来解释这个脚本: ...

  7. zabbix 监控jvm

    tomcat 机器配置: [root@wx03 lib]# pwd /usr/local/apache-tomcat-7.0.55/lib [root@wx03 lib]# ls -ltr *jmx* ...

  8. Mfc资源消息的响应机制

    Mfc消息的响应机制 Mfc中有很多资源,如图标资源,菜单资源,工具栏资源等等:那么,资源是如何进行消息响应和消息映射的呢? 它们的流程是: 某种资源——对应的ID号——消息映射——响应函数的声明与实 ...

  9. Problem K: Yikes -- Bikes!

    http://acm.upc.edu.cn/problem.php?id=2780 昨天做的题,没过……!!!伤心……题意:给你n个单位,n-1组关系,让你单位换算……解题思路:Floyd算法自己听别 ...

  10. Effective C++ 第二版 8) 写operator new 和operator delete 9) 避免隐藏标准形式的new

    条款8 写operator new 和operator delete 时要遵循常规 重写operator new时, 函数提供的行为要和系统缺省的operator new一致: 1)正确的返回值; 2 ...