设为首页收藏本站language 语言切换
查看: 1307|回复: 1
收起左侧

[原创] 技术文档--BGP入门

[复制链接]
发表于 2017-6-2 11:22:00 | 显示全部楼层 |阅读模式
BGP外部网关协议

前述:

IGP:内部网关协议
EGP:外部网关协议
BGP:1986年

版本:
        BGPV1:1989年 有类
        BGPV2:1990年 有类
        BGPV3:1991年 有类
       
        ——VLSM/CIDR的提出:1993年
       
        BGPV4:1995年 无类

        ——IPV6的提出:1998年

        BGPV4+:2000年——MEBGP

AS:自制系统:具有相同“路由策略”的一组路由器
       
RFC对AS的定义:一组被统一管理的路由器,他们使用相同的内部网关协议和统一的度量值,来决定如何在as内部路由分组,并使用as间路由选择协议来决定,如何分组路由到其他自制系统

  取值范围:1-65535  (16位)  
 1-64511   (公有)
 64512-65535 (私有)

  现支持32位扩展写法:(AS号全球唯一,不够用)
        例如:12345.12345

IGP(内部网关协议):这种路由协议用于在自制系统(AS)内部交换路由信息
EGP(外部网关协议):这种路由协议用于连接不同的自制系统

BGP是一个AS-by-AS之间的路由协议


BGP概述:
-通过TCP 179端口来传递更新和建立邻居(注:当BGP做验证穿越防火墙时,应放行TCP option 179)
-单播建邻居传递更新(仅手工指邻居)
-支持VLSM CIDR 手工汇总
-以AS为单位的路径矢量属性的路由协议
-在会话开始的时候发送完整的路由表,以后会触发更新
-有丰富的路径属性,和简单的选路算法
-遵循AS间的水平分割

BGP的消息类型:
-open消息(打开消息)
-keepalive消息(保持激活)
-update消息(更新)
-notification(通告)
OPEN消息:
        0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+
       |    Version    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     My Autonomous System      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Hold Time           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         BGP Identifier                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Opt Parm Len                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                       Optional Parameters                     |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
bgp version number
默认是V4,可以通过命令(neighbor X.X.X.X version X )来修改,改后向下兼容
As number :
表示会话发起方路由器的AS号,确定该BGP是属于EBGP还是IBGP
    EBGP:当收到的AS号和自己的不同

    IBGP:当收到的AS号和自己相同
Hold time:保持时间
表示路由器收到keepalive或者update报文之前可以等待的时间,默认180s,若双方不统一,以小为优。
BGP的标示符:表示邻居的ip地址,选举方式等同于OSPF的routerID。
BGP可选参数:该字段用来宣告支持验证、多协议等可选参数
Keepalive:保持激活(标志字段16字节)(报文长度19字节)
收到open消息后响应一条keepalive。cisco默认60s一条,或1/3的hold time时间。


Update 更新)
宣告可行路由和已撤销的路由  
NLRI (network layer reachability information)网络层可达信息
宣告一个或多个IP地址前缀及长度(二元组) 192.168.1.0/24
路径属性:path attributes
提供了允许BGP选择最短路径,检测路由长度,确定策略路由的相关信息
已撤销路由:
描述那些变为不可达,且退出服务的二元组

注:一个UPDATE 消息一次可以只通告一条路由,但它可以携带多个属性。
   一个UPDATE 消息一次也可通告多条路由,但它们的属性必须相同。
   一个UPDATE 消息可以同时撤消多条路由。

*实际上也就是说一个UPDATE中只能有一套路径属性

Notification: 通告
路由检测到BGP邻居错误时发送的消息
一旦邻居收到该消息,则邻居关系立刻回到idle状态


BGP的状态机:
Idle----connect-----open sent-----open confirm----establish     ---active
idle状态:空闲
该状态为起点,检查IGP是否可达(检查自己的路由表中是否有neighbor方的明细(默认路由不能触发TCP三次握手)路由条目)
connect:连接状态
该状态下,bgp会等待tcp的三次握手,如果成功则会进入open sent;如果失败则进入active状态。
Open sent:打开发送
该状态下已发送了open消息,此时bgp会等待邻居的open消息,收到后检测消息的每个字段,如果有差错,发送notification消息,并进入idle状态;如果没有差错则发送keepalive,并设置定时器。
Open confirm:打开确认
该状态下,bgp会等待keepalive、notification
如果收到keepalive则进入establish状态
如果收到notification则进入idle状态
Establish:建立状态
该状态下,bgp对等体连接已经完全建立,此时对等体之间交互update、keepalive、notification消息

Active:激活状态
该状态下,bgp会尝试与其他邻居建立TCP连接。

总结:connect状态等待TCP三次握手,成功则进入open sent状态,收到对方open消息进入open confrim状态,收到keepalive消息进入establish状态;如果TCP三次握手失败则进入active状态。如果其他状态失败的话,则全部进入Idle




BGP的三张表:

bgp表:包含了邻居学习到的所有网络列表,包含到达目标网络的多条路径,包含了bgp对任意一条路径的属性。

邻居表:包含了所有bgp邻居列表
BGP的邻居有两种:
EBGP
IBGP
bgp邻居建立的必要条件
1.路由可达;2.tcp三次握手;3.手工指定邻居;4、验证通过
从EBGP邻居学来的路由条目优于IBGP邻居学来的路由条目

任何两个通过一条TCP连接来交换BGP路由信息的路由器,把他们叫做bgp peers
peer:(对等体)【邻居】
speaker:bgp宣告者

路由表:和IGP的ip路由表相同,包含了到达目标网络的一条最佳路径,路由表使用update报文传送

负载均衡:到达同一目标网络有多条代价相同的路径
BGP默认不允许任何负载均衡,他到达任何网络只能有一条路径。



BGP的基本配置:

[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]undo synchronization  不同步
[R1-bgp]undo summary automatic    关闭自动汇总
[R1-bgp]peer 12.1.1.2 as-number 100  单播指邻居
[R1-bgp]peer 12.1.1.2 next-hop-local 下一跳自我
[R1-bgp]peer 12.1.1.2 ebgp-max-hop    下一跳多跳
[R1-bgp]peer 12.1.1.2 connect-interface LoopBack  修改更新源为loopback口

发表于 2020-7-27 20:33:55 | 显示全部楼层
感谢楼主的分享
沙发 2020-7-27 20:33:55 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-26 17:11 , Processed in 0.065061 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表