bgp协议 订阅
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。 展开全文
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
信息
类    型
外部网关协议EGP
简    称
BGP
中文名
边界网关协议
外文名
Border Gateway Protocol
边界网关协议释义
(BGP/BGP4:Border Gateway Protocol,边界网关协议)BGP-4 提供了一套新的机制以支持无类域间路由。这些机制包括支持网络前缀的通告、取消 BGP 网络中 “ 类 ” 的概念。 BGP-4 也引入机制支持路由聚合,包括 AS 路径的集合。这些改变为提议的超网方案提供了支持。BGP-4 采用了路由向量路由协议,在配置BGP时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。1989年发布了主要的外部网关协议:边界路由协议(BGP),新版本BGP-4 是在1995年发布的。BGP路由选择协议执行中使用4种分组:打开分组(open)、更新分组(update)、存活分组(keepalive)、通告分组(notification)。
收起全文
精华内容
下载资源
问答
  • BGP协议

    千次阅读 多人点赞 2019-11-08 20:34:45
    BGP是工作在AS与AS之间的动态路由协议。 为什么用BGPBGP工作过程可分为四步: 1.邻居建立 2.路由发布 3.路由通告 4.链路维护 BGP工作原理? 邻居类型? 基于TCP连接的邻居关系,端口号:179 如图,RA...

    BGP协议

    BGP是一个外部网关协议,实现在两个自治系统(Autonomous System)之间传递路由信息,BGP着重于控制路由传播与选择最优路由的协议,它是基于矢量路径算法的动态路由协议。

    EGP与IGP区别

    EGP(Exterior Gateway Protocol)是外部网关协议,它是动态路由协议的一种,另一种是IGP。常用的EGP协议目前只有BGP,在AS之间都是通过BGP协议传播数据。

    IGP(Interior Gateway Protocol)是内部网关协议,工作于AS自治系统内,常见的IGP协议有RIP、OSPF、ISIS,IGP着重于发现路由与计算路由。

    注:BGP与OSPF是应用最广泛的两个路由协议,外部网关协议与内部网关协议中的两个网关指的是AS自治系统。

    路由来源

    BGP与IGP协议与路由来源息息相关,路由器转发报文基于路由表,路由表则涉及了路由来源。
    路由来源方式有以下三种:

    1. 直连路由
    2. 静态路由
    3. 动态路由

    注:直连路由接口连接链路,接口配置IP,此条路由会被其他路由器学习到、静态路由:使用IP Route Static命令配置

    自治系统Autonomous System

    自治系统(AS)是由技术管理机构管理、使用统一选路策略的一些路由器的集合。AS间传递信息时会携带AS编号,如AS65000与AS65001两个编号分别代表两个不同的AS组合。

    AS编号有公网与私网之分,公网编号由国际组织管理分配,与IP类似。

    1. 公网编号范围:1~64511
    2. 私网编号范围:64512-65535

    注:公网上AS与AS之间传播消息,只能使用公网编号,私网编号可以在不同AS内随意使用,不同运营商都可以用相同编号,但不可发布在公网。

    AS间路由器如何通过BGP传递路由信息?
    在这里插入图片描述
    AS65000自治系统的边缘路由器 与AS65001边缘路由器要同时运行两个进程。

    AS65000允许OSPF与内部路由器进行路由学习,也同时与AS65001交互,分别运行OSPF与BGP,从BGP学习到的路由信息,要传递到整个AS的路由器,那么便需要把BGP的路由信息导入到 OSPF进程里面,OSPF进程就会在里面进行通告,其实这个边缘路由器起到的作用就是:引入外部路由,同理,AS65001的边界路由器工作原理也是如此。

    为什么用BGP(EGP)?
    在这里插入图片描述
    如图,AS1、AS2、AS3分别代表移动联通电信三个运营商,内部分别有三台HTTP服务器,当服务器需要被其他用户访问时。

    *静态路由配置

    通过在RTA、RTB与RTC上分别配置ip route static命令,配置去往3个路由器的静态路由条目,在AS1中的RTC上,把静态路由导入到内部OSPF进程中,AS1的路由器则就可以学习到这RTA与RTB的路由。

    缺点:静态路由配置需手动配置,假若AS2内有若干台服务器,那配置静态路由的条目也需要若干条。

    动态路由OSPF协议配置:

    OSPF可以把路由引入 ,把3.3.3.3导入OSPF进程内, RTA与RTC路由器之间运行OSPF,会带来一个问题。

    缺点:A与C分属不同的运营商,它们通过OSPF建立连接,A将C的整个路由表学习到,等同于获得了C的网络拓扑,内部路由器数量、网络规模大小,在运营商(公司)之间,这是不被允许的,属于商业机密,所以AS之间不允许使用OSPF来连接。

    动态路由协议BGP配置:

    AS之间通过BGP协议来精确控制学习路由,所谓精确路由传递,即AS3内的Http服务器,可以允许AS2内的用户访问,却不被AS1内用户访问,这就是BGP的精确控制。

    BGP的基本工作机制

    在这里插入图片描述
    BGP有四种工作机制:
    工作机制

    1. 建立邻居

    2. 发布路由

    3. 传递路由

    4. 链路维护

    BGP工作过程

    建立-发布-传递-维护:
    1. 邻居建立过程:在路由器上配置BGP,路由器便有了bgp路由表,最初,bgp路由表为空,BGP不会自动学习或发现路由。(如A与B直连,接口上有IP与链路,但是信息不会进入BGP路由表内)
    2. 路由发布过程:AS1内IP为1.1.1.1的路由,要让其他AS用户网络都能学习到,需要通过命令: [RTA-BGP]Network 1.1.1.1 24 发布到BGP路由表,配置完,BGP内就有了这条路由。
    3. BGP路由传递:RTA传递路由,会将路由交给邻居B->C->D,最终每个AS内的路由器都会学习到此路由。RTA传递BGP路由是可控制的,由它决定是否传递给B、C、D某台路由器。
    4. 链路维护:RTA与RTB之间,属于邻居,需要维护链路,对链路进行周期性检测是否可以用

    工作机制对应消息类型
    建立邻居Open
    发布路由Network、import
    传递路由Update
    链路维护keep-alive、Notific atiol、router-refresh

    BGP消息类型?

    BGP报文有五种类型:

    1. Open:负责和对等体建立邻居关系。
    2. Update:该消息被用来在BGP对等体之间传递增量路由信息。
    3. Keep-Alive:该消息在对等体之间周期性地发送,用以维护连接。
    4. Notification:当BGP Speaker检测到错误的时候,就该发送该消息给对等体。
    5. Route-refresh:用来通知对等体自己支持路由刷新能力。

    BGP为什么没有对Update消息的确认呢?Update丢失了怎么办?

    Update消息带有路由增量信息,却并没有对Update的确认消息,在OSPF内,有LSR、LSU、LSACK ,ACK就是对LSU的确认。

    那bgp为什么没有呢,BGP是应用层协议,它基于TCP,TCP是面向连接的可靠传输协议,TCP内自带消息确认机制,可保证报文不会丢失,所以BGP内不会对Update进行确认。

    BGP报文信息

    BGP报文头部中包含Header、Message、Data,在Header中,Type最重要,它有占1Byte。

    Type数值Type数值代表含义
    1Open-------报文信息:Version:BGPV4、My Autonomous System(自治区域编号、Hold Time:时间内未收到Keepalive,TCP断开连接、BGP Identifier:类似OSPF的路由ID、Opt Param Len:可选参数TLV结构、Optional Parameters(variable):最开始发送它,用来建立TCP连接
    2Update-------Withdrawn Routes Length增加撤销路由、Withdrawn Routes撤销数量、Path Attribute Length路由属性,AS-Path属性即放此处,路由属性根据具体的路由相关联、Path Attribute新增路由放置处、 Network Layer Reachability Information新增路由
    3Notification------Error Code [1]消息头错误、[2]Open消息错误、[3]Update消息错误、[4]保持时间超时、[5]状态机错误、[6]终止
    4Keepalive(KeepAlive报文只有报文头,默认60s发一次,180s超时(Hold Time))
    Route-refresh报文

    BGP的入口路由策略发生了变化,本地BGP,可以在不中断BGP连接的情况下,对BGP路由表进行动态刷新,并应用新的路由策略。

    应用场景
    在这里插入图片描述
    RTA发布两条路由(1.1.1.1、2.2.2.2)给RTB,RTB将路由学完后要改策略,只接收1.1.1.1的,拒绝接收2.2.2.2,则要在RTB上应用新的策略,RTB发布Route-refresh ,RTA再重新发布路由,B应用新的路由策略之后,允许接收1.1.1.1,拒绝接收2.2.2.2,Route-refresh应用成功。

    BGP状态机

    在这里插入图片描述

    1. idle (初始化状态):idle是BGP初始状态,尚未配置BGP,BGP拒绝任何进入的连接请求 ,配置BGP后,进入connect
    2. Active(尝试建立连接):BGP将尝试进行tcp连接的建立,是BGP的中间状态
    3. connect(建立tcp连接):连接建立后,BGP间可通信。如果双方路由器都配置了BGP,那么connect就可以成功建立连接。只有一方配置,BGP建立会失败,进入Active状态,失败重试,如失败次数太多又会回到connect。双方都配置了BGP,并且正确,tcp建立完成,进入 open-sent,
    4. open-sent:进入此状态,设备会发送open消息,收到open消息后,设备进入open-confirm。
    5. open-confirm:此状态会发送keepalive消息给对方,并启动计时器,定期收到keeplive消息。keeplive消息收到,进入establish
    6. establish(建立完成状态):此状态发送update,同步路由,定期发keeplive消息。

    如果open-sent、open-confirm、Established有一处建立出错的话,发idle报文,tcp连接全部断开,回到idle状态。

    BGP工作原理

    BGP工作过程四步骤:

    1.邻居建立
    2.路由发布
    3.路由通告
    4.链路维护

    BGP邻居类型?

    BGP是基于TCP连接的邻居关系,它的端口号:179
    在这里插入图片描述
    如图,路由器RTA、RTB与RTC都属于BGP邻居关系,RTB与RTC为直连路由,RTA与RTB非直连路由,RTA与RTB它们也可以建立邻居关系,因为BGP邻居关系是建立在TCP连接的基础之上。

    BGP的邻居关系

    在这里插入图片描述
    BGP的两种邻居关系分别是?

    一、IBGP:Internal BGP,如图,路由器RTB与RTD都属于AS200,他们是属于IBGP,IBGP要求两个设备在同一AS内。

    二、EBGP:External BGP,如图,路由器RTE与RTD属于不同AS,那么他们属于EBGP,EBGP是指两设备不在同一AS内。

    BGP怎么建立邻居?

    BGP不能自动发现邻居,必须手动指定邻居,BGP是基于TCP,TCP基于IP,TCP属于传输层,在网络层肯定有IP头,IP头部内有目标IP与源IP,想建立TCP连接就必须知道源目标IP,那么BGP就需要知道源、目的IP才可以指定对端IP。
    OSPF自动发现邻,依靠发送一个HELLO报文,HELLO报文内是目标IP是一个主播的IP地址224.0.0.6。

    两种不同邻居关系如何做配置?

    EBGP邻居关系配置:
    在这里插入图片描述
    RTE与RTD为EBGP邻居关系

    [RTE] bgp 300 #指定bgp 300
    [RTE-bgp]peer 20.0.0.1 as-number 200 #peer-邻居的意思,指定邻居为 20.0.0.1 as编号是200.

    [RTD]bgp 200 #指定bgp 200
    [RTD-bgp]peer 20.0.0.2 as-number 300 #peer-邻居的意思,指定邻居为 20.0.0.2 as编号是300.

    通过这两条配置,RTE与RTD就可以建立EBGP的关系。

    IBGP邻居关系配置与EBGP邻居配置方法一致。
    RTB与RTD属于IBGP关系,它们的邻居配置:
    (RTB与RTD非直连路由,在AS内部允许OSPF可让它们建立连接,建立BGP的前提需要保证路由可达)
    [RTB]bgp 200
    [RTB-bgp]peer 4.4.4.4 as number 200

    [RTD]bgp 200
    [RTD-bgp]peer 2.2.2.2 as number 200

    EBGP多跳和指定更新源
    在这里插入图片描述
    路由器RTE上需要通过loopback地址来建立BGP邻居,
    需要配置:peer 4.4.4.4connect-interface loopback 0。

    EGBP、IBGP中TTL默认值在应用中的缺陷及解决办法:

    BGP作为传输层协议,封装在IP协议中,在IP报文内有一个参数为TTL,而EBGP与IBGP均有一个TTL的默认值,分别是EBGP默认为1,IBGP默认为255。

    BGP属于应用层协议,封装在IP报文内,IP报文中带有一个TTL的参数,EGBP与IBGP分别有一个TTL值,EBGP的TTL默认值为1,IBGP的TTL默认值为255。
    EBGP默认为1的TTL值,在使用直连路由建立BGP邻居时,对TTL值无关紧要,但再使用"loopback"建立逻辑接口时的直连路由上,会导致TTL跳数不够,而导致报文无法转发。
    在EBGP邻居关系下的RTE与RTD中,因为RTD创建了loopback环回接口,RTE发送报文给RTD时,RTE>RTD为一跳,RTD>loopbook0为一跳,EBGP的TTL值为1,小于跳数2,报文被丢弃,无法转发到loopback环回接口
    为了解决上述问题,确保报文转发至loopback0,配置一条命令:
    [RTE-bgp]peer 4.4.4.4 ebgp-max-hop 2
    此命令作用:从路由器发送给loopback0的报文,会将其IP报文头部的TTL值置为2,这便实现了与loopback的通信。

    IBGP关系的路由器D与路由器B建立邻居关系使用LOOPBACK

    [RTE-bgp] peer 4.4.4.4 connect-interface loopback 0
    

    loopback0接口,省略了一步配置最大跳数。IGBP邻居关系TTL默认为255,为最大值,IEBGP之间配置的区别。

    在这里插入图片描述

    BGP路由发布

    1. Network
    2. import

    发布BGP路由的途径一:network命令
    在这里插入图片描述
    network发布路由的路由必须是存在的路由。

     [RT2] bgp 200   //进入bgp模式
     [RT2-bgp]  network 18.0.0.1 255.255.255.255   //把路由通过network命令注入RT2-bgp路由表中
     [RT2-bgp]  network 18.0.0.2 255.255.255.255   //bgp掩码 255.255.255.255与ospf-0.0.0.0相反。
    

    发布BGP路由的途径之二:import命令
    在这里插入图片描述
    bgp优先选择network命令,导入进入的路由。

    [RT2] bgp 200                  //进入bgp模式
    [RT2-bgp] import-route ospf    //把ospf路由导入进RT2的bgp路由表
    

    ospf是可变项,也可以是rip、isis。

    路由通告原则

    BGP路由通告原则一

    连接一建立,BGP Speaker将把自己所有BGP路由通告给新对等体,多条路径时,BGP Speaker只选择最优的路由给自己使用,BGP Speaker只把自己使用的最优路由通过给对等体。
    在这里插入图片描述

    [RTA] display bgp routing-table   //查看bgp路由表
     “*”   指的是valid 也就是“有效”的意思。
     ”>“ 指的是best "最优"的意思。
    

    BGP路由通告原则(二)
    BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)
    在这里插入图片描述

    俗称:从EBGP过来的路由,发送给所有邻居。
    在这里插入图片描述
    如何保证下一跳可达?

    EBGP转到IBGP时,默认不修改下一跳。

    [RTB-bgp] peer 1.1.1.1 next-hop-local
    

    BGP路由通告原则(三)

    BGP Speaker 从IBGP获得的路由不会通告给它的IBGP邻居。
    在这里插入图片描述
    路由器RTE将192.168.1.0/24这条路由发送给路由器RTA,
    根据【路由通告原则二】,RTA会通告给RTB与RTC,那么RTB能否在通告给RTD呢,不能,它是从IBGP收到的路由,不能通告给它的IBGP邻居。
    假设B能通告给D,会发生什么问题?
    E>A>B>D>C>A 出现环路,为避免环路,这种做法不被允许。
    所以D与F学不到192.168.1.0/24的这条路由。
    如何让D与F能学习到呢?

    解决的办法是:IBGP全互联

    IBGP全互联
    在这里插入图片描述
    BGP路由通告原则(四):

    BGP speaker从IBGP获得的路由是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定。
    在这里插入图片描述

    这句话怎么理解,比如:A将自己10.1.1.1/24的路由信息通告给了B ,B根据原则二,B从EBGP学习的,B可以通告给IBGP,B通告给了E,E从IBGP学习的路由,

    IGP与BGP同步:
    在这里插入图片描述 A通告了10.1.1.1/24,通告给B>E>F,F要去往10.1.1.0网段的报文,要交给E,E>B(走的就是:E>D>C>B)的物理连接。但是D没有到10.1.1.0的目标网段信息,之前传的是BGP的路由信息条目,D根本无法学习到此路由,报文到D之后就无法转发了。 其实,在E上要先做判断,在做通告路由信息给F时,要看IGP(ospf)有没有整个路由信息(去往10.1.1.1IP的信息),如果没有,则不可通告给F,F返回的报文无法转发,有,可通告。

    实验34分开始。

    BGP路由选择工具

    1. 访问控制列表(ACL)
    2. 前缀列表(ip-prefix)
    3. 自治系统路径信息访问列表(as-path-filter)
    4. 团体属性列表(community-filter)
    5. 路由策略(router-policy)
    展开全文
  • 保护BGP协议较为常见的方法是在网络边缘添加防火墙、流量分析仪等安全设备。从分析BGP邻居的建立过程及DDoS的攻击特点入手,提出一种新的思路,在不增加运营成本的前提下,实现BGP协议对DDoS的防御。
  • BGP 协议

    千次阅读 2020-04-10 14:26:57
    BGP基础配置,BGP 5种报文,6种邻居状态,4大类细分10种属性,IBGP EBGP(环回口 物理接口)建立邻居,BGP认证,fake-as,路由传递原则,IBGP防环,EBGP防环,RR防环,BGP路由自动聚合,手工聚合(detail-suppressed...

    BGP知识点:
    BGP基础配置,BGP 5种报文,6种邻居状态,4大类细分10种属性,IBGP EBGP(环回口 物理接口)建立邻居,BGP认证,fake-as,路由传递原则,IBGP防环,EBGP防环,RR防环,BGP路由自动聚合,手工聚合(detail-suppressed,supress-policy,attribute-policy,origin-policy),BGP 5种 community属性,BGP选录,BGP联盟,路由反射器,BGP路由过滤,引入,下放默认路由
    在这里插入图片描述

    边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS之间的路由可达,并选择最佳路由的 高级路径矢量路由协议

    • AS,自治系统是指同一个技术管理机构管理,使用统一选路策略的一些路由器的集合。
    • AS的内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。
    • 不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。
    • 总结:AS内部使用IGP来计算和发现路由;AS之间使用BGP来传递和控制路由

    BGP不支持多进程,因为整台路由器只能属于一个AS
    BGP特点:非直连建立邻居关系 (BGP可以跨越多跳路由器建立邻居关系)
    这种特点会产生 BGP路由黑洞 (双方路由表都看得到,但是ping不通,中间被吸走了)

    TCP的三次握手。先启动BGP的一端先发起TCP连接。如图所示,RTB先启动BGP协议,RTB随机端口号向RTA的179端口发起TCP连接
    在这里插入图片描述

    BGP 邻居类型

    EBGP(External BGP)、IBGP(Internal BGP)
    在这里插入图片描述通过AS number比较
    运行在不同AS之间的BGP路由器建立的邻居关系为EBGP邻居关系
    运行在相同AS内的BGP路由器建立的邻居关系为IBGP邻居关系

    OSPF的network有两个作用:①建立邻居 ②宣告网段
    OSPF的Hello包:①建立邻居 ②维护邻居
    对于BGP是细化了,邻居归邻居,路由归路由
    BGP建立邻居是peer,宣告是network
    BGP建立邻居报文是open,BGP维护报文是keepalive

    BGP 5种包

    BGP 共有 Open、Update、Notification、Keepalive 和 Route-refresh 等 5种报文类型。
    Open 报文:是 TCP 连接建立后发送的第一个报文,用于建立 BGP 邻居之间的连接关系。

    BGP 邻居在接收到 Open 报文并协商成功后,将发送 Keepalive 报文确认并保持连接的有效性。确认后,BGP 邻居间可以进行 Update、Notification、Keepalive 和 Route-refresh 报文的交换

    1、Open 报文:
    用于建立 BGP 对等体连接,创建时或重置时能看到, reset bgp all all
    2、Update 报文:
    用于在对等体之间交换路由信息。需要在BGP中network才会有Update报文
    3、Notification(通告)报文:
    用于中断 BGP 连接。
    4、Keepalive 报文:
    用于保持 BGP 连接。 周期性发送。
    5、Route-refresh(刷新)报文:
    用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的 BGP 设备会发送和响应此报文。
    refresh bgp all import

    BGP 6种邻居状态

    Idle:初始状态 。reset bgp all才能看到
    connection:BGP等待TCP连接的简历
    active:TCP连接失败,重新建立TCP连接
    opensent:TCP建立成功,发送open报文
    openconfirm:收到正确的OPEN报文 。如果收到Keepalive报文,则转至Established状态。如果收到Notification报文,则转至Idle状态。
    established:BGP邻居建立成功

    Idle状态是BGP初始状态
    任何状态中收到Notification(通告)报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态

    Connect状态
    BGP启动连接重传定时器,等待TCP完成连接
    如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
    如果TCP连接失败,那么BGP转至Active(活跃)状态。
    如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其他BGP对等体进行TCP连接,停留在Connect状态。

    Active状态
    BGP总是在试图建立TCP连接
    如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
    如果TCP连接失败,那么BGP停留在Acitive状态
    如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

    OpenSnet状态
    如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态
    如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态

    OpenConfirm状态
    BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态

    Established状态
    BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
    如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接
    如果收到错误的Update或Keepalive报文,那么BGP就发送Notification报文通知对端,并转至Idle状态。

    邻居关系配置的优化
    物理口和环回口配置
    IBGP 常规用环回口建立
    EBGP 常规用物理接口建立

    环回口建立 IBGP邻居
    环回口 要加 connect-interface loo0 才能发送
    [R1]bgp 100
    [R1-bgp]peer 2.2.2.2 as-n 100 先要有邻居
    [R1-bgp]peer 2.2.2.2 connect-interface loo0 再 指定更新源

    环回口建立 EBGP邻居
    [R2-bgp]peer 3.3.3.3 connect-interface loo0
    [R2-bgp]peer 3.3.3.3 ebgp-max-hop 120 让传播的足够远。 如果是物理接口 1跳就足够了。
    但环回口1跳是不够的, 要修改环回口 ebgp-max-hop。 即修改TTL值

    [R3-bgp]peer 2.2.2.2 ebgp-max-hop
     

    通过非直连(逻辑接口)建立IBGP邻居要指定更新源
    更新源:BGP通告默认是以出接口发送更新
    因为BGP默认情况下,邻居建立是通过本地设备的出接口向对端发起TCP连接。指定更新源,实际就是指定发出oepn包的源地址,也就是tcp连接的本端地址。因此当使用非直连建立IBGP/EBGP 邻居时需要指定更新源

     

    BGP 邻居建立

    • 建立邻居的前提条件:建立邻居的地址必须是可达的

    • IBGP邻居建立
      1.通过直连接口建立IBGP邻居
      2.通过非直连(逻辑接口)建立IBGP邻居
        1.非直连地址必须可达
        2.指定更新源
      更新源:BGP默认使用设备出接口发送报文和更新路由

    因为BGP默认情况下,邻居建立是通过本地设备的出接口向对端发起TCP连接,对端收到TCP报文会检查源目地址,不匹配则建立失败,指定更新源,实际就是指定发出oepn包的源地址,也就是tcp连接的本段地址。因此当使用非直连建立IBGP/EBGP 邻居时需要指定更新源

    • EBGP邻居建立
      1 通过直连接口建立IBGP邻居
      2.非直连建立EBGP
        1.地址可达
        2.指定更新源
        3.指定最大跳数:使非直连能建立EBGP邻居  命令:peer 10.1.2.2 ebgp-max-hop
    bgp 100		进入BGP进程,每台只能配置一个进程号
    router-id 1.1.1.1		配置router  ID
    peer 2.2.2.2 as-number 100		指定10.1.12.2为对等体 AS是对端的AS号
    peer 2.2.2.2 connect-interface LoopBack 0
    peer 2.2.2.2 ebgp-max-hop 255
    peer 192.168.12.2 as-number 100
    

    如果没有配置 Router ID,BGP 路由器会按一定规则自动选举 Router ID,选举
    规则如下:
    路由器在它的所有 LoopBack 接口上选择数值最高的 IP 地址;
    如果没有 LoopBack 接口,路由器会在它的所有物理接口上选择数值最高的 IP
    地址。

    1、基本配置
    R1:
    sys
    sysname R1
    int loop 0
    ip add 10.0.1.1 32
    int g0/0/0
    ip add 10.0.12.1 24
    int g0/0/1
    ip add 10.0.21.1 24
    q
    
    R2:
    sys 
    sysname R2
    int loop 0
    ip add 10.0.2.2 32
    int g0/0/0
    ip add 10.0.12.2 24
    int g0/0/2
    ip add 10.0.21.2 24
    int g0/0/1
    ip add 10.0.23.2 24
    int g0/0/3
    ip add 10.0.32.2 24
    q
    
    R3:
    sys
    sysname R3
    int loop 0
    ip add 10.0.3.3 32
    int g0/0/0
    ip add 10.0.23.3 24
    int g0/0/1
    ip add 10.0.32.3 24
    q
    
    
    2、配置IBGP邻居
    先保证IBGP内互通:
    R1:
    ip route-static 10.0.2.2 32 10.0.12.2
    ip route-static 10.0.2.2 32 10.0.21.2
    R2:
    ip route-static 10.0.1.1 32 10.0.12.1
    ip route-static 10.0.1.1 32 10.0.21.1
    
    第一种方式:物理口建立IBGP邻居
    R1:
    bgp 100
    router-id 10.0.1.1
    peer 10.0.12.2 as-number 100
    peer 10.0.21.2 as-number 100
    q
    
    R2:
    bgp 100
    router-id 10.0.2.2
    peer 10.0.12.1 as-number 100
    peer 10.0.21.1 as-number 100
    q
    
    R2:
    dis bgp peer  查看邻居状态
    dis bgp routing-table  
    
    ————————————————————————————————————————————————————————————
    第二种方式:环回口建立IBGP邻居
    环回口 要加 connect-interface loo0 才能发送
    R1:
    undo peer 10.0.12.2 
    undo peer 10.0.21.2
    peer 10.0.2.2 as-number 100
    peer 10.0.2.2 connect-interface loop 0
    q
    
    R2:
    ip route-static 10.0.1.1 32 10.0.12.1
    ip route-static 10.0.1.1 32 10.0.21.1
    bgp 100
    undo peer 10.0.12.1
    undo peer 10.0.21.1
    peer 10.0.1.1 as-number 100
    peer 10.0.1.1 connect-interface loop 0
    q
    
    R2:
    dis bgp peer  查看邻居状态
    dis ip routing-table  查看路由表
    
    3.配置EBGP邻居
    第一种方式:环回接口建立BGP
    R2:
    bgp 100
    peer 10.0.23.3 as-number 200
    peer 10.0.32.3 as-number 200
    peer 10.0.3.3 as-number 200
    peer 10.0.3.3 connect-interface loop 0
    peer 10.0.3.3 ebgp-max-hop 2
    q
    ip route-static 10.0.3.3 32 10.0.23.3
    ip route-static 10.0.3.3 32 10.0.32.3
    
    R3:
    bgp 200
    router-id 10.0.3.3
    peer 10.0.23.2 as-number 100
    peer 10.0.32.2 as-number 100
    peer 10.0.2.2 as-number 100
    peer 10.0.2.2 connect-interface loop 0
    peer 10.0.2.2 ebgp-max-hop 2
    q
    ip route-static 10.0.2.2 32 10.0.23.2
    ip route-static 10.0.2.2 32 10.0.32.2
    
    ❤这里重点掌握怎么配置BGP邻居就行。
    4.传递路由(后面补充,暂时不理)
    R1:
    bgp 100
     network 10.0.1.0 255.255.255.0  宣告网段,企图想让BGP路由学习到。
    这个通过静态学习到,又通过BGP学习到,静态优先级比较高。dis bgp routing-table 会发觉这个不是最优的。 因此传递不过去给R3
    [R1]int LoopBack 1
    [R1-LoopBack1]ip add 6.6.6.6 24
    [R1-LoopBack1]bgp 100
    [R1-bgp]network 6.6.6.0 24
    然后在R2 和 R3 dis bgp routing-table,发现学习到了 
    R2:
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
    
     *>i  6.6.6.0/24         10.0.1.1        0          100        0      i
     R3:
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
    
     *>   6.6.6.0/24         10.0.2.2                              0      100i
    
    
    在R3上,创建looback2接口,宣告出去, 看看R1和R2的路由表
    [R3]int loo2
    [R3-LoopBack2]ip add 9.9.9.9 24
    [R3-LoopBack2]bgp 200
    [R3-bgp]net 9.9.9.0
    R1:
     Total Number of Routes: 2
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
    
     *>   6.6.6.0/24         0.0.0.0         0                     0      i
       i  9.9.9.0/24         10.0.3.3        0          100        0      200i
    
    不是可用的,最优的路由条目。这种情况怎么解决?在R2上,设置next-hop-local 这个后面会讲到
    [R2]bgp 100
    [R2-bgp]peer 10.0.3.3 next-hop-local
    
    

    peer 关键字后面是对端邻居的接口 IP 地址,也可以是环回口地址
    as-number 后面是邻居路由器所在的 AS 号,
    建立 EBGP 邻居关系时,一般使用直连接口的 IP 地址;建立 IBGP 邻居关系时,一般使用 Loopback 接口的 IP 地址。

     

    BGP 路由的生成方式

    BGP路由的生成方式 - Network(1)
    Network命令是逐跳将IP路由表中已经存在的路由引入到BGP路由表中,宣告出去,其他BGP路由器才能学到,不可以network一个不存在的路由条目
    在这里插入图片描述

    BGP路由的生成方式 - Import(1)
    Import: 根据运行的路由协议(RIP,OSPF,ISIS等)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由。
    但不建议EBGP的路由 引入到IBGP。 承载不了
    在这里插入图片描述

    dis bgp routing-table 查看是否学习到BGP路由条目

     

    BGP 通告原则与路由处理

    在这里插入图片描述
    BGP通告原则之一:仅将自己最优的路由发布给邻居
    在这里插入图片描述
    BGP通告原则之二:通过EBGP获得的最优路由发布给所有BGP邻居
    在这里插入图片描述
    BGP通告原则之三:通过IBGP获得的最优路由不会发布给其他的IBGP邻居(防环)
    在这里插入图片描述
    BGP通告原则之四:BGP与IGP同步

     
    配置案例
    在这里插入图片描述
    BGP路由信息处理
    bgp路由表,会提交到本地IP路由表。 路由转发的时候看的就是本地IP路由表
    在这里插入图片描述

    BGP 认证

    认证是指路由器对路由信息来源的可靠性及路由信息本身的完整性进行检测的机制。

    修改计时器
    默认 BGP 的 keepalive 时间为 60s, holdtime 为 180s
    如果 BGP 对待体两端的时间不同,以时间小的为准
    修改hold time和keepalive 可以更快验证实验
    [R2-bgp]timer keepalive 20 hold 60 整个BGP进程
    在这里插入图片描述
    简单认证 方式
    [R1-bgp]peer 192.168.12.2 password simple huawei
    [R2-bgp]peer 192.168.12.1 password simple huawei

    密钥链 方式
    [R2]keychain key mode periodic daily
    [R2-keychain]key-id 1
    [R2-keychain-keyid-1]key-string huawei
    [R2-keychain-keyid-1]algorithm md5
    [R2-keychain-keyid-1]send daily 09:00 to 17:00
    [R2-keychain-keyid-1]receive-time daily 09:00 to 17:00
    [R2-keychain-keyid-1]bgp 100
    [R2-bgp]peer 192.168.23.3 keychain key
     
    了解:fake-as —— 特殊场景
    概念:使用fake-as可以将本地真实的AS编号隐藏,其他AS内的对等体在指定本段对锻体所在的AS编号时,应该设置成这个伪AS编号。
    某台A设备升级了,然后AS号改了,等于 邻居指了不存在的AS号,然后邻居又不愿意改。
    这就有个 fake-as 伪装。 把某台A设备真实的AS伪装,欺骗。
    [R2]bgp 2000
    [R2-bgp]peer 192.168.12.1 fake-as 200

     

    BGP 对等体之间的交互原则

    BGP 设备将最优路由加入 BGP 路由表,形成 BGP 路由。BGP 设备与对等体建立邻居关系后,采取以下交互原则:
    1、从 IBGP 对等体获得的 BGP 路由,BGP 设备只发布给它的 EBGP 对等体。
    2、从 EBGP 对等体获得的 BGP 路由,BGP 设备发布给它所有 EBGP 和 IBGP 对 9
    等体。
    3、当存在多条到达同一目的地址的有效路由时,BGP 设备只将最优路由发布给
    对等体。
    4、路由更新时,BGP 设备只发送更新的 BGP 路由。
    5、所有对等体发送的路由,BGP 设备都会接收。
     

    BGP 邻居学习next-hop-local补充

    BGP无效路由的原因:下一跳不可达
    下一跳地址为0.0.0.0表示本地产生的BGP路由。

    在这里插入图片描述
    这台路由器既连接外部又连接内部,当路由器由外部路由发送到内部路由的时,改变下一跳为自己
    [R3-bgp]peer 1.1.1.1 next-hop-local
    [R3-bgp]peer 2.2.2.2 next-hop-local 告诉R2路由器,你去往一台路由器的时候,找我R3就行。
    从EBGP邻居收到的路由,发给IBGP邻居的时候,改变下一跳
    但从IBGP邻居收到的路由,发给EBGP邻居的时候,不需要使用

    具体配置:

    1.基本配置
    R1:
    interface GigabitEthernet0/0/0
     ip address 192.168.12.1 255.255.255.0 
    interface LoopBack0
     ip address 1.1.1.1 255.255.255.0 
    
    R2:
    interface GigabitEthernet0/0/0
     ip address 192.168.12.2 255.255.255.0 
    interface GigabitEthernet0/0/1
     ip address 192.168.23.2 255.255.255.0 
    interface LoopBack0
     ip address 2.2.2.2 255.255.255.0 
    
    R3:
    interface GigabitEthernet0/0/0
     ip address 192.168.34.3 255.255.255.0 
    interface GigabitEthernet0/0/1
     ip address 192.168.23.3 255.255.255.0 
    interface LoopBack0
     ip address 3.3.3.3 255.255.255.0 
    
    R4:
    interface GigabitEthernet0/0/0
     ip address 192.168.34.4 255.255.255.0 
    interface LoopBack0
     ip address 4.4.4.4 255.255.255.0 
    
    
    2.内部OSPF配置
    R1:
     area 0.0.0.0 
      network 1.1.1.1 0.0.0.0 
      network 192.168.12.1 0.0.0.0 
    
    R2:
     area 0.0.0.0 
      network 2.2.2.2 0.0.0.0 
      network 192.168.12.2 0.0.0.0 
      network 192.168.23.2 0.0.0.0 
    
    R3:
     area 0.0.0.0 
      network 3.3.3.3 0.0.0.0 
      network 192.168.23.3 0.0.0.0 
    
    3.环回口建立IBGP邻居  
    R1:
    [R1]bgp 100
    [R1-bgp]router-id 1.1.1.1
    [R1-bgp]peer 2.2.2.2 as-n 100
    [R1-bgp]peer 2.2.2.2 con loo0
    [R1-bgp]peer 3.3.3.3 as-n 100
    [R1-bgp]peer 3.3.3.3 con loo0
    [R1-bgp]net 1.1.1.0 24
    
    R2:
    [R2]bgp 100
    [R2-bgp]router-id 2.2.2.2
    [R2-bgp]peer 1.1.1.1 as-n 100
    [R2-bgp]peer 1.1.1.1 con loo0
    [R2-bgp]peer 3.3.3.3 as-n 100
    [R2-bgp]peer 3.3.3.3 con loo0
    [R2-bgp]net 2.2.2.0 24
    
    R3:
    [R3]bgp 100
    [R3-bgp]router-id 3.3.3.3
    [R3-bgp]peer 2.2.2.2 as-n 100
    [R3-bgp]peer 2.2.2.2 con loo0
    [R3-bgp]peer 1.1.1.1 as-n 100
    [R3-bgp]peer 1.1.1.1 con loo0
    [R3-bgp]net 3.3.3.0 24
    
    4.物理口建立EBGP邻居
    R3:
    [R3]bgp 100
    [R3-bgp]peer 192.168.34.4 as-n 200
    
    R4:
    [R4]bgp 200
    [R4-bgp]router-id 4.4.4.4
    [R4-bgp]peer 192.168.34.3 as-n 100
    [R4-bgp]net 4.4.4.0 24
    不需要改变邻接接口,也不需要多跳。因为是物理接口
    
    5.测试验证,发现问题,解决next-hop-local
    [R2]dis bgp routing-table 发觉   
    4.4.4.0 不是最优的,可用的,不会放到自己的路由表(ip routing-table),原因是下一跳不可达。 直接跨了网段的下一跳是不OK的。
    Total Number of Routes: 4
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
    
     *>i  1.1.1.0/24         1.1.1.1         0          100        0      i
     *>   2.2.2.0/24         0.0.0.0         0                     0      i
     *>i  3.3.3.0/24         3.3.3.3         0          100        0      i
       i  4.4.4.0/24         192.168.34.4    0          100        0      200i
    
    解决:next-hop-local
    [R3]bgp 100
    [R3-bgp]peer 2.2.2.2 next-hop-local
    [R3-bgp]peer 1.1.1.1 next-hop-local   
    内部两个都要配next-hop-local,告诉R2,R1 路由器,你去的时候找我就行了
    
    再次验证:
    [R2]dis bgp routing-table
     Total Number of Routes: 4
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
    
     *>i  1.1.1.0/24         1.1.1.1         0          100        0      i
     *>   2.2.2.0/24         0.0.0.0         0                     0      i
     *>i  3.3.3.0/24         3.3.3.3         0          100        0      i
     *>i  4.4.4.0/24         3.3.3.3         0          100        0      200i
    
    <R1>ping -a 1.1.1.1 3.3.3.3
      PING 3.3.3.3: 56  data bytes, press CTRL_C to break
        Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=50 ms
    

     

    BGP 常用属性

    4大类细分10种属性
    4大分类:公认必遵、公认任意、可选过渡、可选非过渡

    公认必遵(所有路由器,只要运行BGP都可以识别到,Update报文发送路由条目的时候必须携带这三个):Origin(起源)、AS_Path(AS路径)、Next_hop(下一跳)

    公认任意:Local_pref、Atomic_aggregate原子聚合(它相当于一种预警标识,并不承载任何信息。当路由器收到一条BGP路由更新中发现该条路由携带Atomic_aggregate属性时,它就知道这条路由可能出现了路径属性的丢失。)

    可选过渡(可有可无,不知道就传递给下一个对等体):Aggregator聚合者(用于标记路由汇总行为发生在哪个AS及哪台BGP路由器上)、Community(多个路由条目放一起)

    可选非过渡(可有可无,不知道就丢弃):MED、ORIGINATOR_ID、CLUSTER_LIST

    BGP属性 —— Origin
    Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的
    IGP(network)>EGP>Incomplete(import)
    i - IGP, e - EGP, ? - incomplete

    BGP属性 —— AS_Path
    AS-Path 是 记录经过的AS-hop 。 默认会选AS-Path短

    BGP属性 —— Next_hop
    什么时候要加 next-hop-local
    从EBGP邻居收到的路由,发给IBGP邻居的时候,改变下一跳
    但从IBGP邻居收到的路由,发给EBGP邻居的时候,不需要使用

    BGP属性 —— Local_Preference
    Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。默认为100,值越大越优

    BGP属性 —— MED
    MED属性仅在相连两个AS(在EBGP传递)之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由。默认为0,越小越优

    BGP属性 —— Community
    ·限定路由的传播范围
    ·打标机,便于对符合相同条件的路由进行统一处理

    BGP 防环

    IBGP的防环:水平分割,路由器从它的一个BGP对等体那里接收到的路由条目不会将该路由器再传递给其他IBGP对等体。
    EBGP的防环:当路由器从EBGP邻居收到BGP路由时,如果该路由的AS_Path中包含了自己的AS编号,则该路由将会直接丢弃
    在这里插入图片描述
    R2从EBGP邻居R1 收到R1的路由条目,会发送给R3。
    如果R3后还有R4,观察点要转移到R3,R3是通过IBGP邻居R2收到的路由条目,是不会发给R4的

    如果R4想接收到,R2和R4要建立一个BGP连接,虽然没有物理上的直连,但可以建立逻辑相连 —— TCP可达

    路由反射器的防环:Originator_id,Cluster_list

     

    BGP 选路规则

    BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
    ·该路由是到达目的地唯一路由,直接优选。
    ·对到达同一目的地的多条路由,优选优先级最高的。
    ·对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。

    一般来说,BGP计算路由优先级的规则: 要记住这8条及顺序
    当到达同一目的地存在多条路由且下一跳可达

    1.优选协议首选值(Preference_Value)最高的路由。(私有属性,仅本地有效)
    2.优选本地优先级(Local_Preference)最高的路由。 (100,IBGP,越大越优)
    3.优选本地生成的路由。手动聚合>自动聚合>network>import>从对等体学到的。
    4.优选 AS_Path 短的路由。
    5.比较 Origin 属性,起源类型 IGP>EGP>Incomplete。 i>e>?
    6.优选 MED(Multi Exit Discriminator)值最低的路由。 (0,EBGP,越小越优)
    7.优选从 EBGP 学来的路由(EBGP>IBGP)。
    8.优选 AS 内部 IGP 的 Metric 最小的路由。
    bgp 100
    max load-balancing 2
    9.优选 Cluster_List 最短的路由。 (有做路由反射器RR才考虑)
    10.优选 Router_ID 最小的路由器发布的路由。
    11.优选具有较小 IP 地址的邻居学来的路由。

    如果配置了负载分担,当前8个规则相同,且存在多条AS_Path完全相同的外部路由,则根据配置的路由条数选择多条路由进行负载分担
     

    BGP 路由聚合

    BGP在AS之间传递路由信息,随着AS数量的增多,单个AS规模的扩大,BGP路由表将变得十分庞大,因此带来如下两类问题:
    ·存储路由表将占用大量的内存资源,传输和处理路由信息需要消耗大量的带宽资源;
    ·如果传输的路由条目出现频繁的更新和撤销,对网络的稳定性会造成影响

    BGP路由聚合的必要性,AS内的路由器比较低端,处理能力较低,希望访问,又不希望接收过多的路由条目

    聚合方法 —— 静态
    在这里插入图片描述null 0 表示不存在的接口,起到防环作用

    聚合方法 —— 自动聚合

    undo synchronization 关闭同步
    自动聚合是针对 引入来的路由有效,对network无效
    在这里插入图片描述聚合方法 —— 手动聚合 (静态和aggravate)
    BGP路由聚合 会有明细和聚合后的。 因此要通过路由聚合屏蔽明细路由,只将一条聚合后的路由发出去 detail-suppressed
    在这里插入图片描述

    展开全文
  • BGP思维导图主要内容有基础知识,防环机制,路由反射器和路由联盟,报文,状态机制,属性和选路策略等,不喜勿喷
  • BGP协议原理与配置

    千次阅读 2021-10-23 15:40:30
    AS(自治系统)是指由同一个技术管理机构管理,使用统一选路策略...AS之间:使用BGP(外部网关协议)来传递和控制路由 EGP:BGP的前身,只能在AS之间简单地传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之

    AS(自治系统)是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合。
    私有自治系统,类似于私网那个IP地址,归属个人,不会连接到公网
    国际管理自治系统
    AS的内部:使用IGP(内部网关协议)来计算和发现路由,如OSPF,ISIS,RIP等,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少
    AS之间:使用BGP(外部网关协议)来传递和控制路由

    EGP:BGP的前身,只能在AS之间简单地传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EBP最终被BGP取代

    BGP:外部网关协议,用于在AS之间进行路由控制和优选
    AS编号:每个自治系统都有唯一的一个编号,由IANA分配,2009年1月之前,只能使用最多2字节长度的AS号码,即1-65535。
    其中1-64511为公有AS,64512-65534为私有AS。
    2009年1月之后,IANA决定使用4字节长度AS,范围是65536-4294967295

    BGP的基本作用:
    1.邻居的发现与邻居关系的建立;
    2.路由的获取,优选和通告;
    3.提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;
    4.在不完全信任的AS之间提供丰富的路由控制能力。

    在OSPF/ISIS通过直连链路建立邻居关系,不是直连建立不了邻居关系

    BGP邻居关系建立的参数:AS 号、router-id、hold time 向小兼容

    BGP优先级:255

    BGP协议特点:1.可以跨越多跳路由器建立邻居关系:因为是在AS之间传递路由,为保证数据的可靠性, BGP使用TCP作为其承载协议建立连接。因此与IGP逐跳路由器建立邻居不同,BGP可以跨越多跳路由器建立邻居关系
    2.BGP基于TCP协议,端口号为179
    3. 设计了诸多属性携带在路由中:AS之间的路由器是不完全相互信任的,为实现路由按需求进行控制和优选,BGP设计了诸多属性

    BGP邻居发现

    先启动BGP的一端先发起TCP连接,RTB先启动BGP协议,RTB使用随机端口号向RTA的179端口发起TCP连接
    *TCP采用单播建立连接,因此BGP协议并不像RIP和OSPF一样使用组播发现邻居。单播建立连接也使BGP只能手动指定邻居

    BGP邻居类型 :靠AS区分

    EBGP:运行在不同AS之间的BGP路由器建立的邻居关系为EBGP(External BGP)邻居关系
    IBGP:运行在相同AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)邻居关系
    peer关键字后面是对端邻居的接口地址
    AS-number后是邻居路由器所在的AS
    BGP邻居关系配置

    配置步骤:
    1.配置Router ID(标识路由器)(手动);
    没有配置Router ID:
    路由器在它的所有LoopBack接口上选择数值最高的IP地址;
    如果没有LoopBack接口,路由器会在它的所有物理接口上选择数值最高的IP地址。
    配置命令:router id X.X.X.X
    2.配置EBGP邻居关系(AS之间传递路由);
    (1)通过直连(物理)接口建立邻居关系(建立使用)
    bgp as号
    peer 对端直连接口IP地址 AS-number对端AS号
    对端一样指定邻居
    (2)通过loop back口建立邻居–保证IP地址路由可达
    首先通过静态路由/OSPF实现EBGP邻居之间loop back口的互通
    bgp as号
    peer 对端loop back口IP地址 AS-number对端AS号
    peer 对端loop back口 connect-interface 本地的loop back 口编号(默认情况下是物理接口建立邻居关系)
    peer 对端loop back口 EBGP-max-hop 2(只针对EBGP建立邻,默认为1,如果用直连链路建立的话不会有影响,因为一跳就已经到达了对端设备,但是如果使用loop back 口的话,原来是一跳,出了接口就是0跳,那么对端设备就会丢弃,没有意义,所有修改2跳就有意义)
    对端设备同样配置
    查看BGP邻居关系命令:dis bgp peer

     3.配置IBGP邻居关系(AS内部传递路由)
             建立IBGP邻居关系时,一般使用loop back口的IP地址,因为loop back口开启后一直处于UP状态,只要保证路由可达,邻居关系一直处于稳定状态,而建立EBGP邻居关系一般使用直连接口的IP地址,因为EBGP是跨AS建立邻居关系,邻居关系建立之前非直连接口之间的路由不可达
    

    (1)通过直连(物理)接口建立邻居关系(建立使用)
    bgp as号
    peer 对端直连接口IP地址 AS-number对端AS号
    对端一样指定邻居
    (2)通过loop back口建立邻居—保证IP地址路由可达
    bgp as号
    peer 对端loop back口IP地址 AS-number对端AS号
    peer 对端loop back口 connect-interface 本地的loop back 口编号(默认情况下是物理接口建立邻居关系)
    peer 对端loop back口 EBGP-max-hop 2(在IBGP中不需要,因为IBGP中默认为255跳)

    BGP邻居关系配置的优化:

       建立EBGP邻居关系时,一般使用直连接口的IP地址;建立IBGP邻居关系时,一般使用Loopback接口的IP地址
    

    BGP邻居关系建立

    BGP通过报文的交互完成邻居建立、路由更新等操作:
    建立邻居的过程:
    建立邻居时,router-id大的首先发起TCP连接并转至Connect状态
    在Connect状态下,BGP路由器启动连接重传定时器,等待TCP完成连接
    TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态
    TCP连接失败,那么BGP路由器转至Active状态。
    连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态
    在Active状态下,BGP路由器总是在试图建立TCP连接
    TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态
    TCP连接失败,那么BGP路由器停留在Active状态
    连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态
    在OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查
    收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至OpenConfirm状态
    发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态
    在OpenConfirm状态下,BGP路由器等待Keepalive或Notification报文
    收到Keepalive报文,则转至Established状态
    收到Notification报文,则转至Idle状态。
    在Established状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文

    一:BGP的报文:
    Open报文(打开报文):是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系,交互建立邻居所需要协商的参数。
    BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换
    Open报文和Keepalive报文类似于OSPF的hello报文

    Update报文(更新报文):用于在BGP邻居之间交换路由信息,传递或撤销路由。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息

          1. 可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update报文里的路由属性适用于该Update报文中的NLRI(Network Layer Reachability Information)字段里的所有目的地(用IP前缀表示)
           2.可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚地定义了BGP路由器之间先前通告过的路由
          3. 可以只用于撤销路由,这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了
    

    Notification报文(通告报文):通告差错,当BGP路由器检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断

    Keepalive报文(保活报文):用于维护BGP邻居关系,保持连接的有效性
    BGP路由器会周期性60s的向邻居发出Keepalive报文,如果在hold time(180s)没有收到邻居的Keepalive报文,则邻居关系中断

    Route-refresh报文(路由刷新报文):用于邻居设备重新发送路由以便策略的应用(BGP支持大量的策略,有些策略在实施之后并不会立即出现效果,需要通过Route-refresh报文让邻居设备重新再发送一遍路由,然后让该策略生效)

    BGP邻居关系建立过程:分为两块:1.TCP建立
    2.BGP邻居关系建立
    二:BGP状态:
    Idle(空闲状态):BGP路由器不接受任何的TCP连接请求。(相当于初始状态,标识BGP没有运行)
    只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态

    Connect(连接状态):BGP路由器启动连接重传定时器(Connect Retry),发起TCP连接并接受TCP连接
    如果TCP连接成功:BGP路由器向邻居发送Open报文,并转至OpenSent状态
    如果TCP连接失败:BGP路由器转至Active状态
    如果TCP连接建立超时:连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态

    Active:BGP路由器总是在试图建立TCP连接
    如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态
    如果TCP连接失败,那么BGP路由器停留在Active状态。
    如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态

    OpenSent:BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查

             收到的Open报文正确:收到并接受来自邻居的open报文,BGP路由器发送Keepalive报文,并转至OpenConfirm状态
             收到的Open报文有错误:收到邻居发送的open报文但不接收报文中所携带的参数,那么BGP路由器发送Notification报文给邻居,并转至Idle状态
    

    OpenConfirm:该状态下BGP路由器发送Keepalive报文,等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态

    Established:BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文
    该状态标志BGP邻居状态建立完成

    BGP路由的生成方式 :是指BGP路由是从哪来,也就是说如何将IGP变为BGP
    1.Network命令:是逐条将IP路由表中已经存在的路由引入到BGP路由表中,将路由表的IGP路由引入到BGP路由表中,并不能全部的转,一条network就只能转一条BGP路由,适合路由量小的环境

    2.Import命令:是根据运行的路由协议(RIP,OSPF,ISIS等)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由
    是批量的将路由表中的IGP路由引入到BGP路由表中,import一次只能针对一种路由协议

     为了防止其他路由被引入到BGP中,需要配置ip-prefix进行精确匹配,调用route-policy在BGP引入路由时进行控制          
             查询:display bgp routing-table
    

    Aggregate detail-suppressed:仅通告聚合路由给其他BGP邻居

    BGP路由表中的参数:
    状态码::代表可用
    >:代表最优(出现>必定出现
    ,最优的前提是可用,出现*不一定代表是最优的)
    i:表示这条路由是从IBGP里面学习的路由,不带i表示从EBGP里学习到的路由,出现在network的前面
    origin:起源属性,就是路由条目后面的一个字段Ong
    i:表示IGP
    e:表示EGP
    ?:表示引入
    状态:
    Network:显示BGP路由表中的网络地址
    NextHop:报文发送的下一跳地址
    MED:路由度量值,0,出现多条路由的目的地址一样
    LocPrf:本地优先级
    PrefVal:协议首选值
    Path/Ogn:显示AS路径号及Origin属性
    Community:团体属性信息

    BGP通告原则与路由处理:

    BGP的Update报文
    BGP通过Network和Import两种方式生成BGP路由,BGP路由封装在Update报文中通告给邻居。BGP在邻居关系建立后才开始通告路由信息。
    Update消息主要用来公布可用路由和撤销路由,Update中包含以下信息:
    网络层可达信息(NLRI):用来公布IP前缀和前缀长度。
    路径属性:为BGP提供环路检测,控制路由优选。
    撤销路由:用来描述无法到达且从业务中撤销的路由前缀和前缀长度。
    为了避免路由通告过程中出现问题,BGP路由通告需要遵守一定的规则:

    1.仅将自己最优的路由发布给邻居

    2.通过EBGP获得的最优路由发布给所有BGP邻居(包括EBGP邻居和IBGP邻居)
    问题:BGP路由器从EBGP邻居获得的最优路由发布给IBGP邻居时不改变下一跳,因此导致IBGP收到的邻居路由下一跳不可达,导致BGP路由无效
    解决:在BGP中配置:peer 对端邻居的IP地址 next-hop

    3.通过IBGP获得的最优路由不会发布给其他的IBGP邻居:为了防止在AS内部形成路由环路
    问题:由于BGP路由从IBGP邻居获得路由并不会发布给其他的IBGP,因此会导致AS内部路由获取不到路由
    解决:在AS内部部署IBGP全互联,两两之间建立邻居关系
    问题:在AS部署全互联会导致BGP路由器都需要维护大量的IBGP邻居关系,对设备带来压力
    解决:路由反射器,称为RR,或者联盟(不在IP讲述范围)

    4.BGP与IGP同步:BGP路由器从IBGP邻居获得的路由传递给EBGP时要保障所有的路由器都能学习到通告的路由:目的是为了解决中转AS的路由黑洞问题,通过将IGP引入到BGP中,和BGP同步

    BGP的路由黑洞
    因为考虑成本和实用性,正常在一个AS内部不是所有的设备都运行BGP协议,故将出现路由可达,但实际数据在传输时,经过中间未运行BGP协议的路由器后被丢弃。
    路由黑洞:控制层面可达,数据层面不可达(此概念出于MPLS时代)

    控制层面:传路由表的方向
    数据层面:访问目标的方向
    1、BGP协议是基于TCP单播沟通,可以穿越中间设备来传递路由
    2、BGP的路由正常均需要递归多次到直连路由,运行BGP协议的路由基本都可以完成递归,认为可达,不关注下一跳设备是否由路由,只要本地能到下一跳即可
    3、BGP生成的路由是唯一路径,但递归可以多条路径传输
    解决BGP路由黑洞:
    1)物理链路全连(IBGP中运行BGP协议的路由器太远不能实现)
    2)邻居关系全连(所有设备均运行BGP)
    3)将BGP重发布到IGP(LAB实验环境下应用,慎用)
    4)MPLS,多协议标签交换(最佳)

    BGP路由信息处理

    1.当从BGP邻居接收到Update报文时,路由器将会执行路径选择算法,选出最优路由
    2.将所有从BGP邻居接收的路由加入到本地BGP路由表(Local_RIB)中,然后将最优路由加入本地IP路由表(IP_RIB)
    3.被选出的有效的最优路由将会被封装在Update报文中,发送给对端的BGP邻居

    IP路由表(IP_RIB):全局路由信息库,包括所有的IP路由信息。
    BGP路由表(Local_RIB):BGP路由信息库,包括本地BGP路由器选择的路由信息,邻居表,邻居清单列表。

    BGP选路遇到的问题
    1.最优路径:在AS之间交换路由可达信息时,设计BGP能够提供丰富的属性,实现对路由的灵活控制和优选
    修改路由表,调整AS之间的链路Metric
    不修改路由表, 使用策略修改路由下一跳。但是这些方法在某些情况下具有局限性,不能满足网络的丰富需求
    2.环路:路由在AS之间传递时记录传播路径,防止环路的产生

    BGP的路径属性(BGP路由的附加信息)
    公认属性:所有BGP路由器都必须识别并支持的属性

        公认必遵:BGP的Update消息中必须包含的属性。BGP路由器在传递路由时,(必遵)BGP路由器必须携带该类属性,否则BGP路由会出错
                                    Origin:起源属性
                                       AS_Path:自治系统路径属性
                                       Next_hop:下一跳属性
        公认任意:不必存在于BGP的Update消息中,可以根据需求自由选择的属性
                                    Local_Preference:本地优先级属性
                                     Atomic aggregate:原子聚合属性
    可选属性:不要求所有的BGP路由器都能够识别的属性
         
      可选过渡:BGP不能识别该属性,但可以接收该属性并在传递路由时将其发布给它的邻居的属性。
                                   Aggregator:聚合者属性
                                   Community:团体属性
      可选非过渡:BGP可以不识别属性并且向它的邻居传递路由时不携带该类属性
                                    MED:类似于cost
    

    BGP属性 :

    1.Origin(起源属性):隶属于公认必遵属性
    作用:1.用于标识BGP路由的来源(标记一条路由是怎么成为BGP路由的)
    2.用于路径选择(选择最优路由)
    取值:
    i:表明BGP路由通过network命令注入;
    e:表明BGP路由是通过EGP路由转换而来(EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e)
    ?: 即Incomplete,表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由。
    路径选择(优先级)为:i>e>Incomplete(?)

    2.AS_Path(自治系统属性):隶属于公认必遵属性
    作用:
    1.记录了路由在AS间传递的路径(BGP路由在AS间传递时,每经过一个AS,就会在原有的AS-path的基础上的左边附加本地AS号,可以知晓BGP路由的始发AS和BGP路由所途径AS以及BGP路由是从哪个AS传递过来的)
    2.防止AS间环路(BGP路由器收到BGP路由时,会检查BGP路由所携带的AS-path属性中是否携带本地AS号,若携带,则认为环路,并丢弃该路由)
    3.用于路径选择(选择最优路径) ,BGP路由器收到多条去往同一目的地的BGP路由时,将会比较多条路由的AS-path属性,优选AS-path长度最短的BGP路由,可以通过路由策略修改AS-path的长度
    AS_Path的4种类型:
    AS_Sequence(后续讲解BGP路由聚合时会详细说明);
    AS_Set(后续讲解BGP路由聚合时会详细说明);
    AS_Confed_Sequence(应用于联盟,本课程不涉及);
    AS_Confed_Set(应用于联盟,本课程不涉及)

    3.Next_hop(下一跳属性):隶属于公认必遵
    作用:
    用于记录路由的下一跳(如果路由下一跳不可达,则路由无效,连参与路径选择的资格都没有)
    路由在BGP邻居间传递时,下一跳改变规则:
    1.从IBGP邻居获得的路由传递给EBGP邻居:BGP邻居从IBGP邻居获得的路由传递给EBGP邻居时,下一跳改变为自身的IP地址(建立EBGP邻居所使用的IP地址)
    2.从EBGP邻居获得的路由传递给IBGP邻居:BGP邻居从EBGP邻居获得的路由传递给IBGP邻居时,下一跳不改变,因此会导致IBGP邻居收到的路由下一跳不可达,导致路由无效
    可以通过peer IP地址 next-hop local :强制修改下一跳(在BGP路由器上配置,配置后需重启BGP/重发一遍路由:用户视图下reset bgp AS号/route-refresh)
    3…从EBGP邻居获得的路由传递给EBGP邻居:BGP邻居从EBGP邻居获得的路由传递给EBGP邻居时,下一跳改变为自身的IP地址(建立EBGP邻居所使用的IP地址)

    4.Local_Preference(本地优先级属性):隶属于公认任意属性
    作用:用于路径选择(用于判断流量离开AS(出站流量,AS去往另一个AS)时的最佳路由,值越大越优,其默认值为100;
    * 当BGP路由器通过不同的IBGP邻居获得目的地址相同但是下一跳不同的多条路由(就是出现多个离开本地AS),将优先选择属性值高的路由
    仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级
    适用环境:当一个AS的BGP路由离开一个AS内的网络时,如果BGP路由器所在AS存在多个出口时,并且需要控制出站流量从哪个出口离开AS,可以通过修改路由器的Local_Preference属性值来实现出站流量

    5.MED:隶属于可选非过度,类似于cost
    作用:用于路径选路规则
    取值:默认为0,越小越优
    适用环境:当一个AS存在多个入口路由器时,如果本端AS希望对端AS访问自己(本端AS)的某个网络时,优选其中一个入口路由器作为入站流量的入口可以适用MED值,可通过路由策略修改其属性值,MED属性相当于IGP中使用的度量值(Metric),用于判断流量进入AS时的最优路由,当一个运行BGP的路由器通过不同EBGP邻居获得目的地址相同,但是下一跳不同的多条路由时,在其他条件相同的情况下,优选MED值小的
    仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS

    6.Community(团体属性):隶属于可选过度
    作用:1.限定路由的传播范围。
    2.为路由附加标签,用于路由策略
    分类:1.公共团体属性:限制BGP路由传播范围
    Internet:默认属性,所有路由都属于Internet,只要不违背通告原则可以通告给所有BGP邻居,不受限制
    No_Export:不传出,BGP路由器收到此属性的路由后,只传递给IBGP邻居,不将该路由发布到其他AS
    No_Advertise:不通告,BGP路由器收到此属性的路由后,不将该路由通告给任何其他的BGP邻居
    No_Export_Subconfed:在联盟中使用
    2.自定义团体属性:为路由附加标签,用于路由策略
    采用 aa:nn 形式
    aa通常为AS编号,取值(0-65535)
    nn是管理员定义的团体属性标识,取值(0-65535)

    BGP路由优选原则

    BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
    • 该路由是到达目的地的唯一路由,直接优选。
    • 对到达同一目的地的多条路由,优选优先级最高的。
    • 对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。
    一般来说,BGP计算路由优先级的规则如下:
    1.丢弃下一跳不可达的路由。
    2.优选Preference_Value值最高的路由(私有属性,仅本地有效)。
    3.优选本地优先级(Local_Preference)最高的路由。
    4.优选手动聚合>自动聚合>network>import>从对等体学到的。
    5.优选AS_Path短的路由。
    6.起源类型IGP>EGP>Incomplete。
    7.对于来自同一AS的路由,优选MED值小的。
    8.优选从EBGP学来的路由(EBGP>IBGP)(内部路由优先级EBGP>IBGP:EBGP-20;IBGP-200–越小越优)。
    9.优选AS内部IGP的Metric最小的路由。
    10.优选Cluster_List最短的路由。
    11.优选Orginator_ID最小的路由。
    12.优选Router_ID最小的路由器发布的路由。
    13. 优选具有较小IP地址的邻居学来的路由。

    Preference_Value对选路的影响
    Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference_Value值越大越优先

    聚合方式对选路的影响
    聚合方式::
    自动聚合:只能对引入的BGP路由进行聚合
    手动聚合:可以对存在于BGP路由表中的路由进行聚合
    聚合路由的优先级:手动聚合>自动聚合

    1.EBGP邻居的路由优于IBGP邻居的路由
    根据选路原则,RTA会优选从EBGP邻居学来的路由

    2.AS内部IGP Metric对BGP选路的影响
    优选值小的

    3.Router-ID与IP地址对BGP选路的影响
    优选小的,先看router-id

    BGP路由聚合概述
    BGP在AS之间传递路由信息,随着AS数量的增多,单个AS规模的扩大,BGP路由表将变得十分庞大,因此带来如下两类问题:
    存储路由表将占用大量的内存资源,传输和处理路由信息需要消耗大量的带宽资源;
    如果传输的路由条目出现频繁的更新和撤销,对网络的稳定性会造成影响
    BGP路由聚合的必要性
    存储路由条目的路由表将占用大量的内存资源,传输路由信息需要占用大量的带宽资源;
    明细路由频繁震荡造成网络不稳定。
    BGP路由聚合方法
    静态:使用静态路由将明细路由聚合,下一跳指向NULL 0
    network 10.1.8.0 255.255.252.0
    ip route-static 10.1.8.0 255.255.252.0 NULL 0
    自动聚合:只对引入BGP的路由进行聚合,聚合到自然网段后发送给邻居(不建议使用)
    summary automatic
    手动聚合:手动聚合对BGP本地路由表里存在的路由进行聚合,并且能指定聚合路由的掩码
    aggregate 10.1.8.0 255.255.252.0
    detail-suppressed
    路由聚合解决了两类问题:
    一是减轻了设备传输和计算路由所需资源的负担,
    二是隐藏了具体的路由信息,减少了路由震荡的影响

    但带来问题: 潜在环路
    解决方法:detail-suppressed AS_Set:可以保留原来明细路由的AS_path属性

    设置了两个AS_Path属性
    1.Atomic-Aggregate:公认任意属性,用于警告下游路由器出现了信息丢失
    2.Aggregator:可选过度属性,该属性包含发起聚合的路由器的AS号和Router-ID,表明发生聚合的位置

    AS_Path属性有两种类型:
    AS_Sequence:表示AS_Path内的AS号是一个有序的列表。
    AS_Set:表示AS_Path内的AS号是一个无序的列表

    AS_Path本身是一个有序的列表,因为AS_Path每经过一个AS都会将AS号添加到AS_Path中,并且按经过的顺序从左到右排列

    BGP的工作过程
    1、启动配置完成后,本地和对端先单播进行TCP的三次握手,建立TCP的会话。
    2、会话建立后,使用open报文进行邻居关系的建立,正常收发一次open报文即可;建立关系后生成邻居表。
    3、邻居关系建立后,用户进行路由宣告;宣告配置完成后,BGP使用update包进行路由条目的传递—目标网络号+属性
    4、本地接收到的所有路由条目均存储在BGP表中;–装载本地发出和接收到的所有路由。
    5、默认仅从BGP表中挑选一条最优路径到路由表内。
    6、收敛完成,仅keeplive包继续周期保活TCP会话即可。

    注:所有BGP协议的数据包均基于TCP的会话传递;TCP会保证这些数据包的可靠性-确认、重传、排序、流控(窗口机制)
    若结构突变:
    1、新增网段–BGP路由上出现了新的宣告路由,使用更新包更新即可
    2、断开网段–BGP路由上出现断开路由,若本地给邻居发送的是汇总路由;那么只要所有明细没有全部断开,将不进行BGP更新;若明细全部消失,使用更新包告知即可;对端删除该信息即可;
    3、无法沟通—hold time到时时,断开邻居关系,删除所有通过该邻居学习到的信息

    展开全文
  • HC120115006 BGP协议原理与配置
  • BGP协议的总结

    2021-07-30 09:10:48
    BGP协议的总结 BGP:边界网关路由协议 无类别路径矢量EGP协议;工作于AS之间; AS—自治系统 标准AS编号 16位二进制 0-65535 扩展AS编号 32位二进制 路径矢量(一个AS为一跳)— 距离矢量(一个路由器为一跳) ...

    BGP协议的总结

    BGP:边界网关路由协议
    无类别路径矢量EGP协议;工作于AS之间;
    AS—自治系统 标准AS编号 16位二进制 0-65535
    扩展AS编号 32位二进制
    路径矢量(一个AS为一跳)— 距离矢量(一个路由器为一跳)
    https://www.cidr-report.org

    BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;
    AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路;

    IGP协议追求:1、无环(选路佳) 2、收敛快 3、占用资源少
    EGP协议的追求1:可控性强(管理员可以方便进行策略干涉选路)
    2、可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居)— 基于TCP工作 -三次握手四次断开 4种可靠传输机制 – TCP只能基于单播工作
    单播—需要IP可达—依赖IGP BGP承载于IGP之上
    3、AS-BY-AS 以一个AS为一跳;

    二、BGP特点:
    1)无类别路径矢量 -----距离矢量的升级版—AS–BY–AS
    2)使用单播更新来发送所有信息;基于TCP 179端口工作
    3)增量更新–仅触发无周期
    4)具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
    5)可以在进项和出项对流量实施强大的策略–可控性
    6)默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
    7)BGP支持认证和聚合(汇总)

    三、BGP数据包 基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;
    首先通过TCP的三次握手来寻找到邻居;
    Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
    Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
    Update 携带路由条目 目标网络号+各种属性
    Notification 出现错误数据时收发;

    四、BGP的工作过程
    1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;
    会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
    BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;

    邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
    2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表;— 装载本地发出及接收到的所有路由条目;
    默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)
    3、收敛完成,仅keeplive周期保活即可;
    4、若出现错误信息,邻居间将使用Notification报文进行报错操作
    5、结构突变
    1)新增 — 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
    2)断开 — 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
    只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目
    3)无法沟通 — hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由;

    五、名词
    邻居—直连 因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;
    EBGP邻居关系 ---- 外部BGP邻居关系,建邻的两台设备处于不同的AS中
    IBGP邻居关系 ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中

    六、BGP的路由黑洞问题
    非直连建邻到达控制层面路由条目可传递,递归计算路由可达;
    而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回
    1、物理、逻辑拓扑全连 – 物理链路直连、或者vpn
    2、邻居关系全连 – 网络中所有设备运行BGP
    3、BGP重发布到IGP(LAB)
    4、MPLS 多协议标签交换— 推荐做法

    七、BGP的防环机制 –水平分割
    1、EBGP水平分割—解决EBGP环路;
    依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;
    BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;
    EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;

    2、IBGP水平分割—解决IBGP环路由中的一种机制
    本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;
    AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;
    由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)
    在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;
    后期可以依赖打破水平分割的机制来解决—联邦、路由反射器

    八、配置
    【1】建立BGP邻居关系
    [r1]bgp 1 启动时需要定义AS号,没有多进程概念;一台设备只能在一个AS中工作
    [r1-bgp]router-id 1.1.1.1 建议配置RID;RID的生成规则同OSPF;

    1、单链路的EBGP邻居关系
    [r1-bgp]peer 12.1.1.2 as-number 2
    对端接口ip地址 对端所在的AS号

    2、建立IBGP邻居关系;–由于一个AS的内部大多拓扑冗余比较丰富,若使用物理接口来作为源、目IP地址建立BGP邻居,将浪费冗余资源;建议使用环回接口作为源/目ip地址;
    稳定/且可以同时使用多条链路资源
    切记:在使用环回地址作为源、目ip地址时;及要定义目标为对端的环回,还需要修改本端的源为环回,否则将自动使用本地的物理出口作为源;
    [r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

    3、多链路的EBGP邻居关系
    建议使用环回作为源、目标接口
    1)IP可达问题—一般使用静态
    [r4]ip route-static 5.5.5.0 24 45.1.1.2
    [r4]ip route-static 5.5.5.0 24 54.1.1.2
    2)建立EBGP邻居关系
    [r4]bgp 2
    [r4-bgp]peer 5.5.5.5 as-number 3
    [r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
    3)TTL问题,默认IBGP邻居间的数据包TTL值为255,EBGP邻居间TTL值为1;
    因此若使用环回来建立EBGP邻居关系,TTL不够;故,必须修改
    [r4-bgp]peer 5.5.5.5 ebgp-max-hop 2

    两端配置完成后,邻居间先进行TCP的三次握手,建立TCP的会话;
    [r1]display tcp status
    当TCP会话建立后,邻居间收发一次open包(携带RID),建立BGP的邻居关系;生成邻居表:
    [r1]display bgp peer
    BGP local router ID : 1.1.1.1
    Local AS number : 1
    Total number of peers : 1 Peers in established state : 1
    Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
    12.1.1.2 4 2 5 6 0 00:03:22 Established 0
    表格尾部的数字0,代表从该邻居处学习到的路由条目数量;

    九、宣告路由
    BGP协议所宣告路由为本地路由表中任何来源产生的路由信息;
    宣告时,可逐条选择本地路由表中的路由信息宣告:
    [r1]bgp 1
    [r1-bgp]network 1.1.1.0 24
    切记:宣告时,所宣告的网络号必须和本地路由表中的记录完全一致;

    当宣告配置完成后,本地生成BGP表;-装载本地发出及接收到所有BGP路由
    [r1]display bgp routing-table
    Total Number of Routes: 1
    Network NextHop MED LocPrf PrefVal Path/Ogn
    *> 1.1.1.0/24 0.0.0.0 0 0 i
    状态 目标网络号 属性

    • 可用

    优秀
    使用i标识该条目通过本地的IBGP邻居学习
    一条条目可用且优秀才能传输给本地的其他邻居;才能加载到本地的路由表中;
    条目优秀的条件:
    1、同步问题—目前的设备同步规则默认关闭,该问题在当下已经不需要关注了
    同步问题—本地必须先通告IGP学习到该路由,在通过BGP学习
    2、下一跳不可达问题—因为AS-BY-AS规则 使得下一跳地址在一个AS内部传递时,默认不修改;故通过本地的IBGP邻居学习到的路由,大多下一跳不可达
    [r2]bgp 2
    [r2-bgp]peer 3.3.3.3 next-hop-local R2将路由传输给3.3.3.3时,修改下一跳地址为R2;

    一、BGP的宣告问题:
    若通过BGP协议传递的路由条目与本地通过其他协议学习到的条目目标一致,将出现:
    1、该路由同时作为与其他BGP邻居建立邻居关系时的底层路由,那么这条BGP路由将不优,不能传递也不能加表
    2、该路由不作为建立其他BGP邻居的路由,将在本地不加表,但可以传递,属于优的路由;
    例:R2与R3运行了OSPF,之后R2学习到的R3的32位环回主机路由;
    再R2与R3建立BGP的邻居关系;之后R3在BGP协议中宣告了32位的环回路由,那么该条目到达R2后,将不优; --BGP的建邻路由与BGP的传递路由相同;
    但R2与R3建立邻居关系时,ospf将R3环回以32位传递,但BGP使用24位来传递该环回路由的话,那么等于BGP建邻为32位,bgp传递为24位,不是同一条路由,可以优,可以传递,也可以加表;
    注:以上问题在华为设备将出现,但cisco中若bgp传递路由在本地路由表中已经通过其他IGP拥有,将被标记为r-RIB 不装载—本地不加表,但可以传递;

    在BGP协议中进行宣告时,是宣告本地路由表中任意路由,不关注这些条目的产生方式;
    默认将携带这些路由的cost值到BGP的路由条目中去;若本地将本地宣告的BGP路由传递给本地的EBGP邻居,将携带这些cost,便于本地的EBGP邻居所在AS内部设备选路,当然这路由在进入其他AS时不会修改度量;
    若本地通过IBGP邻居学习到了BGP路由,优且存在cost值,在本地将这些路由传递给本地的EBGP邻居时,将cost值归0,因为这些度量不是本地产生的;
    例:R2与R1为EBGP邻居,那么R2宣告本地通过OSPF协议学习到的路由4.4.4.4/32度量为2,那么这条路由在进入BGP表时携带度量值2,传递给R1,R1在路由表中显示该度量,同时传递给R1内部AS时度量不变;
    该拓扑中R2与R4为IBGP邻居,这条BGP路由也会被R2传递给R4,但R4 再将该路由传递给R4的EBGP邻居关系R5时,将度量归0; 若R4也宣告4.4.4.4/32这条路由,那么传递给R5时将携带R4到达该网段的cost值,因为只有本地最优路由可以传递,本地宣告优于其他邻居传递过来的BGP路由;

    总结:存在EBGP邻居关系(连接其他的AS)的所有BGP设备均建议宣告内部AS的路由;

    二、重发布
    BGP协议宣告的路由,基本是本地通过IGP学习到的本as路由;数量较大,若逐条宣告,配置量很大,但可控性强; 也可以在同时运行BGP和igp的设备,将IGP协议重发布到BGP协议中,来实现批量的路由宣告效果;
    宣告相当于逐条的重发布,重发布相当于批量的宣告;两者产生的路由条目,起源属性不同,其他属性默认完全一致;
    总结:存在EBGP邻居关系(连接其他的AS)的所有BGP设备均建议重发布IGP到BGP;

    三、自动汇总 默认cisco和华为设备均关闭了自动汇总
    自动汇总对于BGP正常通过network宣告产生的路由没有影响;
    仅针对从IGP重发布到BGP的路由条目产生影响;— 路由条目以主类长度发送,不携带cost值;
    [r1]bgp 1
    [r1-bgp]summary automatic 开启自动汇总,建议维持默认关闭状态

    四、手工汇总—聚合
    1)利用了BGP的宣告的特点,本地路由表中任意路由,不关注来源均可以宣告的BGP中;
    不用逐一宣告明细路由,先本地手工静态一条指向汇总网段的空接口防环路由,然后再将其宣告到BGP协议中来;从IGP表中宣告到BGP协议中的条目,仅携带目标网络号和度量值;

    聚合的缺点是将多个网络号合成一个,导致访问整个聚合网段时,仅存在唯一的路径;
    若在多路径建邻的前提下,将无法精确的选路;故在大型的多链路的网络中为了更好控制选路,必然在传递聚合条目的同时,再在最佳路径处传递部分的明细路由;

    若需要在传递聚合条目的同时,传递部分明细路由,只需要在宣告的空接口路由后,逐一宣告需要的明细路由即可;
    以上做法的缺点是不能携带原有明细路由的cost值,因为宣告的是本地路由表中人为添加那条静态空接口路由;

    2)标准的BGP路由聚合—先逐一手工宣告明细,或批量重发布路由;
    再进行聚合配置;默认在本地生成空接口防环路由;
    [r2-bgp]aggregate 3.3.0.0 21 聚合和所有明细路由均发送
    [r2-bgp]aggregate 3.3.0.0 21 detail-suppressed 抑制所有的明细路由,仅发送聚合条目;
    以上操作方法:若需要在发送聚合条目的同时携带部分的明细路由,需要使用策略
    1、抑制列表
    [r2]ip ip-prefix ss permit 3.3.4.1 32

    [r2]route-policy ss permit node 10
    [r2-route-policy]if-match ip-prefix ss

    [r2]bgp 2
    [r2-bgp]aggregate 3.3.0.0 21 suppress-policy ss 在传递聚合条目的同时,在抑制3.3.4.1/32这一条明细,其他明细正常转发;

    2、使用路由策略在邻居间直接进行收发路由的管理
    [r2]ip ip-prefix qq permit 3.3.3.3 32

    [r2]route-policy qq deny node 10
    [r2-route-policy]if-match ip-prefix qq
    [r2-route-policy]q
    [r2]route-policy qq permit node 20

    [r2]bgp 2
    [r2-bgp]aggregate 3.3.0.0 21
    [r2-bgp]peer 12.1.1.1 route-policy qq export

    3、直接使用前缀列表来实现方法的功能
    [r2]ip ip-prefix ww deny 3.3.3.3 32
    [r2]ip ip-prefix ww permit 0.0.0.0 0 le 32
    [r2]bgp 2
    [r2-bgp]pe 12.1.1.1 ip-prefix ww export

    五、有条件的打破IBGP水平分割;
    IBGP水平分割,用于避免在一个AS内部由IBGP邻居间产生的环路;
    规则:从一个iBGP邻居处学习到的BGP路由不能传递给下一个IBGP邻居;因为BGP的非直连建邻能力,因此可以在一个AS内部建立多个邻居来实现连接关系备份的作用;故正常一台设备只要运行bgp,那么应该处于AS的边界,存在ebgp邻居;
    所有运行bgp协议的设备正常都会从其他AS学习到路由条目,然后共享到本地所在的AS,由于IBGP水平分割,导致本地需要和所有本AS内部的BGP设备建立IBGP邻居关系;
    IBGP邻居关系的数量成指数上升;
    所谓有条件的打破是指在打破IBGP水平分割的时候,不能产生环路;–AS-BY-AS

    1、路由反射器 – RR(反射器)、客户端、非客户端;
    客户端、非客户端必须分别为RR的IBGP邻居关系;三种角色构建为一个簇(组);
    一个簇内可以存在多台设备,但至少一个簇内存在一个RR和一个客户端;
    规则:
    1)RR从一台EBGP邻居处学习到的路由可以共享给本地的其他客户端、非客户端、EBGP邻居;
    2)RR从一台客户端邻居处学习到的路由可以共享给本地的其他客户端、非客户端、EBGP邻居;
    3)RR从一台非客户端邻居处学习到的路由可以共享给本地的其他客户端、EBGP;不能共享给其他的非客户端;
    注:被反射路由,在反射过程中,其属性不发生任何变化;若RR接收的条目不优,不具备传递性,将不被反射;

    [r3-bgp]peer 2.2.2.2 reflect-client ibgp邻居2.2.2.2成为本地的客户端,同时本地成为RR;

    2、联邦,将一个大as逻辑为多个小as;小AS使用私有AS号,小AS间为联邦内的bepg邻居关系,可以像EBGP一样传递路由,但不能修改属性; 对于联邦外的AS,只能看到大AS号;
    1)所有的启动,建邻、管理均基于小AS号进行
    2)联邦内所有设备需要声明自己所在的大AS号
    3)小AS间的ebgp邻居需要互指对端的小as号

    [r3]bgp 64512
    [r3-bgp]router-id 3.3.3.3
    [r3-bgp]confederation id 2 声明本地的大AS号
    [r3-bgp]confederation peer-as 64513 对端小AS号
    [r3-bgp]pe 2.2.2.2 as-number 64512
    [r3-bgp]pe 2.2.2.2 connect-interface LoopBack 0
    [r3-bgp]pe 4.4.4.4 as-number 64513
    [r3-bgp]pe 4.4.4.4 connect-interface LoopBack 0
    [r3-bgp]pe 4.4.4.4 ebgp-max-hop 2

    注:在实际工程中,路由器反射器与联邦技术是结合,在一个拓扑中共同使用的;

    一、BGP的选路:比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)
    优选Preference_Value值最高的路由(私有属性,仅本地有效)。
    不传递 权限最高属性 可以干涉EBGP/IBGP选路
    优选本地优先级(Local_Preference)最高的路由。
    IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
    优选手动聚合>自动聚合>network>import>从对等体学到的。
    优选AS_Path短的路由。
    EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
    起源类型IGP>EGP>Incomplete。
    起源属性 i优于e优于?; 可在控制层面任意接口修改;
    对于来自同一AS的路由,优选MED值小的。
    默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
    最常用于干涉EBGP选路的属性
    优选从EBGP学来的路由(EBGP>IBGP)。
    优选AS内部IGP的Metric度量(cost)最小的路由。本地到的BGP下一跳地址的IGP的cost值最小;
    优选Cluster_List最短的路由。
    优选Orginator_ID最小的路由。
    优选Router_ID最小的路由器发布的路由。
    优选具有较小IP地址的邻居学来的路由。

    二、属性:华为和cisco均存在6种基本属性 第一种均为私有属性
    传播范围 默认值 大优或小优
    1、Preference_Value 不传播 0 大
    华为设备的私有属性
    全局操作:
    [r3-bgp]pe 2.2.2.2 preferred-value 1 本地从邻居2.2.2.2处学习到的所有路由优先值修改为1;

    负载分担:访问不同的目标网段时,让流量进入不同链路来进行通讯;将所有链路利用起来,而不是仅只用唯一链路通讯;
    使用前缀抓取需要修改属性的网段
    [r3]ip ip-prefix w permit 1.1.1.0 24
    定制策略来进行修改,一定关注是否需要空表来允许其他路由通过
    [r3]route-policy w permit node 10
    [r3-route-policy]if-match ip-prefix w
    [r3-route-policy]apply preferred-value 1
    [r3-route-policy]q
    [r3]route-policy w permit node 20
    [r3-route-policy]q
    再在协议中针对某个邻居调用
    [r3]bgp 2
    [r3-bgp]peer 2.2.2.2 route-policy w import 因为该属性为私有不传递属性,故调用时,只能在控制层面的入向调用,来影响本地的BGP生成;

                        传播范围             默认值              大或小优
    

    2、本地优先级 IBGP邻居关系间 100 大
    第一个公有属性,
    也是最常用于干涉IBGP选路,
    最常使用的属性
    全局修改;
    [r4-bgp]default local-preference 101
    本地所有传输到IBGP的路由条目,其中本地优先级修改为101;

    使用本地优先级实现负载分担
    [r2]ip ip-prefix p permit 1.1.1.0 24

    [r2]route-policy p permit node 10
    [r2-route-policy]if-match ip-prefix p
    [r2-route-policy]apply local-preference 101
    [r2-route-policy]q
    [r2]route-policy p permit node 20
    [r2-route-policy]q

    [r2]bgp 2
    [r2-bgp]pe 3.3.3.3 route-policy p export 调用时在控制层面的出或入向均可,但必须为IBGP邻居关系;
    3、as-path 优选经过AS数量较少路径;该属性的自动添加是在EBGP邻居关系间进行;
    [r4]ip ip-prefix as permit 1.1.1.0 24

    [r4]route-policy as permit node 10
    [r4-route-policy]if-match ip-prefix as
    [r4-route-policy]apply as-path 3 4 5 additive
    [r4-route-policy]q
    [r4]route-policy as permit node 20
    [r4-route-policy]q

    [r4]bgp 2
    [r4-bgp]pe 14.1.1.1 route-policy as import 注:可以在控制层面的入或出方向调用,但只能在ebgp邻居间操作;可干涉ebgp、ibgp关系选路;

    出向调用 x 3 4 5 x为实际经过的AS号;最前端号码为最新经过的AS号;
    入向调用 3 4 5 x

    切记:as-path 属性又用于EBGP的水平分割,若人为添加的as号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号;

    4、起源属性 条目的产生方式
    network 宣告本地路由表中的任意路由 i
    import 将本地通过其他协议学习的路由重发布到BGP协议中 ?
    egp 早期的ebg协议学习的路由重发布到BGP协议中 e
    该属性的修改可以在整个控制层面流量经过的任意接口修改;
    [r4]ip ip-prefix o permit 1.1.1.0 24

    [r4]route-policy o permit node 10
    [r4-route-policy]if-match ip-prefix o
    [r4-route-policy]apply origin egp 2 此处配置的AS为对端邻居的AS号
    [r4]route-policy o permit node 20
    [r4-route-policy]q
    [r4]bgp 2
    [r4-bgp]pe 3.3.3.3 route-policy o export
    5、MED 多出口的鉴别属性 BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)
    BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;
    管理员可以在控制层面传递路由的过程中,手工修改MDE;最常用于干涉ebgp选路;
    常常用于AS1干涉AS2对AS1的选路;
    [r1]ip ip-prefix med permit 1.1.1.0 24
    [r1]route-policy med permit node 10
    [r1-route-policy]if-match ip-prefix med
    [r1-route-policy]apply cost 10
    [r1-route-policy]q
    r1]route-policy med permit node 20
    [r1-route-policy]q
    [r1]bgp 1
    [r1-bgp]pe 14.1.1.2 route-policy med export

    由于实际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判断选路结果,可以通过扩展ping来解决
    [r1]ping -r -a 1.1.1.1 3.3.3.3

    三、BGP的社团属性 –BGP的扩展属性 默认大多数厂商的产品在BGP协议中不携带社团属性
    例:控制传播范围的社团属性
    [r1]route-policy com permit node 10
    [r1-route-policy]apply community no-advertise 针对所有的流量修改属性

    [r1]bgp 1
    [r1-bgp]peer 12.1.1.2 route-policy com export
    默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性
    [r1-bgp]peer 12.1.1.2 advertise-community 逐跳行为,每台设备均需开启传递性
    no-advertise 接收到的条目中若存在该社团属性,将不再传递该路由
    no-export 接收到的条目若存在该社团属性,将不传递给下一个AS
    no-export-subconfed 接收到的条目若存在该社团属性,将不传递给下一个小AS
    若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致

    PS:
    在BGP中,逻辑悖论出现必定不优,换言之,若优则必定没有逻辑悖论

    展开全文
  • bgp协议基本内容

    2021-07-30 16:45:31
    **BGP**(边界网关路由协议)是自治系统间的路由协议。是一种无类别路径矢量EGP协议BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策** 文章目录BGP1. BGP概述2. BGP...
  • BGP协议学习总结

    2021-07-29 18:16:17
    BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路; 矢量——路径矢量(一个AS...
  • 一、路由选择协议分类、 二、BGP 协议 简介、 三、BGP 协议 信息交换过程、 三、BGP 协议 报文格式、 四、BGP 协议 特点、 五、BGP-4 协议的 四种报文、 六、RIP 、OSPF、BGP 对比、
  • BGP协议总结

    2021-08-06 17:06:10
    1.bgp协议的定义 2.关于AS 二.IGP/EGP/IBGP/EBGP 三.BGP特点 四.BGP数据包 五、BGP的工作过程 六、BGP的路由黑洞问题 1.路由黑洞的描述 2.解决方法 七、BGP的防环机制 –水平分割 1、EBGP水平分割—解决EBGP环路; ...
  • bgp协议

    2012-03-01 13:48:00
    bgp协议
  • 文章目录前提概念BGP的基本作用BGP协议特点BGP邻居关系和配置报文类型:BGP的简单连接配置 前提概念 IGP:内部网关路由协议:OSPF、RIP、IS-IS EGP:外部网关路由协议:BGP BGP:外部网关路由协议代表 AS概念区别:...
  • BGP协议基础

    2021-09-06 10:06:40
    BGP 边界网关路由协议 边界:AS的边界 AS:同一个技术管理机构管理,如企业,ISP IGP:AS内部网关路由协议,实现AS内部的互联互通,如OSPF、ISIS BGP:AS互联互通的一种路由协议 AS号:取值范围1-65535 64512-65535...
  • 理解BGP协议

    2020-11-26 17:40:47
    文章目录前言BGP 基本概念BGP邻居关系建立与配置邻居关系...  不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。 BGP 基本概念   IGP只作用于本地AS
  • BGP协议的认知

    2020-11-17 18:39:06
    BGP是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。 一、动态路由的分类 (1)自治系统 IGP:内部网关路由协议,运行在AS内部的路由协议,主要解决AS内部的选路问题...
  • OSPF与BGP协议联动

    2021-06-14 13:38:38
    一、OSPF与BGP协议联动分析 免责声明:上图来源于网络,如有版权问题请联系作者删除! 实验环境:4台路由器底层运行ospf并建立IBGP邻居;RouterB、RouterC配置为RR路由反射器 在有备份链路的情况下,...
  • bgp协议简介

    2020-07-31 12:25:28
    bgp协议简介 bgp概述和特征: 传输协议TCP,端口号179,是一种外部路由协议,同来在AS之间传递路由信息,是一种增强的路径矢量路由协议,拥有可靠的路由更新机制,具备丰富Metric度量方法,无环路协议设计,为路由...
  • 一、RIP协议 RIP路由信息协议(Routinginformation protocol)是根据距离-向量原理设计的内部网络协议。RIP通过距离向量算法来完成路由表的更新。每个路由表项目都有三个关键数据:目的网络N , 距离d,下一跳路由器X&...
  • BGP协议

    2021-04-20 23:10:10
    文章目录BGP协议BGP特点BGP路径矢量特征BGP协议特征BGP报文类型在这里插入图片描述BGP状态机在这里插入图片描述BGP peerBGP中的路由黑洞BGP同步BGP路由通告规则BGP引入IGP路由BGP配置,EBGP多跳 BGP协议 边界网关...
  • 三十六、BGP协议

    千次阅读 2021-12-28 11:27:34
    文章目录1、BGP协议2、BGP协议交换信息的过程3、BGP协议报文格式4、BGP协议的特点5、BGP-4协议的4种报文6、三种路由选择协议的比较THE END 路由选择协议的分类: 1、BGP协议 \qquadBGP协议是一种用于自治系统内之间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,959
精华内容 10,783
关键字:

bgp协议

友情链接: Arrays.zip