本文主要是介绍HCIE成长之路——BGP学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、BGP概述及基本概念
1.1 前言
1.动态路由协议可以按照工作范围分为IGP和EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。
2.BGP是Border Gateway Protocol的简称。
3.BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。
4.BGP多运行于AS于AS之间。
1.2 概述
1.2.1 外部网关协议
BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议不同,其着眼点不在于自动发现网络拓扑,而在于在AS之间选择最佳路由和控制路由的传播。
1.2.2 使用TCP作为其传输层协议
rip
:路由信息通过UDP传递
ospf
路由信息通过IP层传递
可通过telnet 到 route-server.ip.att.net 这台外网的路由器查看bgp的路由条目数
BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的高可靠性,且不需要专门的机制来确保连接的可控性。
BGP进行域间的路由选择,对协议的稳定性要求非常高,因此用TCP协议的高可靠性来保证BGP协议的稳定性。
BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口为179,本地端口号任意。
1.2.3 增量更新
路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,使用于在Internet上传播大量的路由信息。
1.2.4 增强型的路径矢量路由协议
BGP通过携带AS路径信息来标记途径的AS
1.2.5 无环路
AS之间
:BGP通过携带AS路径信息来标记途径的AS,带有本地AS号的路由将被丢弃,从而避免了域间发生环路。
AS内部
:BGP在AS内学到的路由将不再通告给AS内的BGP邻居,避免了AS内产生环路。
- 路由策略丰富
BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择 - 可防止路由振荡
BGP提供了防止路由振荡的机制(路由衰减)。有效提高了Internet网络的稳定性 - 易于扩展
BGP易于扩展,能够适应网络新的发展,主要是通过TLV进行扩展
未扩展前
:只支持ipv4 单播路由
扩展后
:新增支持ipv4组播、vpn v4 、vpn v6路由
1.3 BGP基本概念
1.3.1 自治系统AS
1.由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合
2.每个自治系统都有唯一的自治系统编号,这个编号是由IANA分配的。
3.自治系统的编号范围是由1到65535(2字节-4字节
),其中1到84511是注册的因特网编号,64512到65535是私有网络编号(BGP网络中AS号码标识)
1.3.2 EBGP和IBGP
IBGP
: BGP运行于同一AS内部
EBGP
: BGP运行于不同AS之间
基本前提:因为要建立TCP连接,所以两端的路由器必须知道对方的IP地址,可以通过直连端口,静态路由或者IGP学习。(IBGP一般推荐使用路由器环回口loopback地址,EBGP用端口直连地址)
使用loopback地址时候要注意开启EBGP多跳功能,默认EBGP的TTL值为1
二、BGP工作原理
2.1 报文类型
2.1 BGP协议中消息应用
2.3 状态机
2.4 BGP路由通告原则
-
连接一建立,BGP Speaker 将把自己产生的所有BGP路由通告给对等体,多条路径时,BGP speaker只选最优的给自己使用
-
BGP speaker 从EBGP获得的路由将会向它所有BGP对等体通告(包括EBGP和IBGP)
-
保证IBGP下一跳可达
AR1把BGP路由信息通告给AR2,默认情况下AR2再把同样的路由信息通告给AR3的时候,路由的下一跳地址仍旧是AR1的接口地址,这时候需要修改配置,让AR2向AR3通告AR1传过来的路由信息时候,把下一跳地址改成AR2的接口地址
(在AR2和AR3同属于一个AS内的情况下)
peer x.x.x.x next-hop-local
-
BGP speaker从IBGP获得的路由不会通告给它的IBGP邻居(水平分割)
2.5 BGP发布路由的方式
三、BGP属性
3.1 BGP属性特点
3.2 BGP属性特点-Origin
3.3 BGP属性特点-AS_path
当该路由条目传出AS时候,才会在路由条目上打上AS号码
3.4 BGP属性特点-Next_Hop
3.5 BGP属性特点-Local_Pref
3.6 BGP属性特点-MED
MED值越小优先级越高
3.7 BGP属性特点-团体属性
如要传递community属性
,需要手动配置如下指令
peer x.x.x.x advertise-community
否则会剥离团体属性后传递给对等体
四、BGP选路规则
4.1 BGP选路规则2-Preferred Value
可结合route-policy
进行手动的路径负载分担,值越大优先级越高,默认从BGP邻居通告过来的都是0,只是在路由器本地有效
4.2 BGP选路规则3-Local-Preferrence
在本AS内有效,值越大越优,默认值为100
default local-preference xxxx 只会在传递过来的路由信息中local-preferrence为空的时候才会修改成设定的值,如果不为空,就不修改,直接传递给下一个BGP邻居。
使用策略路由配置的指令为:apppy local-preferrence 200
4.3 BGP选路规则4-优选本地生成(下一跳为0.0.0.0)
4.4 BGP选路规则5-AS path
AS path长度越短越优先
策略路由配合指令:apply as path 200 additive
,实现手工为某条路由前缀增加一个AS 号
指令bestroute as-path-ignore
可以让BGP协议忽略AS path这个选路规则
4.5 BGP选路规则6-Origin
4.6 BGP选路规则7-MED
值越小越优先
手动设med值:apply cost 100
BGP在使用import 引入ospf路由时候,ospf的cost值会转化为 BGP 的med值
4.7 BGP选路规则8-EBGP路由优先于IBGP
4.8 BGP选路规则9-BGP下一跳IGP metric(开销)较小的路由
4.9 BGP选路规则10-当以上全部相同,则为等价
当以上全部相同时,可以在路由器上开启bgp等价路由模式
maximum load-balancing 2
,最大为8条负载均衡路径。
4.10 BGP选路规则11-12 —和RR相关
4.11 BGP选路规则13-对等体IP地址小的
五、BGP扩展特性
5.1 安全特性
- MD5: 认证
- GTSM:TTL
- 限制从对等体接收的路由数量
- AS_path长度保护
5.1.1 MD5认证
5.1.2 GTSM
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210218101225154.png
5.1.3 限制路由数量
5.1.4 AS_path长度保护
5.1.4 路由衰减
六 、BGP配置命令
6.1 配置BGP的基本功能
6.2 配置BGP Local_Pref属性
6.3 配置BGP MED属性
6.4 配置BGP 团体属性
6.5 配置BGP AS_PATH属性
6.6 配置BGP 负载分担
6.7 优化BGP网络
6.8 配置BGP对等体组
6.9 配置BGP路由反射器
通过配置 undo reflect between-clients
使客户机之间的路由不再需要通过RR来传递,但是非客户机的路由信息RR仍会传递给各个客户机
6.10 配置BGP过滤器
配置过滤的三种方法:
ACL:peer x.x.x.x filter-policy xxx
ip-prefix: peer x.x.x.x ip-prefix xxx
route-policy : peer x.x.x.x route-policy
6.11 配置BGP自动聚合和缺省路由
6.12 配置BGP手动聚合
6.12 优化BGP网络
七、BGP故障诊断
八、BGP RR与联盟
8.1 IBGP扩展性的问题
8.2 IBGP扩展问题解决方案
8.3 路由反射器
8.3.1 对等体之间的关系
8.3.2 路由反射器——反射规则
从那里收 | 发布给 |
---|---|
EBGP对等体 | RR的客户机与非客户机 |
非客户机 | RR的所有客户机 |
客户机 | RR的所有客户机和非客户机(自身的客户机除外) |
8.3.3 路由反射器–防环机制
8.3.3.1 路由反射防环机制–originator_ID
8.3.3.2 路由反射簇 (Cluster)
8.3.3.2.1 什么是簇
默认情况下,如果不特别指定,RR会自动选取路由器本身的router id
作为cluster_ID
可手动在BGP进程里通过reflector cluster-id x.x.x.x
修改
九、BGP路由聚合
聚合原则:越精细越好
9.1 自动聚合
默认情况下没有开启,可手动开启,需要在路由引入的始发路由器开启才有用 summary automatic
开启后明细路由会被抑制,一般不推荐
9.2 手动汇总
1、手动聚合指令:aggregate x.x.x.x x(netmask)
2、开启明细路由抑制:aggregate x.x.x.x x(netmask) detail-suppressed
,不过此方法会造成明细路由所携带的community属性聚合后丢失的问题,且看不到路由传递的as_path
3、完整的开启明细路由抑制指令:aggregate x.x.x.x x(netmask) detail-suppressed as-set
聚合路由里的as_path会把所有明细路由的as_path包含进去
4、给聚合后的路由重新添加community属性,aggregate x.x.x.x x(netmask) detail-suppressed as-set attribute-policy abc
abc
为自己定义的路由策略
5、origin-policy
:只有包含策略里指定的路由明细条目才会生成聚合路由并抑制该明细路由
6、suppress-policy
:指定抑制相应的明细路由
十、BGP增强特性
10.1 BGP ORF
10.1.1 BGP ORF 配置
peer x.x.x.x capability-advertise orf ip-prefix
: 发送和接受route-fresh信息的bgp 对等体都要配置该命令,开启orf使能
peer x.x.x.x ip-prefix xxxx import
:只在发送route-fresh的路由器上配置
10.2 Active-Route-advertise
bgp-rib-only
: BGP路由不会下发至本地路由器,但会通告给邻居路由器
10.3 BGP按组打包
10.4 四字节AS号概念
十一、BGP优化(Internet设计理念)
11.1 Internet设计理念–优化BGP能力
11.2 Internet设计理念–提高BGP可用性
11.3 Internet设计理念–控制AS内部路由
11.4 Internet设计理念–控制大型AS
11.5 Internet设计理念–设计稳定的Internet
十二、案例分析
这篇关于HCIE成长之路——BGP学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!