【HCIP学习】BGP选路、过滤及属性

一、BGP路由选路原则(13条)

1、首先丢弃下一跳(NEXT_HOP)不可达的路由;

2、优选Preferred-value值最大的路由;默认为0;

Preferred-value:定义:首选项。

属性值:默认为0,取值范围是 0~65535,取值越大,优先级越高。

注意:H3C和华为的私有属性,

3、优选本地优先级(LOCAL_PREF)最高的路由;

4、依次选择network命令生成的路由、import-route命令引入的路由、聚合路由;

5、优选AS路径(AS_PATH)最短的路由;

6、依次选择ORIGIN属性为IGP、EGP、Incomplete的路由;

7、优选MED值最低的路由;

8、依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由;

9、优选下一跳度量值最低的路由;

     度量值:一般指通过IGP协议到达下一跳地址的度量值

10、优选CLUSTER_LIST长度最短的路由;

11、优选ORIGINATOR_ID最小的路由;

12、优选Router ID最小的路由器发布的路由。

13、优选IP地址最小的对等体发布的路由。

记忆:PLLAOMEICORI

二、BGP负载分担时的选路

1、背景:BGP协议本身一定能选出唯一 一条到达目的网段的最优路由,通过手动配置路由策略可以允许BGP实现负载分担的功能。

2、BGP的负载分担与IGP的负载分担有所不同:

IGP是通过协议自身定义的路由算法,对到达同一目的地址的不同路由,将度量值(metric)相等的路由进行负载分担

BGP本身并没有路由计算的算法,但BGP有丰富的选路规则,可以在对路由进行一定的选择后,有条件地进行负载分担

三、BGP路由的发布策略

只将最优路由发布给对等体。如果配置了active-route-advertise命令,则BGP发布IP路由表中的最优路由;否则,发布BGP路由表中的最优路由;

举例:

一个路由既通过BGP学到10.1.1.0/24:

10.1.1.0/24  1.1.1.1 优     BGP路由表优先

10.1.1.0/24  2.2.2.2

又通过OSPF也学到了10.1.1.0/24 :

10.1.1.0/24   3.3.3.3    IP路由表优先

最终在我的IP路由表中,应选择哪一条?

比较优先级:OSPF 优先级:10和150 ,BGP优先级255。在整个IP路由表中,选择通过OSPF学到的路由

只把自己使用的路由发布给对等体(自己选的最优路由);

从EBGP获得的路由会向它所有BGP对等体发布;

从IBGP获得的路由不向它的IBGP对等体发布;(IBGP水平分割)

从IBGP获得的路由发布给它的EBGP对等体;

BGP连接一旦建立,BGP发言者将把满足上述条件的所有BGP路由发布给新对等体。之后,BGP发言者只在路由变化时,向对等体发布更新的路由。

四、BGP路由过滤

1、通过路由策略过滤

2、通过前缀列表过滤

3、通过filter-policy来进行过滤

五、BGP属性(属性越多,控制BGP路由选路的方法越多)-----实验演示

属性:描述一个对象的特征的一些信息

1、公认属性:所有路由器都必须识别的属性

公认必遵属性:BGP发布的路由必须携带,所有路由器必须识别的属性;AS_path、next-hop、origin

(1)AS_path

定义:AS路径属性,记录路由传递过程中经过的AS编号

作用:AS防环;

           路由优选:AS_path短(AS编号的数量)的优先;

注:AS_path属性增加AS编号是在路由从一个AS传出的时候;

      增加AS_path长度来控制选路时,建议增加真实经过的AS编号,防止AS防环机制导致路由无法学习;

实验演示:bgp选路属性(AS_path

(1)R1到达192.168.1.0的路径:R1-R3-R4

做法1:在R2上修改路由的AS_path(在R2到R1的出方向修改)

配置ACL,抓取192.168.1.0网段的路由

      acl  2000

      rule 5 permit source 192.168.1.0 0.0.0.255

配置路由策略,修改AS_path,增长其路径

      route-policy 1.0 permit node 10

      if-match  acl 2000

      apply as-path 300 400 additive

保持良好习惯,放空节点,允许其他网段通过

      route-policy 1.0 permit node 20

在出方向应用路由策略

       peer 100.1.1.1 route-policy 1.0 export

测试:修改AS_path成功

做法2:在R1上修改路由的AS_path(在R2到R1的进方向修改)

配置ACL,抓取192.168.1.0网段的路由

        [R1]acl 2000

        [R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

配置路由策略,修改AS_path,增长其路径

       [R1]route-policy 1.0 permit node 10

       [R1-route-policy]if-match acl 2000

       [R1-route-policy]apply as-path 500 600 additive

保持良好习惯,放空节点,允许其他网段通过

       [R1]route-policy 1.0 permit node 20

在进方向应用路由策略

       peer 100.1.1.2 route-policy 1.0 import

additive:在原来的AS编号基础上,加入新增加的AS编号

overwrite:覆盖原来的AS编号

思考:假设一条路由的AS_path=(1,2,3),另外一条路由AS_path=(10000,20000),请问谁的路由更优?

答案:不管AS编号多大多小,AS_PATH编号数量少的路径,永远优先。

(2)next-hop:下一跳

注意:如果一个路由器同时拥有EBGP和IBGP邻居:

路由发布给EBGP邻居,下一跳变更为指定的EBGP邻居地址;

路由发布给IBGP邻居,下一跳不变,仍然保持为指定的上个AS的EBGP邻居地址;

对IBGP邻居发布的路由通告命令更改下一跳为本机。

(3)origin:路由来源属性(描述一条BGP路由的来源)

属性值:

IGP:来源于network宣告,聚合的路由,显示为i;

EGP:来源于引入的EGP协议路由,显示为e(一般见不到了);

incomplete :未完成,来源于引入IGP协议或静态路由,显示为?

优选顺序:IGP>EGP>incomplete

在R1增加一个环回口:192.168.2.1,宣告进BGP,查看R4路由表,发现去往192.168.1.0网段的下一跳是R2。

现在我们可以通过更改OGN属性,让去往192.168.2.0网段的下一跳是R3。

方法1:在R2对R4上改出方向

方法2:在R4对42上改入方向

抓取流量

      [R4]acl 2000

      [R4-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255

配置路由策略,修改origin 为incomplete

      [R4]route-policy 2.0 permit node 10

      [R4-route-policy]if-match acl 2000

      [R4-route-policy]apply origin incomplete

保持良好习惯,放空节点,允许其他网段通过

      [R4]route-policy 2.0 permit node 20

在进方向应用路由策略

      [R4-bgp]peer 2.2.2.2 route-policy 2.0 import

测试:查看R4路由表,发现去往192.168.1.0网段的下一跳已经是R3

公认可选:所有路由都识别,但不是必须携带的属性;local-perference、Atomic-aggregate

(1)local-perference:

定义:本地优先级,同一个AS内也可以看到这个属性值,表明了BGP路由器的优先级。

注意:默认值100,值大的优先;

在R4上通过更改local-perference,让R4重新选择走R2的2.2.2.2

方法1:把到2.2.2.2的路由local-perference值改大于100

方法2:把到3.3.3.3的路由local-perference值改小于100

在R3上配:在R3的出方向或者R4的入方向都可以

出方向:

抓取流量

      [R3]acl 2000

      [R3-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255

配置路由策略,修改local-perference为80

      [R3]route-policy 2.0 permit node 10

      [R3-route-policy]if-match acl 2000

      [R3-route-policy]apply local-preference 80

保持良好习惯,放空节点,允许其他网段通过

      [R3]route-policy 2.0 permit node 2

在出方向应用路由策略

     [R3-bgp-af-ipv4]peer 4.4.4.4 route-policy 2.0 export

测试:查看R4路由表,发现去往192.168.2.0网段的下一跳已经是R2

(2)Atomic-aggregate:自动聚合

注:BGP可以自动聚合,也可以手动聚合

2、可选属性

1)可选传递属性

定义:路由器可以不识别该属性,但是会继续向下传递该属性

属性:aggregator:手动聚合

           community:团体属性

(2)可选非传递属性

定义:路由器可以不识别该属性,但是也不会继续向下传递该属性

属性:

clustor_list:集群列表

originator_id:集群ID

MED:多出口鉴别器:当一个AS有多个入口点时,用于判断流量进入AS时的最优路径。

         属性值:network的路由,默认值为0;

                引入的路由,默认值为原IGP协议的cost;

                值小的优先;

实验演示:

演示1:在R4上通过路由策略对2.0网段路由改MED值,这样R4能将192.168.2.0的MED传给R5。

抓取流量

    [R4]acl 2000

    [R4-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255

配置路由策略,修改MED为133

      [R4]route-policy med permit node 10

      [R4-route-policy]if-match acl 2000

      [R4-route-policy]apply cost 133

保持良好习惯,放空节点,允许其他网段通过

      [R4]route-policy med permit node 20

在出方向应用路由策略

      [R4]bgp 200

      [R4-bgp]ipv4-family unicast

      [R4-bgp-af-ipv4]peer 100.5.5.5 route-policy med export

测试:查看R5路由表,发现R4能将192.168.2.0的MED传给R5

六、属性控制的选择建议

1.如果希望影响下游所有路由器的路由选择,建议使用AS-PATH

2.如果只希望影响本AS内部的路由器选择,建议使用Local-preference

3.如果希望只影响下游某一个AS的路由器选择,建议使用MED

4.如果希望只影响某一台路由器的路由选择,建议使用preferred-value

七、属性控制方法

路由策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/617718.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5. 简单说一说uniapp中的语法吧

前言 如果你 知道Vue3并且对Vue3的语法有一定了解,请跳过这一章,由于后续项目主要是基于Vue3TypeScript,因此提前简单概述一些Vue3的基础语法~ 本文的目的是 期望通过对本文的阅读后能对Vue3的每个语法有一个简单的印象,至少要知…

Android 13 系统自定义安全水印

效果 源码实现 frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java public final void showSafeModeOverlay() {View v LayoutInflater.from(mContext).inflate(com.android.internal.R.layout.safe_mode, null);WindowManager.Layout…

《C++学习笔记---初阶篇6》---string类 上

目录 1. 为什么要学习string类 1.1 C语言中的字符串 2. 标准库中的string类 2.1 string类(了解) 2.2 string类的常用接口说明 2.2.1. string类对象的常见构造 2.2.2. string类对象的容量操作 2.2.3.再次探讨reserve与resize 2.2.4.string类对象的访问及遍历操作 2.2.5…

宝塔面板怎么解决nginx跨域问题

1.找到宝塔的nginx配置文件 宝塔有一点不同,nginx配置文件不在nginx的安装目录中,应当去/www/server/panel/vhost/nginx找到 2.添加你要跨域的地址 location /api {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-…

爱普生推出5G基站可用耐高温高稳定性温补晶振

爱普生推出了六款新的温补晶振型号:TG7050CKN,TG7050SKNTG7050CMN,TG7050SMN,TG-5510CA,TG-5511CA。这几款的特点就是耐高温温度可达105℃C高温,而且都是高稳定性温补晶振,而且都是7050尺寸,这个…

map 和 set 的介绍和简单使用

目录 1. 序列式容器和关联式容器 2. 键值对 2.1. make_pair 3. 树形结构的关联式容器 3.1. set (Key 模型) 3.1.1. std::set::find 和 std::set::count 3.2. map (Key-Value 模型) 3.2.1. std::map::insert 3.2.2. std::map::operator[] 3.3. multiset 3.4.1. std::…

[Java EE] 文件IO(一):文件概念与文件系统操作

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

vscode怎么设置背景图片?

vscode背景图片是可以自己设置的,软件安装后默认背景的颜色是黑色的,这是默认的设计,如果要修改背景为指定的图片,那么我们需要安装插件,然后再通过代码来设置背景图片的样式,下面我们就来看看详细的教程。…

大数据交通行政执法监测系统

交通行政执法监测系统应用系统按照监测主体可分为:出租车交通违法监测,客车交通违法监测,货车、危化品车辆交通违法监测,非法营运车辆监测。功能模块涵盖:特征识别、档案查询、预警分析等。 (1)…

java中EQ、NE、GE、GT、LE、LT

关系运算符 包括EQ、NE、GE、GT、LE、LT几个,关系运算符返回的是真“True”或假“False”。 eq(Equal to) 等 运算符 ,如果运算符两边相同则返回真,否则返回假; ne(Not Equal to) 不…

力扣HOT100 - 55. 跳跃游戏

解题思路&#xff1a; class Solution {public boolean canJump(int[] nums) {int n nums.length;int maxReach 0;// 正常来说每次至少跳一格&#xff0c;所以最多循环n次for (int i 0; i < n; i) {if (i > maxReach) return false;// 这种情况代表遇到了0&#xff0…

使用train.py----yolov7

准备工作 在训练之前&#xff0c;数据集的工作和配置环境的工作要做好 数据集&#xff1a;看这里划分数据集&#xff0c;训练自己的数据集。_划分数据集后如何训练-CSDN博客 划分数据集2&#xff0c;详细说明-CSDN博客 配置环境看这里 从0开始配置环境-yolov7_gpu0是inter g…

11、关系运算符、逻辑运算符(讲解 和 的区别)、赋值表达式、三目表达式、运算符优先级(超详细版本)+结合性的分析

这里写目录标题 一、关系运算符&#xff08;比较运算符&#xff09;二、⭐逻辑运算符1、 && 和 &2、|| 或 |3、&#xff01;4、^ 三、赋值运算符四、三目运算符&#xff08;条件运算符&#xff09;五、运算符优先级 在讲之前先明确几个概念&#xff1a; 1、单目运算…

【Arduino】ESP32/ESP8266 JSON格式解析

目录 1、JSON 2、JSON语法格式 基本概念&#xff1a; 语法规则&#xff1a; 数据类型&#xff1a; 示例&#xff1a; 3、JSON解析 单一对象JSON解析&#xff08;无嵌套&#xff09; JSON数组解析 使用ArduinoJson官网在线工具解析JSON信息 ESP8266闪存存储的JSON解析…

VScode 修改 Markdown Preview Enhanced 主题与字体

VScode 修改 Markdown Preview Enhanced 主题与字体 1. 修改前后效果对比2. 修改主题2.1 更改默认主题2.2 修改背景色 3. 修改字体 VS Code基础入门使用可查看&#xff1a; VS Code 基础入门使用&#xff08;配置&#xff09;教程 其他Vs Code 配置可关注查看&#xff1a; Vs C…

ElasticSearch 与 OpenSearch:拉开性能差距

Elasticsearch 与 OpenSearch&#xff1a;扩大性能差距 对于任何依赖快速、准确搜索数据的组织来说&#xff0c;强大、快速且高效的搜索引擎是至关重要的元素。对于开发人员和架构师来说&#xff0c;选择正确的搜索平台可以极大地影响您的组织提供快速且相关结果的能力。在我们…

docker(二):Centos安装docker

文章目录 1、安装docker2、启动docker3、验证 官方文档&#xff1a;https://docs.docker.com/engine/install/centos/ 1、安装docker 下载依赖包 yum -y install gcc yum -y install gcc-c yum install -y yum-utils设置仓库 yum-config-manager --add-repo http://mirrors…

在xAnyLabeling中加载自己训练的yolov8s-obb模型进行半自动化标注

任务思路&#xff1a; 先使用xAnyLabeling标注一部分样本&#xff0c;训练出v1版本的yolov8-obb模型&#xff0c;然后加载yolov8-obb模型到xAnyLabeling中对其余样本进行半自动化标注。节省工作量。 任务流程&#xff1a; 1.准备xAnyLabeling标注工具 下载代码&#xff0c;…

Linux 第二十八章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

利用PS在不伤背景的前提下根据颜色去除图像上不想要的内容

下面为一个例子&#xff0c;去除图像上红色的虚线 Step1.用套索工具框选带有颜色的部分 Step2.切换到魔术棒工具&#xff0c;上端选项中&#xff0c;点击与选区交叉&#xff0c;连续这一项不要勾选 Step3.在需要去除的部分点击一下即可在框选范围内选中所有同颜色的区域&#x…