栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

华为(BGP路由技术)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

华为(BGP路由技术)

BGP概述

BGP主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。全国各大网络运营商多数都是通过BGP协议与自身的AS号来实现多线互联的。使用此方案来实现多线路互联。如果把一个城市比作一个自治系统,那么RIP、OSPF等协议就相当于该城市的公交车或地铁,而BGP则是火车,运行在城市之间。

自治系统

自治系统(Autonomous System,AS)是由一个技术管理机构管理,使用统一选路策略(运行在同一动态路由协议)的一组路由器的集合。自治系统的编号取值范围为1-65535。其中1-64511是公有AS号类,类似公有IP地址,64512-65535是私有AS号,类似私有IP地址,可以重复使用但是互联网上不可见。

动态路由分类

按自治系统分类:

IBGP:自治系统内部的路由协议,IGP是运行在自治系统内部的路由协议,它解决AS内部的选路问题。其主要作用是发现,计算路由。

EBGP:即自治系统之间的路由协议,通常指BGP。EGP是运行在AS与AS之间的路由协议,它解决的是AS之间的选路问题。BGP的主要作用是控制路由的传播和选择最优路由。

按协议类型分类

距离矢量路由协议:RIPv1/v2、BGP(路径矢量协议)、EIGRP(高级的距离矢量协议)。

链路状态路由协议:OSPF、ISIS。

BGP特性
  1. 传输协议:TCP,端口号179
  2. BGP是外部路由协议,用来在AS之间传递路由信息
  3. 是一种增强的路径矢量路由协议
  4. 拥有可靠的路由更新机制
  5. 具有丰富的Metric度量方法
  6. 无环路协议设计
  7. 为路由条目附带多种属性信息
  8. 支持CIDR(无类别域间选路)
  9. 丰富的路由过滤和路由策略
  10. 无须周期性更新
  11. 路由更新时只发送增量路由
  12. 周期性发送KeepAlive报文,以保持TCP连通性(三次握手)
BGP消息类型

运行BGP的路由器称之为BGP Speaker

BGP Speaker之间会交换五种类型的报文,其中OPEN报文,KeepAlive报文以及NOTIFICATION报文用于邻居关系的建立和维护。

Open:负责和对等体建立邻居关系,主要包括BGP版本,AS号等信息;试图建立BGP邻居关系的两个路由器在建立了TCP会话连接之后开始交换OPEN信息以确认能否形成邻居关系。

KeepAlive:该报文在对等体之间周期性发送,用于判断对等体之间的可达性,实现BGP邻居关系的维护。

Update:该报文用于在BGP对等体之间用于交换路由信息;其中包括撤销路由信息和可达路由信息及其各种属性,是BGP五个报文中最重要的报文。

Notification:BGP的差错检测机制;一旦检测到任何形式的差错,BGP Speaker会发送一个Notification报文,随后与之相关的邻居关系将被关闭

Route-refresh:用来通知BGP对等体自己支持路由刷新能力。

BGP六种状态机
  1. Idle(空闲):Idle是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现以后,BGP初始化资,复位连接重传定时器(Connect-Retry通常计时器为30 秒),发起一条TCP连接,同时转入Connect(连接)。
  2. Connect(连接):在Connect状态,BGP发起一个TCP连接,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active状态。如果连接重传定时器超时,BGP仍没收到BGP对等体的响应,就继续发起TCP连接,停留在Connect状态。
  3. Active(活跃):在Active状态,BGP总是在试图建立TCP连接,如果连接重传定时器超时,就退回Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就继续保持在Active状态,并继续发起TCP连接。
  4. OpenSent(打开消息已发送):在OpenSent状态,TCP连接已建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open报文,并对收到的Open报文进行正确性检验,如果有错误,系统就会发送一条出错通知消息,并退回到Idle状态,如果没有错误BGP就开始发送KeepAlive报文,并复位KeepAlive计时器,开始计时。同时转入Open/confirm/i状态。
  5. Open/confirm/i(打开消息确认)状态:在Open/confirm/i状态,BGP发送一个KeepAlive报文,同时复位保持计时器,如果收到一个KeepAlive报文,就会转入Established阶段,BGP邻居就建立起来了。如果TCP连接中断,就退回Idle状态。
  6. Established(连接已建立):在Established状态,BGP邻居关系已经建立,这时,BGP将和他的邻居们交换Update报文,同时复位保持计时器。
BGP交互原则
  1. 从IBGP对等体获得的BGP路由,BGP设备只传给他的EBGP对等体。
  2. 从EBGP对等体获得的BGP路由,BGP设备传递给它的所有EBGP和IBGP对等体。
  3. 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
  4. 路由更新时,BGP设备只发送更新的BGP路由。
  5. 所有对等体发送的路由,BGP设备都会接收。
  6. 所有EBGP对等体在传递过程中下一跳地址改变
  7. 所有IBGP对等体在传递过程中下一跳地址改变
  8. 默认EBGP传递时,TTL值为1。
  9. 默认IBGP传递时,TTL值为255。
BGP属性分类

BGP属性分为公有必遵、公认任意、可选过渡、可选非过渡四大类。

BGP的属性类别
Origin公有必遵
AS-PATH
Next-Hop
Local Pref公认任意
Community可选过渡
MED可选非过渡

优先级:Local Pref > AS-PATH > Origin > MED

AS-PATH属性可以传递给IBGP、EBGP对等体,

Local-Pref属性只在IBGP对等体传递

MED属性只在EBGP对等体传递

Origin(起源)属性用来定义路径信息的来源。IBGP(i)>EBGP(e)>Incomplete(?)(通过其他方式学习到的路由信息)。

BGP选路规则
  1. 若去往目的网络的路由下一跳不可达,则可以忽略此路由。
  2. Preferred—Value优先级以数值高的路由优先。
  3. Local—Preference优先级以数值高的路由优先。
  4. 聚合路由优先级高于非聚合路由。
  5. 本地手动聚合路由的优先级高于本地自动聚合的路由。
  6. 本地通过Network命令引入的路由的优先级高于本地通过import-route命令引入的路由。
  7. AS路径长度最短(最少个数)的路径优先级高。
  8. 比较Origin属性,IGP优先级高于EGP,EGP优先级高于Inconplete。
  9. 选择MED优先级较小的路由。
  10. EBGP路由优先级高于IBGP路由
  11. BGP优先级选择到BGP下一跳的IGP度量低的路径。

  当以上全部相同,则为等价路由,可以负载分担(注:AS—PATH 必须一致),当负载分担时,一下三条原则无效。

  1. 比较Cluster-List长度,短者优先。
  2. 比较Originaot_ID(如果没有Originator_ID,则用Router ID 比较),选择数值较小的路径。
  3. 比较对等体的IP地址,选择IP地址数值最小的路径。

直连建立邻居时需注意的点:建立IBGP邻居时要保证下一跳可达,处于边界的IBGP要将下一跳指向自己(peer 4.4.4.4 next-hop-local),这样才能保证BGP路由的可达性。

用环回口建立邻居时需注意的点:需要修改更新源,默认更新源是物理口,你需要修改成自己环回口(peer 4.4.4.4 connect-interface LoopBack 0)。peer 4.4.4.4 as-number 200

建立IBGP邻居时要保证下一跳可达,处于边界的IBGP要将下一跳指向自己(peer 4.4.4.4 next-hop-local),这样才能保证BGP路由的可达性。

建立EBGP时因为EBGP只传一跳,因而,在建EBGP邻居时,需要修改EBGP多跳的跳数为2以上(自己回环口到对端回环口是2跳,默认只传一跳)(peer 4.4.4.4 ebgp-max-hop)

为什么要用回环口建邻居:原因是回环口稳定,只要路由器启动着,环回口就不会down,而物理链路可能会受到线路或接口等因素影响导致邻居关系有问题,因而一般BGP建立邻居都是用回环口来建。

更改AS-PATH属性

1、ACL抓取路由

[]acl 2000

  rule permit source 4.4.4.4 0.0.0.0   //抓取4.4.4.4/32的路由

2、针对4.4.4.4/32做路由策略

[]route-policy 策略名称 permit node 10        //新建路由策略,策略列表号10

  if-match acl 2000        //匹配acl 2000抓取的路由

  apply as-path 300 400 500 additive        //匹配上路由后,增加AS-PATH路径

  route-policy 策略名称 permit node 20        //针对除4.4.4.4/32的路由外,放行

3、调用路由策略

[]bgp 200        //进入BGP

  peer 1.1.1.1 route-policy as-path export        //指邻居时调用路由策略,策略名称as-path,调用方向为出方向。

注意:调用方向和路由方向走向一致。

更改Local-preference属性

1、acl 抓取路由

[]acl 2000

rule permit source 1.1.1.1 0.0.0.0        //抓取1.1.1.1/32路由

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693653.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号