1, BGP 的基本配置
1, BGP 建邻的基本配置
1, EBGP 对等体关系直连建邻
[r1]bgp1 ---启动BGP进程 --- 后面的1不是进程号,而是配置路由器所在AS的AS号
[r1-bgp]
[r1-bgp]router-id 1.1.1.1 ---配置 RID
[r1-bgpJpeer 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]peer3.3.3.3 connect-interface LoopBack O ---指定在给3.3.3.3发包时使用的源 IP 地址为环回接口0的IP地址。
注意:在使用环回接口建立对等体关系时,一定要修改发送接口。
3, EBGP 对等体关系之间的非直连建邻
注意:在 EBGP 对等体关系之间,一般是不具备非直连建邻的路由基础的,所以,需要先保证地址可达才行。
[r4-bgp]peer 5.5.5.5 as-number 3
[r4-bgp]peer5.5.5.5 connect-interface LoopBack O
[r4-bgp]peer5.5.5.5 ebgp-max-hop 2 --- 因为EBGP对等体之间一般是直连建邻,所以,数据包中的 TTL 值设置为1,要想非直连建邻,则需要将这个值改大。
[r5-bgp] peer 4.4.4.4 ebgp-max-hop ---如果后面不跟参数,则代表将TTL值修改为最大值255
2,发布路由
network ---在BGP中只能用来发布路由条目信息
注意:只要是路由表中存在的路由条目信息, BGP 都可以通过 Network 来进行发送。
[r1-bgp] network 1.1.1.0 24 ---目标网段信息及掩码必须和路由表中的完全一致才行。
[r1-bgp] display bgp routing-table ---查看BGP表
Network NextHop MED LocPrf PrefVal Path/Ogn
*>1.1.1.0/24 0.0.0.0 0 0 !
Network ---目标网段信息及掩码信息
NextHop ---BGP的一个路径属性---谁发的路由信息,下一跳就是谁,如果是自己发的,则下一跳为0.0.0.0。
状态码
*---代表可用--- 设备每收到一跳路由信息,都会检査其下一跳的可达性。即根据下一跳在路由表中递归査询,只要可达,则改路由信息可用。
>---代表优选
注意:只有一条路由条目是可用且优选的,他才能够被加到路由表中,也才能够被传递给其他的BGP 对等体。
1.1.1.0/24 EBGP 255 --- 通过 EBGP 对等体学到的 BGP 路由信息,其标记为 EBGP ,默认的优先级为255。
I ---状态码了--- 代表 BGP 路由信息是从自己 IBGP对等体处学到的
i 1.1.1.0/24 12.0.0.1 --- 因为在 AS 内部存在 AS-BY-AS 规则,所以,默认情况下传递的属性信息是一致的,因为这个下一跳也属于路径属性之一,默认情况下也不会传递,则将可能导致路由可用性校验失败。
[r2-bgp]peer 3.3.3.3 next-hop-local ---在给3.3.3.3传递路由信息是将下一跳属性改为本地
1.1.1.0/24 IBGP 255 --- 通过 IBGP 对等体学到的 BGP 路由信息,其标记为 IBGP ,默认的优先级为255。
路由表中的 NextHop 直接使用的是 BGP 属性中的下一跳,因为之前进行过可用性校验,所以,可以保证能够递归査找找到这个下一跳。
2,重发布
[r2-bgp] import-route ospf 1 --- 将 OSPF 的路由信息导入到BGP当中。
OGN --- 起源码--- l, E ,? --- 用来标识路由条目的起源
l --- 代表该路由信息起源于 IGP 协议(不局限于 IGP 协议,包括静态,直连),代表该路由条目起源于 AS 内部---通过 network 发布出来的路由信息其起源码为l
E ---代表该路由信息起源于 EGP 协议--- EGP 指的是 BGP 之前使用的外部网关协议
? ---通过除了以上两种方式学习到的路由 --- 重发布导入的路由起源码都是?
2, BGP 的路由聚合
自动聚合 ---1,该方法只能针对重发布发布的路由信息生效。2,自动聚合的路由只能按照主类进行聚合,将造成巨大的路由黑洞。所以,华为设备 BGP 的自动聚合功能是默认关闭的。
1,抓取流量
[r1]ip ip-prefix aa permit 172.16.0.022 greater-equal 24 less-equal 24
2,做路由策略
[r1]route-0policy aa permit node 10 Info : New Sequence of this List .
[r1-route- policy]if-match ip-prefix aa
[r1-route- policy]q
3,在重发布过程中调用路由策略
[r1-bgpJimport-route direct route-policy aa
[r1-bgp]summary automatic ---开启自动聚合的方法
*>172.16.0.0 127.0.0.1--﹣通过自动聚合会发布一条新的汇总路由,他是不携带子网掩码的,因为按照主类汇总,则子网掩码取主类默认值。而且通过聚合发布的路由信息其下一跳属性为127.0.0.1
注意:自动聚合之后,发布的汇总路由信息将在本地路由表中产生一条指向汇总的空接口,自动防环。
状态码--- S --- suppressed ---抑制---抑制路由条目的传递
手工聚合 --- 因为自动聚合存在两个缺陷,所以,如果需要对汇总进行精准把控时,手工聚合将是更理想的方案。
[r1-bgp]aggregate 172.16.0.0 22 --- 手工聚合
*>172.16.0.0/22 127.0.0.1---手工聚合后发布的路由条目将携带掩码信息,并且下一跳也是指向127.0.0.1,则其也会自动生成一条到达汇总网段指向空接口的路由进行防环。
手工聚合的问题:1,发布聚合路由的情况下,不会抑制明细路由,导致汇总操作并没有减少路由条目数量,反而增加了。
2,在进行汇总的时候,发布的汇总路由不会继承明细路由的属性,尤其是 AS _ PATH ,则将导致汇总路由部分属性缺失,甚至可能出现环路。
为了避免以上两个问题的产生,我们必须在配置过程中增加命令来完成。
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed ---在发布汇总路由条目的同时将抑制制所有的明细路由
但是,因为 BGP 协议的一些特殊性,我们往往不能将其所有的明细路由全部抑制。只能够抑制部分的路由信息--- 所以我们需要使用到 suppressed-policy 。
1,抓取流量,使用前缀列表
[r4]ip ip-prefix aa permit 172.16.1.024
2,使用路由策略匹配流量
[r4]route-policy aa permit node 10
Info : New Sequence of this List .
[r4-route-policy ]if-match ip-prefix aa
[r4-route- policy]q
3,使用抑制策略调用路由策略
[r4-bgp]aggregate 172.16.0.0 22 suppres-policy aa
对于第二个问题,我们专门设计了一个 AS _ SET 关键字,如果在配置命令的时候,将这个关键字激活,则 BGP 在汇总路由时,将携带上明细的 AS _ PATH 属性,来进行防环。
[r4-bgp]aggregate172.16.0.022 suppress-policy aa as-set
*>172.16.0.0/22 127.0.0.1 0 {1,4}? --- 如果明细路由携带的 AS_PATH 属性不一样,则在激活了 AS-SET 属性后,汇总路由将会把明细路由的 AS 号都携带上并且用大括号括起来,之后,在进行防环的时候,里面所有 AS 号都将生效,都不能回传。但是,在使用 AS_PATH 属性进行选路的时候,当作一个AS来看待。
因为聚合后的路由信息存在属性丢失问题,所以,这样的汇总路由需要格外的关注。为此,我们为 BGP 专门引入了两个属性 --- ATOMIC _ AGGREGATE , AGGREGATOR
ATOMIC _ AGGREGATE --- 纯粹预警属性 --- 只有在抑制全部明细路由时才会携带
AGGREGATOR --- 将携带汇总者的 RID 以及其所在的 AS 号
Aggregator : AS 2, Aggregator ID4.4.4.4, Atomic - aggregate
[r4]display bgp routing-table 172.16.0.0 --- 查看一条路由的详细情况
3,路由反射器
Router Reflector ---路由反射器--- RR ----我们可以通过配置,将某些设备在一定的条件下设置称为路由反射器,之后,该设备将可以反射所学习到的 IBGP 路由信息。
我们在指定一台路由器称为路由反射器( RR )的同时,必须在他的 IBGP 对等体关系中选择一个或者多个设备称为他的客户( client ), RR 和客户之间所构成的系统我们称为反射簇( Cluster )。每一个反射簇都将使用 RR 的 RID 作为簇 ID 。其余没有称为 RR 客户的 BGP 对等体关系,我们将称其为非客户。
路由反射器的反射规则:
1,当路由反射器从自己客户处学习到一条路由,则他将会把这条路由信息反射给自己所有的客户以及非客户
2,如果路由反射器从自己的非客户处学习到一跳路由,则他将把这条路由信息反射给自已所有的客户但是不能反射给非客户。
"非非不传”
3,当路由器执行路由反射时,他只将自己使用的最优的BGP路由进行反射。