BGP1

简介
  • BGP:边界网关路由协议 --无类别路径矢量路由协议 分布式计算
    典型的EGP协议,用于AS和AS之间;

  • AS自治系统–as编号 0-65535 1-64511公有 64512-65535私有,可以扩展32位65536-4294967292(解决as不够用的情况)BGP使用AS号作为识别不同路由的标识,该as号需要具有唯一性

  • 特性:
    1、可靠性–不能周期更新,增量更新;-TCP
    2、可控性–该协议的真正意义,在于AS间共享路由条目时更加方便快捷的干涉选路
    AS-BY-AS 以一个AS为单位进行计数 IGP -hop-by-hop 一个路由器为一个单位

  • BGP 用tcp来传递路由信息(端口179),保证可靠性丧失邻居自动发现 补充:自动建邻必须是组播,单播不能自动建邻

  • bgp设计用来处理AS之间的路协议所以该协议重点处理as之间路由,as之内的路由不作为重点

  • BGP的最小使用单位是一个路由器所以每一个路由器只能使用一个BGP进程

  • 由于BGP管理的路由信息非常庞大,不能使用周期更新,只能触发更新。
    并且BGP会认为一条路由时间越久越稳定,在这种情况下bgp必然不会使用复杂的算法来处理bgp收到的路由信息,又由于每个as情况都不一致管理范围也有限,它必然需要丰富的管理参数(不能只依赖metric)。综上所述bgp必然需要多种参数共同来决定路由的选择,并且不能依赖某种特定的全局算法,只能单独的去计算某一条路由不能全盘考虑,并且需要依赖所属AS管理员手动设置。bgp路径优先协议,通过给每一个路由设置大量的属性参数进行灵活的管理或者选路,并且这些属性参数大量的都需要人为来操作。

  • 静态可以看作是自行车(全部需要手工配置) BGP可以看作做是手动挡车(只需建邻) OSPF可以看作是自动挡车

邻居建立
  1. 数据包–所有的数据包基于TCP传输
    Open: 存在hold time 和 RID;用于邻居关系建立;默认仅收发一次即可;
    Keeplive: 周期1min,保活 TCP会话 hold time 180s;
    Update :更新包携带路由条目: 目标网络号+ 属性;
    Notification :报错包 错误信息出现时发送;
  2. 状态机
    在这里插入图片描述
  • idle(空闲)状态
    BGP 总是以 Idle 状态为起始点,该状态拒绝所有入站连接。启动(Start)事件(IE 1)发生后,BGP 进程会初始化所有 BGP 资源、启动 ConnectRety(连接重试)定时器、初始化去往邻居的 TCP 连接、侦听来自邻居的 TCP 初始化并将状态更改为 Connect(连接)状态。启动事件由配置 BGP 进程或重置现有进程的操作员发起,或者由重置 BGP 进程的路由器软件发起。
    如果发生差错,BGP 进程将迁移到 Idle 状态。此时,路由器可能会自动尝试发起另一个启动事件,但应对路由器的这种行为做一定的限制—这是因为在持续性地差错条件下,经常性地重启会导致波动。因而在第一次迁移到 Idle 状态之后,路由器会设置 ConnectRety 定时器,在定时器到期时才会重新再启 BGP。IOS 的初始 ConnectRety 时间为 120 秒,该值不可更改,以后每次ConnectRety 时间都是之前两倍,也就是说,连续等待时间呈指数式递增。
  • Connect(连接)状态
    该状态下,BGP 进程一直等待 TCP 连接的完成。如果 TCP 连接建立成功,BGP 进程将会向邻居发送 Open 消息并进入 OpenSent(打开发送)状态。如果 TCP 连接建立不成功,BGP进程将继续侦听由邻居初始化的连接、重置 ConnectRety 定时器,并迁移到 Active(激活)状态。
    如果 ConnectRety 定时器到期时仍处于 Connect 状态,则重置定时器,并再次尝试与邻居建立 TCP 连接,进程也将继续维持在 Connect 状态,其他输入事件将会让 BGP 进程迁移到 Idle 状态。
  • Active(激活)状态
    该状态下,BGP 进程会尝试与邻居初始化 TCP 连接。如果 TCP 连接建立成功,BGP 进程会清除ConnectRetry 定时器、完成初始化过程、向其邻居发送 Open 消息,并迁移到 OpenSent(打开发送)状态。IOS 默认的保持时间为 180 秒(3 分钟),可以通过 timers bgp statement命令设置保持时间。
    如果 ConnectRetry 定时器到期时 BGP 进程仍处于 Active 状态,那么进程将返回 Connect状态并重置 ConnectRetry 定时器,而且还要与对等体进行 TCP 连接的初始化并继续侦听来自对等体的连接。如果邻居试图以非期望的 IP 地址建立 TCP 会话,则重置ConnectRetry 定时器、拒绝该连接,且继续维持在 Active 状态,其他输入事件(启动事件除外,因为 Active 状态会忽略启动事件)将会让 BGP 进程迁移到 Idle 状态。
  • OpenSent(打开发送)状态
    该状态下,已经发送了 Open 消息,BGP 会一直等待直至侦听到来自邻居的 Open 消息。
    接收到 Open 消息后,会检查该消息的每个字段,如果存在差错,则会发送 Notification 消息
    并迁移到 Idle 状态。
    如果接收到的 Open 消息没有差错,则发送 Keepalive 消息并设置 Keepalive 定时器,此外还要协商保持时间,以确定一个较小的保持时间值,如果协商后的保持时间为零,则不启动保持定时器和 Keepalive 定时器。根据对等体的 AS 号,可以确定对等连接是内部连接还是外部连接,并迁移到 OpenConfirm(打开确认)状态。
    如果收到断开 TCP 连接的请求,则本地进程将关闭 BGP 连接、重置 ConnectRetry 定时器、开始侦听由邻居发起的新连接,并迁移到 Active 状态。其他输入事件(启动事件除外,因为该状态会忽略启动事件)则会让 BGP 进程迁移到 Idle 状态。
  • OpenConfirm(打开确认)状态
    该状态下,BGP 进程将等待 Keepalive 消息或 Notification 消息,如果收到的是 Keepalive消息,则迁移到 Established(建立)状态;
    如果接收到的是Notification 消息或断开 TCP 连接请求,则迁移到 Idle 状态。
    如果保持定时器到期,或检测到差错,或发生了终止事件,则向邻居发送一条 Notification
    消息、关闭 BGP 连接,并将状态更改为 Idle 状态。
  • Established(建立)状态
    该状态下,BGP 对等连接已完全建立,对等体之间可以相互交换 Update、Keepalive 和Notification 消息。如果接收到的是 Update 或 Keepalive 消息,则重新启动保持定时器(如果协商好的保持时间不是零)。
    如果接收到的是 Notification 消息,则迁移到 Idle 状态。其他事件(启动事件除外,因为该状态会忽略启动事件)将会让 BGP 进程发送一条 Notification 消息并迁移到空闲状态。
  1. bgp建立邻居失败的场景
    参数与配置:
    1. Neighbor 10.1.1.1
      代表向该地址发送tcp端口为179的数据,并且自己也需要在发出地址上打开tcp179的监听。该配置可以指定源地址也可以不指定源地址,不指定就是出接口地址。(意味着得打开出接口关于tcp179的监听
      本端指的地址需要是对方的源地址,对方指的地址需要是本端的源地址
    2. Neighbor 10.1.1.1 remote-as xx
      对端建立邻居的as号必须和本端remote-as xx号一致。
    3. 建立双方保障tcp179能够发送,不丢失,不被拦截
邻居之间路由传递规则
  • BGP有两种邻居关系
    1. IBGP邻居关系 ——相同as路由器建立的邻居关系
    2. EBGP邻居关系——不同as路由器建立的邻居关系
  1. BGP不管什么邻居关系只传递最优路由(不优不传,优的标志是>>,也就是不带>的路由不会被bgp传递)
  2. EBGP邻居关系路由传递:只要不违背环路原则或者人工策略EBGP邻居传递无限制的(前提必须优),EBGP之间传递路由会更新next-hop为自己的更新源地址。
  3. IBGP邻居关系路由传递:IBGP邻居之间不会中转路由。ibgp自己产生的路由(自己宣告的,自己重发布进来的)和EBGP邻居传递的都可以传递给他的IBGP邻居,但不可以在IBGP之间中转(也就是不能传递到邻居的邻居)
    1. IBGP之间传递路由不会更新next-hop(只用next-hop为0.0.0.0的情况才会更新,或者建立邻居的时候输入neighbor x.x.x.x next-hop-self更新为自己的更新源地址)。
    2. 这个设定的好处:IBGP之间拥有了水平分割从而避免了IBGP环路的产生,bgp也不必设置防环算法。
    3. 这个设定的坏处:IBGP之间路由传递必须直接建立邻居,导致IBGP邻居关系是一种全互联状态。
BGP的属性
  • 11条属性:weight(权重值),origin(起源属性),as-path(记录路由经过的AS),next-hop,local-pref(本地优先级),atomoc-aggregate,aggregator,community,MED(metric多出口鉴别属性,度量值),originator-id,cluster-list
  • 属性的四种属性
  1. 公认必尊
    所有bgp路由器必须识别遵守的原则有origin,as-path(防环机制),next-hop(下一跳)
  2. 公认可尊
    所有路由器都能是被,但不一定要遵守,local-pref,atomic-aggregate
  3. 可选传递
    不是所有BGP路由器都能识别,但是所有BGP都能传递(设置了必须传递),aggregator(自动传)和community(手动设置了必须传)
  4. 可选非传递
    不是所有路由器都被识别,不能识别的BGP路由器就丢弃它,MED(metric)不同as不识别相同as识别,originator-id和cluster-id(反射器),weight
  • Weight
    Cisco私有属性,对于离开AS的路由在路由器选择那一条最优,本路由器产生为32768,学习的为0,不能传递,适用于一台路由去 往别的 AS 有多个出口。
  • Origin
    起源,0 表示宣告(i),1 表示 EGP 学到(E),3 表示其他手段得到(重发布?),越低越好。
  • AS path
    一条路由在传输过程中经历了那些 AS(不算自己),可用来放环。越短越好
    Nei x.x.x.x allowas-in 允许和具有自己相同的 AS 的路由进入本
    AS Nei x.x.x.x as-override 把具有和其他 AS 相同 AS 号的路由放入这个 AS
  • Next_hop
    到达路由的下一跳路由器 IP 地址
    通告路由器和接受路由器不在一个 AS,next_hop 为通告路由器的更新地址 ;
    通告路由器和接受路由器在一个 AS 内,next_hop 为通告邻居的更新地址 ;
    通告路由器和接受路由器在一个 AS 内且为邻居关系更新地址为不同 AS,则为外部更新地址
  • Local_pref
    不能传输到其他 AS,值越高越优,用于本 AS 选择,离开 AS 的出口路由器默认为 100;
  • MED
    用于选择流入 AS 的入口路由器,可以在俩个 AS 之间传递,越低越好默认 0(只能在一个 AS 内 比较);
  • Atomic_aggregate
    用来警告下游路由器路由聚合后产生的路由路径丢失。
    BGP 支持向 BGP 邻居传递重叠路由可以选择多种方式
    (1)明细和粗略的都公布
    (2)只公布明细
    (3)只公布没有重叠的
    (4)聚合后公布聚合后的路由
    (5)明细和粗略都不公布
  • Aggregator
    用来通告汇总路由的汇聚路由器 BGP_ID(cisco)
  • Community
    standard(做路由标记) extended(MPLS VPN)可读性好
    (1)internet 默认属性,可以给任何 bgp 发送
    (2)no_export 只能在一个 AS 内传递,可以在联盟内传递。
    (3)no_advertise 不在 IBGP 邻居间传递
    (4)local-as 不向任何 EBGP 邻居发送包括联盟的 EBGP 邻居
    标准和扩展 community
    标准是普通路由可以设置的团体公有和私有
    扩展是 mpls 中的 vrf 路由传递定义的
  • Originator_id
    路由反射使用,是路由发起者产生的一个 32 比特的值,该值是本地路由发起者的 RID,如果路 由发起者从属性上看到 自己的 RID,说明有环路就忽略 ;
  • Cluster_list
    路由反射器使用,是路由进过反射器簇 ID 的一个序号。如果反射器在属性里看到自己的簇 ID 就说明有环路,忽略 簇 ID 列表:记录了所有反射器的 RID。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值