BGP边界网关协议(Border Gateway Protocol)选路、属性(一)

ops/2025/2/8 18:14:52/

一、简介

        当BGP收到到达同一目的地的多条路由时,会根据选路规则选择出最优路由,然后将最优路由下发到IP路由表,指导数据流量转发。在交换机的实现中,当到达同一目的地存在多条路由时,BGP选路的概要过程

注:私网路由选路规则

        在交换机的实现中,私网BGP路由选路规则与公网BGP路由选路规则相同。唯一的不同是,相对于公网BGP路由,私网BGP路由需要根据VPN-Target进行路由交叉。

二、环境介绍

在AR1上引入10.1.111.0 /24 的路由信息

AR2:

AR3:

注:AR5做了RR所以此时能看到三条路径

AR5:

1、遗留问题: 

此时AR5无法ping通10.1.111.0/24的地址(环路)

解决方案:

        通过前缀列表的方式抓住该路由信息,利用路由策略修改下一跳的地址信息实现

[AR5]ip ip-prefix 10.1.111.0 permit 10.1.111.0 24[AR5-bgp]dis route-policy r5-r4-ex
Route-policy : r5-r4-expermit : 10 (matched counts: 1)Match clauses :if-match ip-prefix 10.1.111.0Apply clauses :apply ip-address next-hop 10.1.2.2permit : 20 (matched counts: 1)
[AR5-bgp][AR5-bgp]dis th
#
bgp 235ipv4-family unicastpeer 10.1.4.4 route-policy r5-r4-ex export
#现象:
[AR5-bgp]ping 10.1.111.1PING 10.1.111.1: 56  data bytes, press CTRL_C to breakReply from 10.1.111.1: bytes=56 Sequence=1 ttl=253 time=90 msReply from 10.1.111.1: bytes=56 Sequence=2 ttl=253 time=50 msReply from 10.1.111.1: bytes=56 Sequence=3 ttl=253 time=60 msReply from 10.1.111.1: bytes=56 Sequence=4 ttl=253 time=80 ms--- 10.1.111.1 ping statistics ---4 packet(s) transmitted4 packet(s) received0.00% packet lossround-trip min/avg/max = 50/70/90 ms[AR5-bgp]tracert 10.1.111.1traceroute to  10.1.111.1(10.1.111.1), max hops: 30 ,packet length: 40,press CTRL_C to break1 10.1.45.4 20 ms  20 ms  10 ms2 10.1.234.2 50 ms  40 ms  40 ms3 10.1.123.1 60 ms  70 ms  70 ms
[AR5-bgp]

三、BGP的路由属性

1、分类

        (1)公认必循(Well-known mandatory)

        AS-PATH、next-hop、Origin

        所有BGP设备都可以识别此类属性,且必须存在于Update报文中。如果缺少这类属性,路由信息就会出错。

        (2)公认任意(Well-known discretionary)

        local-preference、atomic-aggregate

        所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中,即就算缺少这类属性,路由信息也不会出错。

        (3)可选过渡(Optional transitive)

        团体属性(community)、aggregator

        在AS之间具有可传递性的属性。BGP设备可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体。

        (4)可选非过渡(Optional non-transitive)

        MED、Orignator ID、Cluster-list

        BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。

2、选路的优先级

(1)协议首选值

        协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效,不会传递给BGP邻居。

        当到达同一地址前缀有多条路由时,优先选择首选值大的路由。缺省情况下,从邻居学来的路由的初始首选值为0。

缺省条件下

修改方式:

[AR2]bgp 235
[AR2-bgp]pe
[AR2-bgp]peer 10.1.3.3 preferred-value ?INTEGER<0-65535>  Preference value
[AR2-bgp]peer 10.1.3.3 preferred-value 100

修改后,与上图相比较选路发生了变化,数据的路径也发生的变化。

优点:

        通过合理配置协议首选值,可以对数据流量转发路径进行合理规划,立即生效。

缺点:

        影响所有来自peer的路由信息,范围较大。

注:协议首选值在使用时只能做入向(import)策略来影响自身的选路,不能做出向(export)

(2)本地优先级

        Local_Pref属性用于判断流量离开AS时的最佳路由。本地优先级(Local_Pref)属性仅在IBGP对等体之间交换,不通告给其他AS。

修改本地优先级:

1)配置默认本地优先级

[AR3-bgp]default local-preference ?INTEGER<0-4294967295>  Specify a local preference
[AR3-bgp]default local-preference 200

默认向本设备所有的Ibgp邻居关系发送该属性 

AR3发给AR2、AR5所以导致AR2上来自2.2.2.2 和5.5.5.5 路由本地优先级均被修改

AR1和AR3之间建立的EBGP邻居关系,不受本地本地优先级的影响 

(3)本地始发

        BGP路由有两个来源:本地引入和从邻居学来的路由,其中本地引入路由优先级高于从邻居学来的路由。

  • 优选聚合路由(聚合路由优先级高于非聚合路由)。

  • 通过aggregate命令生成的手动聚合路由的优先级高于通过summary automatic命令生成的自动聚合路由。

  • 通过network命令引入的路由的优先级高于通过import-route命令引入的路由。

总结:手动聚合>自动聚合>network>import


http://www.ppmy.cn/ops/156776.html

相关文章

优化深度神经网络

训练集、开发集(验证集)、测试集 偏差与方差 正则化 L2正则 Dropout 随机丢弃部分神经元输入&#xff0c;经常用于计算机视觉的神经网络内&#xff0c;因为通常没有足够的训练数据&#xff0c;很容易出现过拟合的问题 数据增强 训练集规一化 可以使其图像更均匀&#xff0c;…

DeepSeek-R1 云环境搭建部署流程

DeepSeek横空出世&#xff0c;在国际AI圈备受关注&#xff0c;作为个人开发者&#xff0c;AI的应用可以有效地提高个人开发效率。除此之外&#xff0c;DeepSeek的思考过程、思考能力是开放的&#xff0c;这对我们对结果调优有很好的帮助效果。 DeepSeek是一个基于人工智能技术…

C语言:函数栈帧的创建和销毁

目录 1.什么是函数栈帧2.理解函数栈帧能解决什么问题3.函数栈帧的创建和销毁的过程解析3.1 什么是栈3.2 认识相关寄存器和汇编指令3.3 解析函数栈帧的创建和销毁过程3.3.1 准备环境3.3.2 函数的调用堆栈3.3.3 转到反汇编3.3.4 函数栈帧的创建和销毁 1.什么是函数栈帧 在写C语言…

动态规划LeetCode-121.买卖股票的最佳时机1

给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。…

【数据采集】基于Selenium采集豆瓣电影Top250的详细数据

基于Selenium采集豆瓣电影Top250的详细数据 Selenium官网:https://www.selenium.dev/blog/ 豆瓣电影Top250官网:https://movie.douban.com/top250 写在前面 实验目标:基于Selenium框架采集豆瓣电影Top250的详细数据。 电脑系统:Windows 使用软件:PyCharm、Navicat 技术需求…

机器学习day7

自定义数据集 使用pytorch框架实现逻辑回归并保存模型&#xff0c;然后保存模型后再加载模型进行预测&#xff0c;对预测结果计算精确度和召回率及F1分数 代码 import numpy as np import torch import torch.nn as nn import torch.optim as optimizer import matplotlib.pyp…

【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、计算机基础概念 1.1、什么是计算机 1.2、什么是编程 1.3、编程语言有哪些 2、Python 背景知识 2.…

【leetcode100】岛屿的周长

1、题目描述 给定一个 row x col 的二维网格地图 grid &#xff0c;其中&#xff1a;grid[i][j] 1 表示陆地&#xff0c; grid[i][j] 0 表示水域。 网格中的格子 水平和垂直 方向相连&#xff08;对角线方向不相连&#xff09;。整个网格被水完全包围&#xff0c;但其中恰好…