quagga源码学习--BGP协议中的routemap

2023-11-03

路由策略的基础知识

定义

   路由策略(Routing Policy)作用于路由,主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。

目的

路由器在发布、接收和引入路由信息时,根据实际组网需要实施一些策略,以便对路由信息进行过滤和改变路由信息的属性,如:

  • 控制路由的发布

    只发布满足条件的路由信息。

  • 控制路由的接收

    只接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性。

  • 过滤和控制引入的路由

    一种路由协议在引入其它路由协议发现的路由信息丰富自己的路由知识时,只引入一部分满足条件的路由信息,并对所引入的路由信息的某些属性进行设置,以使其满足本协议的要求。

  • 设置特定路由的属性

    修改通过路由策略过滤的路由的属性,满足自身需要。

  • 配置FRR功能

    为通过路由策略过滤的路由设置备份下一跳和备份出接口,可以实现IP FRR、VPN FRR、IP与VPN混合FRR功能。

收益
路由策略具有以下价值:
  • 通过控制路由器的路由表规模,节约系统资源。
  • 通过控制路由的接收和发送,提高网络安全性。
  • 通过修改路由属性,对网络数据流量进行合理规划,提高网络性能。
  • 通过FRR功能,提高网络可靠性。

路由策略的核心内容是过滤器,通过使用过滤器,可以定义一组匹配规则下表给出各种过滤器的应用范围和匹配条件的对比。

 访问控制列表(ACL)

各动态路由协议

入接口、源或目的地址、协议类型、源或目的端口号

地址前缀列表(IP-Prefix List)

各动态路由协议

源地址、目的地址、下一跳

AS路径过滤器(AS-Path-Filter)

BGP协议

AS路径属性

团体属性过滤器(Community-Filter)

BGP协议

团体属性

扩展团体属性过滤器(Extcommunity-Filter)

VPN

扩展团体属性RT

RD属性过滤器(Route Distinguisher-Filter)

VPN

RD属性

Route-Policy

各动态路由协议

目的地址、下一跳、度量值、接口信息、路由类型、ACL、地址前缀列表、AS路径过滤器、团体属性过滤器、扩展团体属性过滤器和RD属性过滤器等。

 

quagga在bgp协议中也应用了路由策略。

比如在bgp_update_rsclient中:

 1 /* Apply export policy. */
 2     if (CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_RSERVER_CLIENT) &&
 3         bgp_export_modifier(rsclient, peer, p, &new_attr, afi, safi) == RMAP_DENY) {
 4         reason = "export-policy;";
 5         goto filtered;
 6     }
 7 
 8     attr_new2 = bgp_attr_intern(&new_attr);
 9 
10     /* Apply import policy. */
11     if (bgp_import_modifier(rsclient, peer, p, &new_attr, afi, safi) == RMAP_DENY) {
12         bgp_attr_unintern(&attr_new2);
13 
14         reason = "import-policy;";
15         goto filtered;
16     }

如果匹配了过滤器:

 1 filtered:
 2 
 3     /* This BGP update is filtered.  Log the reason then update BGP entry.  */
 4     if (BGP_DEBUG(update, UPDATE_IN))
 5         zlog(peer->log, LOG_DEBUG,
 6              "%s rcvd UPDATE about %s/%d -- DENIED for RS-client %s due to: %s",
 7              peer->host,
 8              inet_ntop(p->family, &p->u.prefix, buf, SU_ADDRSTRLEN),
 9              p->prefixlen, rsclient->host, reason);
10 
11     if (ri)
12         bgp_rib_remove(rn, ri, peer, afi, safi);
13 
14     bgp_unlock_node(rn);

 

转载于:https://www.cnblogs.com/danxi/p/6393262.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

quagga源码学习--BGP协议中的routemap 的相关文章

  • 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话

    1 简介 前边几篇宏哥介绍了Charles界面内容以及作用 今天宏哥就讲解和分享如何设置Charles后 我们就可以愉快地捕获会话 进行抓包了 因为上一篇许多小伙伴看到宏哥的Charles可以分开看到request和response 而自己
  • tp5怎么验证手机号码

    直接上干货 转载于 https www cnblogs com yehuisir p 11595274 html
  • python 定义全局变量

    python定义全局变量 全局变量可以在代码任意位置创建 能够被所有对象和函数引用 有利于变量的共享 全局变量的定义 global 变量名 声明后引用 OLD URL http oldboyedu com def bb global OLD
  • luajit class

    https gist github com gaspard 1087382 https gist github com marciol 1983296 luajit simple jit lua ffi require ffi simple
  • 逆向分析学习入门教程

    转在于 逆向工厂 一 从hello world开始 前沿 从本篇起 逆向工厂带大家从程序起源讲起 领略计算机程序逆向技术 了解程序的运行机制 逆向通用技术手段和软件保护技术 更加深入地去探索逆向的魅力 一 程序如何诞生 1951年4月开始在
  • 20系列显卡服务器,RTX20系列被严重低估,他不仅是一张游戏显卡

    Turing架构的另一个特殊功能是它具有Tensor Core 这是用于深度学习AI运算的计算单元 借助Tensor Cores Turing图形卡的AI性能得到了极大的提高 FP32浮点性能达到13 4TFLOPS FP16浮点性能甚至达
  • 【LaTex】第二行作者居中(IEEEtran模板)

    LaTex 第二行作者居中 IEEEtran模板 存在的问题 有四个或五个作者的时候 第二行的作者无法居中 解决方案 在环境中添加如下代码 作者居中 makeatletter newcommand linebreakand end IEEE
  • TensorFlow出现Found Inf or NaN global norm的排查和解决办法

    在训练神经网络的时候 由于一些原因会出现NaN或者Inf 致使训练终止 在查阅相关资料之后 并且结合我出现的问题 做了一些总结 出现的代码在TensorFlow 1 12 2版本可正常执行 出现问题的原因 出现NaN或者Inf的原因一般可分
  • 【stm32学习】正点原子stm32f103学习——开发板入门

    一 连接外设 数据手册中FT标志的IO口是兼容5V的 原理图上带ADC都是不兼容5V 判断能否作为ADC输入 外设 首先了解一下ADC ADC是Analog to DigitalConverter的缩写 指模 数转换器或者模拟 数字转换器
  • 真实业务场景展现CAS原理的ABA问题及解决方案

    文章目录 阅读提示 CAS原理 ABA问题介绍 真实业务场景 如何解决ABA问题 CAS学习总结 阅读提示 本文将借助开保险柜的业务场景重点阐述误用AtomicBoolean引起的ABA问题 以及解决方案 基于此 请先深入理解CAS原理 以
  • 将Flutter添加到现有应用——过程中遇到的问题

    参照官方文档试着将Flutter集成到现有的Android应用 出现了错误特此来记录一下 本文所展示项目的运行环境 Flutter SDK Version 2 8 1 AndroidStudio Version Bumblebee 2021
  • Java学习路线图(2021年最新版)

    第一阶段 Java基础 JavaSE基础是Java中级程序员的起点 是帮助你从小白到懂得编程的必经之路 在Java基础板块中有6个子模块的学习 基础语法 可帮助你建立基本的编程逻辑思维 面向对象 以对象方式去编写优美的Java程序 集合 后
  • 从GIS地图生成生成建筑模型

    01截取要生成的地块 02PS处理要生成的地块 03inkscape生成SVG 04Blender导入SVG减面后再生成建筑体块 05最终效果
  • 名爵5显示服务器异常,名爵5危险警告灯异常闪烁

    一辆行驶里程仅有3000km的12年上汽名爵5轿车 车主反映 该车危险警告灯在刚打开点火开关的时候就开始闪烁 但是用危险警告灯开关能正常控制其闪烁 在该车进行首保时 笔者反复关闭和打开点火开关 发现在点火开关打开的同时 该车的所有转向灯都开
  • 基于GPUImage的多滤镜rtmp直播推流

    之前做过开源videocore的推流改进 1 加入了美颜滤镜 2 加入了librtmp替换原来过于简单的rtmpclient 后来听朋友说 在videocore上面进行opengl修改 加入新的滤镜比较麻烦 IOS的滤镜最好的要算GPUIm
  • 2012百度校园招聘笔试杭州站

    1 字符串倒转 优化空间时间 2 层次遍历 按层次输出二叉树节点 3 最多32000个数 最大为32000 对其查找不重复的数字 使用位图 当然内存有限制 但是位图可以装得下 4 手机输入法 通讯录查找优化 我使用字典树来解决
  • 在服务器上发布静态界面

    需求 朋友要把自己的简历发布在服务器上面 通告域名就可以直接访问 1 安装tomact 地址 http mirrors tuna tsinghua edu cn apache tomcat tomcat 8 v8 5 47 bin apac
  • MAC版本的Arduino+ESP32环境安装

    MAC版本的Arduino ESP32环境安装 Arduino IDE安装 安装ESP32软件包 共2种方法 常用ESP32开发资源 MAC编译出现问题解决方案 Arduino IDE安装 官网下载安装Arduino IDE Arduino
  • threejs配合tween实现相机视角2D、3D的切换动画

    1 所需依赖 import as THREE from three import OrbitControls from three examples jsm controls OrbitControls import TWEEN from
  • windows安装Python的解释器(CPython)python3

    一 下载 下载地址 python org 二 安装 傻瓜式安装 1 2 3 4 5 6 安装完成 三 验证python是否安装成功 1 打开命令行窗口 windos键 R cmd 按回车 2 输入python 按回车 3 出现此界面 表示p

随机推荐

  • git 拉取推送代码报错:kex_exchange_identification: Connection closed by remote hostConnection closed by 54.1

    报错 kex exchange identification Connection closed by remote host Connection closed by 54 151 144 214 port 22 fatal Could
  • JSP课设:学生选课系统(附源码+调试)

    JSP学生选课管理系统 学生选课管理系统功能概述 1 登录模块分为两种角色 学生角色 教师角色 2 教师模块 选课管理功能为对课程信息 课程编号 名称 学分 进行添加 修改 删除操作 学生信息功能对学生信息 学生编号 名称 登录密码 所在班
  • .net Iframe 'X-Frame-Options' to 'SAMEORIGIN' 解决办法

    Refused to display http xxx cn in a frame because it set X Frame Options to sameorigin 证明此页面不能被Iframe 解决方法 1 在被Iframe的we
  • Open3D (C++) 点云投影到圆柱

    目录 一 算法原理 1 圆柱方程 2 投影原理 二 代码实现 三 结果展示 1 原始点云 2 投影结果 四 参考链接 一 算法原理 1 圆柱方程 圆柱方程可以表示为 x x
  • CSS的相对定位,绝对定位,固定定位,及元素重叠(层级问题)

    CSS的相对定位 绝对定位 固定定位 及元素重叠 层级问题 1 项目问题及思考 1 1 问题一 关于定位问题 最近在做vue项目时 遇到这样一个需求 需要在Echarts的柱状图左侧的title的text文字内容加一个鼠标悬浮的文字提示 刚
  • Django中的Q查询

    class Poll models Model slug models SlugField unique for month pub date question models CharField maxlength 255 pub date
  • 小程序线上请求不到后台数据,开发工具上编译正常

    开发工具上真机调试请求 status failed 已配置合法域名 ssl证书未到期 https访问正常 使用此网站检测到缺少中间证书 解决方法 1 使用上面网站的证书分析 复制证书内容生成并下载中间证书文件 2 打开下载的中间证书复制到原
  • 宝塔面板搭建WordPress网站完整教程

    概述 如果还有不了解宝塔面板怎么使用的小伙伴 可以看下我总结的系列教程 保证从新手变老鸟 宝塔面板精选教程汇总 宝塔面板教程 1 基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程 2 宝塔面板添加WordPress站点详细图文教程 宝塔面
  • 深度剖析Vmware 裸机映射,看完秒懂!

    不使用裸机映射时 虚拟机上的虚拟磁盘需要制作文件系统 在书记写入的过程中数据需要先使用虚拟磁盘上的文件系统进行写入 写入完成后 虚拟磁盘文件 vmkd仍然需要使用ESXI主机存储的文件系统 VMFS 在写入真实存储中 这样就导致需要经过两种
  • Save Money for Your Company 最小矩形覆盖(非计算几何)/找出N条直线相交点的边缘点/ find the dominating points of N lines

    Save Money for Your Company Description You are the director of a mining enterprise aiming to purchase an mining land fo
  • 【人工智能】人工智能与人类智能的关系

    1 基本概念界定 1 1人工智能 人工智能是在20世纪中期以后产生的学科 人工智能就是用机器模拟人类的智能活动 从而用机器代替人类行使某些方面的职能 人工智能是通过探索人的感觉和思维的规律来模拟人的智能活动 电子计算机是人工智能的媒介和基础
  • 我是双非一本软件工程毕业,想做技术文档工程师

    收到一位来自知乎网友 姜莱的咨询 征得本人同意 在此做一个公开答复吧 姜莱你好 非常感谢你的信任 在择业的关键路口 愿意听我这个陌生人聊聊想法 作为一只 误入歧途 在技术传播行业摸爬滚打了10 年的TC狗 简单分享一下个人经验 仅供参考 希
  • 1740 找到二叉树中的距离

    题目描述 给定一棵二叉树的根节点 root 以及两个整数 p 和 q 返回该二叉树中值为 p 的结点与值为 q 的结点间的 距离 两个结点间的 距离 就是从一个结点到另一个结点的路径上边的数目 示例 1 输入 root 3 5 1 6 2
  • 飞桨学习笔记之图像分割套件PaddleSeg

    1 概述 2 基本原理 2 1 DeepLabv3 2 2 U Net 2 3 PSPNet 2 4 ICNet 2 5 HRNet 2 6 Fast SCNN 2 7 模型选择 2 8 模型评估 3 具体实现过程 3 1 准备数据集 3
  • 使用指纹的锁屏解锁流程

    startuml gt BiometricUnlockController onBiometricAuthenticated BiometricUnlockController gt BiometricUnlockController st
  • STM32在线升级OTA,看这一篇就够啦~

    本文是博主在学习OTA时 up主阿正推荐学习的文章 原作者leafguo 写的非常简洁明了 在获得授权后整理发布 可以在文末点击阅读原文跳转到原文章 简介 本文主要讲解在线升级 OTA 的基础知识 主要是针对IAP OTA从原理分析 分区划
  • DVWA靶机,通过XSS盗取cookie登录

    文章目录 一 发现XSS漏洞 1 1 登录DVWA 找到XSS DOM 模块 测试XSS是否存在 1 2 在选项的传参后面加入一串js代码 也就是可以XSS弹出的代码 payload如下 二 盗取cookie 2 1 在XSS平台上搭建一个
  • Linux 学习视频完整

    链接 https pan baidu com s 1O6zsaYo7kl28QTpOnr9wCA 提取码 e7u4
  • docker部署harbor

    一 harbor下载 官方下载地址 Releases goharbor harbor GitHub 二 harbor安装 1 解压安装包 tar xzvf harbor XXXX tgz 2 配置修改 复制harbor yml tmpl文件
  • quagga源码学习--BGP协议中的routemap

    路由策略的基础知识 定义 路由策略 Routing Policy 作用于路由 主要实现了路由过滤和路由属性设置等功能 它通过改变路由属性 包括可达性 来改变网络流量所经过的路径 目的 路由器在发布 接收和引入路由信息时 根据实际组网需要实施