BGP的基本配置

一、对等体关系建立

1)EBGP直连邻居建立

        1,启动BGP进程

        [R1]bgp 1 --- AS号 --- 因为BGP设备只能存在在一个AS中,所以,BGP一台设备 上只能启

        动一个进程 [R1-bgp]

        2,配置RID

        [R1-bgp]router-id 1.1.1.1 3,手动指定邻居关系

        [R1-bgp]peer 12.0.0.2 as-number 2 --- 注意,手工指定一定是双向的

        [R1]display bgp peer --- 查看BGP邻居表

        3,手动指定邻居关系

        [R1-bgp]peer 12.0.0.2 as-number 2 --- 注意,手工指定一定是双向的

        [R1]display bgp peer ---查看BGP邻居表

 2)IBGP对等体之间环回接口建邻

        由于IBGP对等体之间处于同一个AS中,正常一个AS内部将存在大量的备份路径,若使用

        物理接口建立邻居关系,将浪费备份资源,所以建议使用环回接口来建立IBGP 对等体关系。

        [r2-bgp]peer 3.3.3.3 as-number 2

        [r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 --- 给3.3.3.3发消息使用环回接口 的IP

        地址。 --- 使用环回接口建立对等体关系一定需要执行这个命令,否则邻居关 系将建立失败。

3)EBGP对等体之间的非直连建邻

        前提条件:建邻的IP之间必须可达,可以使用静态路由来保证。

        [r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 --- 修改EBGP对等体之间发送数据报中的TTL值

        [r5-bgp]peer 4.4.4.4 ebgp-max-hop --- 直接将ttl值修改为255

二、路由发布 --- 对于BGP而言,只要是路由表中存在的路由信息,都可以发布

1)通过network命令发布路由

        [R1-bgp]network 1.1.1.0 24 --- 后面跟目标网络号及掩码信息

        [R1]display bgp routing-table --- 查看BGP表

        NextHop --- 谁发送的路由信息,则下一跳就写谁;如果是自己始发的,则下一跳写

        0.0.0.0

        状态码

 *-- 代表可用。 --- 所有设备收到路由条目后,首先会根据下一跳属性中的参数来 查询本地

        路由表,查看该地址的可达性。如果,本地路由表中可达,则代表该路由信息可用;如果

        不可达,则该路由信息将不可用。 ---- 如果该路由条目不可用, 则将不会参与路由信息的

        优选。

 >--代表优选。 ---- 当收到多条到达相同网段的路由信息时,并且都可用,则将依 据属性在

        其中选择最优的进行加表及传递。

        1.1.1.0/24 EBGP 255 0 D 12.0.0.1 GigabitEthernet0/0/0 --- 下一跳字段将 直接使用下一跳

        属性中的地址,我们将BGP的路由信息的优先级设置为255。

 i-- 状态码为I,代表该路由信息是通过IBGP对等体学到的。

        [r2-bgp]peer 3.3.3.3 next-hop-local --- 将下一跳属性修改为自身

2)重发布

        [r2-bgp]import-route ospf 1

        Ogn --- 起源码 一共存在三种 --- I --- 代表这条路由信息起源于AS内部使用network通告出

        来的。

                --- e --- 代表来自于EGP协议。

                --- ? --- 除了以上两种方式,其他方式获取的路由信息都是?

3)通过汇总发布 --- 在BGP中我们将这样的操作成为路由聚合

BGP的路由聚合

自动聚合 --- 1,自动聚合只能针对重发布的路由信息生效

               --- 2,自动聚合只能聚合到主类 --- 会形成巨大的路由黑洞 --- 所以,华为设 备默认关

                         闭了自动聚合

使用路由策略进行重发布

1,使用前缀列表抓取流量

[r1]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24 --- 仅抓取前16位固定 且掩码长度位24位的路由信息

2,配置路由策略

[r1]route-policy bb permit node 10

Info: New Sequence of this List.

[r1-route-policy]if-match ip-prefix aa

3,在重发布中调用

[r1-bgp]import-route direct route-policy bb

[r1-bgp]summary automatic --- 开启自动聚合

Info: Automatic summarization is valid only for the routes imported through the import-route command.

*> 172.16.0.0 127.0.0.1 0 ? ---- 通过聚合发布的路由信息,下一 跳为127.0.0.1 ,其效果将自动在本地路由表中添加一条空接口路由。

s - suppressed --- 抑制 --- 被抑制的路由信息将不再传递。

手工聚合

[r1-bgp]aggregate 172.16.0.0 22 --- 手工聚合的命令

*> 172.16.0.0/22 127.0.0.1 0 ? --- 手工聚合后,产生的汇总网段携 带子网掩码,可以进行精确汇总,并且,下一跳也是127.0.0.1,则也将自动生成一条指 向汇总的空接口路由。

手工聚合的缺点:

        1,手工聚合生成聚合路由后,不会抑制明细路由,起不到减少路由条目的效果;

        2,在进行聚合后,聚合路由将不携带明细路由的路径属性,尤其是AS_PATH,则将可能

              导致环路的产生。

1,[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed --- 聚合的同时抑制所有明细路由

        通过suppress-policy(抑制策略)来实现部分明细路由的抑制。 --- 因为抑制策略 具备抑制

        能力,所以,可以将所有抓取放通的流量进行抑制。

        1,抓流量

                [r4]ip ip-prefix aa permit 172.16.1.0 24

        2,配置路由策略

                [r4]route-policy bb permit node 10 Info: New Sequence of this List.

                [r4-route-policy]if-match ip-prefix aa

        3,使用抑制策略调用路由策略

                [r4-bgp]aggregate 172.16.0.0 22 suppress-policy bb

2,BGP为了解决这个问题,专门设计了一个AS_SET的关键字,如果激活了AS_SET,则 BGP的汇总路由中将携带明细路由的AS_PATH属性。

[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed as-set

*> 172.16.0.0/22 127.0.0.1 0                 {1 4}?

注意:如果明细路由来自不同的AS中,并且,在同一个AS内进行聚合,则聚合后如果激 活了AS_SET,AS_PATH属性中将所有明细的AS号都携带,并且使用大括号括起来。在进 行防环时,括号内的AS都将不能回传,但在进行选路时,则整个大括号将被看作是一个 整体。

因为,聚合路由存在属性缺失的情况,所以,BGP专门设计了以下两个属性 --- ATOMIC_AGGREGATE,AGGREGATOR

ATOMIC_AGGREGATE --- 一个预警属性。 --- 只有在抑制了所有明细的情况下才会出现。 AGGREGATOR

[r4]display bgp routing-table 172.16.0.0 --- 查看路由的详细信息

三、路由反射器

        Router Reflector --- RR --- 我们可以将BGP路由器配置成为路由反射器,而被配置成为路 由反射器的设备在一定条件下,将可以反射学到的IBGP路由信息,以此来打破IBGP水平分割 带来的通信障碍。

bgp 绑定vrf bgp如何配置_服务器

所谓条件,就是我们在指定路由反射器的同时,需要指定他的一个或者多个IBGP对等体成 为他的客户(其余的称为非客户),RR和客户之间构成的系统,我们称为反射簇 (Cluster),每一个反射簇都将使用RR的RID作为自己的簇ID进行区分。

路由反射器的反射规则:

1,如果路由反射器从自己客户处学习到一条路由信息,则他将把该路由信息反射给自 己所有的客户以及非客户。

2,如果RR从自己的非客户处学习到一条路由信息,则他将把该路由信息反射给自己所 有的客户。 "非非不传"

3,当路由器执行路由反射时,他只将自己使用的最优的BGP路由进行反射。

因为路由反射器打破了IBGP水平分割,而IBGP水平分割规则其目的是为了防止路由信息 回传出现环路,所以,打破后可能出现环路,则需要想办法防止环路的出现。 ----- 为 了防止环路的出现,引入两个属性 ---- Originator_ID(起源者ID),cluster_list(簇 列表)

Originator_ID --- 起源者ID为反射的这条路由信息的始发者的RID,当路由信息经过RR反射 后,反射出去的路由信息中将包含这个属性。如果RR收到的路由信息中已经存在O_ID, 则将不会去修改这个ID 。

bgp 绑定vrf bgp如何配置_bgp 绑定vrf_02

当一台设备收到一条路由信息,其中起源者ID是自身的RID,则将不去接收这条路由信 息,防止路由回传,形成环路。 

bgp 绑定vrf bgp如何配置_sed_03

如果在一个AS内部,存在多次反射的话,那么,一定存在多个反射簇,则每个RR在反射 路由信息的时候,都需要将自己本地的簇ID添加到簇列表属性当中。当收到一条路由信 息中包含本地簇ID,则将拒绝接受,防止路由回传,造成环路。

注意:以上两个属性,都是针对IBGP对等体之间防环使用,在传递给EBGP对等体时,是 不需要携带的。

[r3-bgp]peer 2.2.2.2 reflect-client

[r4-bgp]display bgp routing-table 1.1.1.0

BGP local router ID : 4.4.4.4
Local AS number : 2
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.0/24:
From: 3.3.3.3 (3.3.3.3)
Route Duration: 00h01m18s
Relay IP Nexthop: 34.0.0.1
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 2.2.2.2
Qos information : 0x0
AS-path 1, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best,
select, active, pre 255, IGP cost 2
Originator: 2.2.2.2 
Cluster list: 3.3.3.3
Advertised to such 1 peers:
45.0.0.2

四、联邦

在大的AS中重新规划小的AS,小的AS之间去建立联邦的EBGP对等体关系,以此来打破 IBGP水平分割的限制。(注意:联邦的EBGP对等体关系是一种特殊的存在,仅遵循EBGP 对等体的传递特性,但是,也需要遵守AS-BY-AS规则。)

因为联邦的出现也将打破IBGP水平分割,可能造成路由回传,出现环路。所以,联邦的 EBGP之间也需要防环,其使用方法还是使用AS_PATH属性来防环。因为,这个防环也只 是针对AS内部进行防环,所以,联邦成员的AS号将使用小括号括起来。之后,在发送到 其他AS时将不携带。

[r2]bgp 64512 --- 联邦成员设备启动BGP进程时,使用小号来启动

[r2-bgp]confederation id 2 --- 告知设备其所处的大的AS为AS 2。

[r2-bgp]peer 3.3.3.3 as-number 64512 --- 联邦内部建立IBGP对等体使用小号建邻

[r3-bgp]confederation peer-as 64513 --- 告知需要建立联邦的EBGP对等体设备所在的AS 号 --- 只需要在联邦的EBGP对等体关系上执行即可。

[r3-bgp]peer 4.4.4.4 ebgp-max-hop --- 联邦的EBGP对等体之间因为需要遵循EBGP的传递特性,所以,他们之间的数据包的TTL值将设置为1,环回建邻的话需要修改该值。