目录
EGP和IGP的协议追求
EGP的协议追求
IGP的协议追求
BGP的特点
BGP数据包
BGP的工作过程
1、配置完成后
2、邻居关系建立后
3、收敛完成
BGP路由黑洞问题
BGP的防环机制
1、EBGP水平分割——解决EBGP环路
2、IBGP水平分割——解决IBGP环路由中的一种机制
BGP的基本配置
1、BGP邻居关系建立
2、BGP的宣告
BGP的宣告问题
BGP的自动汇总问题
BGP的认证
BGP的聚合(汇总)
标准的BGP聚合配置
路由传递干涉
BGP在MA网络中的下一跳问题
BGP的属性
PrefVal(优先级)
LocPrf 本地优先级
优先本地下一跳
AS-PATH
起源属性
MED
BGP选路规则
BGP:
边界网关路由协议,属于无类别的路径矢量协议,EGP协议中最流行的技术,工作在AS之间
EGP:
外部网关路由协议
IGP:
内部网关路由协议
AS:
自治系统
注意:
BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路
EGP和IGP的协议追求
EGP的协议追求
【1】可控性强
解释:
管理员可以方便进行策略干涉选路
【2】可靠性
解释:
BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系 ----- 单播邻居
基于TCP工作 三次握手四次挥手
IGP的协议追求
【1】无环(选路佳)
【2】收敛快
【3】占用资源少
BGP的特点
- 无类别路径矢量 -----距离矢量的升级版---AS--BY--AS
- 使用单播更新来发送所有信息;基于TCP 179端口工作
- 增量更新--仅触发无周期
- 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
- 可以在进项和出项对流量实施强大的策略--可控性
- 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
- BGP支持认证和聚合(汇总)
BGP数据包
基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障
首先通过TCP的三次握手来寻找到邻居
BGP的工作过程
1、配置完成后
邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输
会话完成后
邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可
2、邻居关系建立后
默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表;--- 装载本地发出及接收到的所有路由条目
默认将最优路径加载于路由表中
3、收敛完成
仅keeplive周期保活即可
注意:
若出现错误信息,邻居间将使用Notification报文进行报错操作
4、结构突变
【1】新增
本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
【2】断开
本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目
【3】无法沟通
hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由
BGP路由黑洞问题
非直连建邻到达控制层面路由条目可传递,递归计算路由可达;而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回
- 物理、逻辑拓扑全连 -- 物理链路直连、或者vpn
- 邻居关系全连 – 网络中所有设备运行BGP
- BGP重发布到IGP(LAB)
- MPLS 多协议标签交换--- 推荐做法
BGP的防环机制
BGP的防环机制——水平分割
1、EBGP水平分割——解决EBGP环路
依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;
2、IBGP水平分割——解决IBGP环路由中的一种机制
本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居
由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)
在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;
后期可以依赖打破水平分割的机制来解决---联邦、路由反射器
BGP的基本配置
1、BGP邻居关系建立
与路由条目宣告是分开的配置的
(1)直连的EBGP邻居关系建立
(2)IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递
注意:一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口
(3)EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立
2、BGP的宣告
运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输
注意:
宣告时,宣告的条目必须同本地路由表中的记录完全一致
BGP的宣告问题
- 在BGP协议中每台运行BGP的设备上,宣告本地直连路由
- 在BGP协议中运行BGP协议的设备来宣告,通过IGP学习到的,未运行BGP协议设备产生的路由
在BGP协议中宣告本地路由表中路由条目时,将携带本地到达这些目标的IGP度量值;传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居
BGP的自动汇总问题
当代的路由器设备,默认就关闭了BGP的自动汇总功能;
自动汇总规则与正常BGP协议邻居共享的路由,或在BGP协议通过network宣告命令产生的路由条目无关;
仅针对从IGP重发布到BGP的路由条目;
BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP;
BGP中中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP 协议;
但两种操作产生的路由条目其起源属性不同,宣告优于重发布
在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入;不携带本地到达目标的度量值,度量为0;若关闭自动汇总,进入路由将正常携带掩码,且携带度量;此时和宣告路由仅起源属性不同;故建议不要开启自动汇总
BGP的认证
邻居间进行身份核实的方法
BGP的聚合(汇总)
不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量;宣告特征—本地路由表中任何方式产生的路由均可被BGP宣告;
不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中
在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制
标准的BGP聚合配置
- 先逐条宣告所有的明细路由
- 再在更新源路由上进行聚合配置,自动产生空接口防环路由
路由传递干涉
- 抑制列表——先让设备将所有路由传递出去,再调用抑制策略
-
Route-map 在BGP中将route-map当分发列表用
- 分发列表
- 前缀列表——BGP协议中可以直接将前缀列表作为分发列表调用
BGP在MA网络中的下一跳问题
图中1、2、3在一个MA网段,但不在同一AS;正常R1从R2学习到的R4的路由,下一跳自动显示为R3(最佳路径)
原理:
- R1/2/3必须使用MA网段的物理接口建立邻居关系
- ICMP重定向开启(默认开启)
BGP的属性
PrefVal(优先级)
注意:
属性为私有属性
传播范围:不传播
默认值:0~65535
大/小 优:大
LocPrf 本地优先级
传播范围:整个AS内部-IBGP邻居间
默认值:100(0~255)
大/小 优:大
优先本地下一跳
本地在bgp协议中宣告本地路由表中的IGP路由时,在本地的BGP表中下一跳地址为0.0.0.0;
而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0;本地优选0.0.0.0的路由传递给本地的其他BGP邻居
AS-PATH
记录条目经过的所有AS编号
AS号的添加,一定是在EBGP邻居间进行的
优选经过的AS号数量最少的路径;同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收
起源属性
该条目的来源—通过什么方法进入到BGP协议的
i —— BGP宣告本地路由表中路由
?—— 将本地路由表中IGP路由重发布到BGP协议
e —— 将本地路由表中EGP路由重发布到BGP协议
规则:
i > e > ?
MED
多出口鉴别属性
BGP协议默认没有度量值,没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;
可用于干涉EBGP/IBGP关系下的选路,最常用于干涉EBGP关系选路
常常用于AS1干涉AS2对AS1的选路
BGP选路规则
比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)
1、优选Preference_Value值最高的路由(私有属性,仅本地有效)。
不传递 权限最高属性 可以干涉EBGP/IBGP选路
2、优选本地优先级(Local_Preference)最高的路由。
IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
3、优选手动聚合>自动聚合>network>import>从对等体学到的。
4、优选AS_Path短的路由。
EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
5、起源类型IGP>EGP>Incomplete。
起源属性 i优于e优于?; 可在控制层面任意接口修改;
6、对于来自同一AS的路由,优选MED值小的。
默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
最常用于干涉EBGP选路的属性
7、优选从EBGP学来的路由(EBGP>IBGP)
8、优选AS内部IGP的Metric最小的路由
9、优选Cluster_List最短的路由
10、优选Orginator_ID最小的路由
11、优选Router_ID最小的路由器发布的路由
12、优选具有较小IP地址的邻居学来的路由