计算机网络-IS-IS路由计算

前面已经学习了建立IS-IS邻接关系和同步LSDB,然后基于此路由器会进行路由计算。

一、路由计算

因为IS-IS路由器有不同的级别,只维护自身级别的LSDB,因此就是Level-1只有区域内的路由信息,Level-2有Level-2的路由信息,Level-1通过Level-1-2的ATT置位下发默认路由到骨干区域。

1.1 Level-1路由器的路由计算:

Level-1路由计算
Level-1路由计算
Level-1-2下发ATT置位
Level-1-2下发ATT置位

Level-1作为非骨干区域,去往骨干区域需要通过Level-1-2这个中间人默认路由转发,Level-1只有本区域的路由信息,Cost默认为10。

次优路径:

缺省时, R1只能通过指向R2或R3的默认路由到达区域外部,但是R1距离R2和R3路由器的Cost值相等,那么当R1发送数据包到192.168.20.0/24时,就有可能选择路径2,导致出现次优路径。

次优路径
次优路径

就是说因为Level-1路由器是通过默认路由转发的,没有明细路由所以可以走上面R2或者下面R3,所以有可能出现次优的路径。那为了解决这个问题呢就有了一个路由渗透。

路由渗透:为了解决次优路径,渗透明细路由到区域内。

缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中。

通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。但是这样子呢可能会增加Level-1路由器的资源消耗,因为需要额外维护路由表,因此需要根据实际情况判断通过前缀列表渗透特定的明细路由。

路由渗透
路由渗透

1.2 Level-1-2路由器的路由计算

Level-1-2会分别维护两个级别的LSDB
Level-1-2会分别维护两个级别的LSDB
Level-1-2路由
Level-1-2路由
  • R2及R3都维护Level-1 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0001的路由。
  • R2及R3都维护Level-2 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0002的路由。
  • R2及R3将到达Area 49.0001的路由以Level-2 LSP的形式发送到Area 49.0002。

Level-1-2会分别维护两个级别的LSDB,默认情况下通过ATT置位向Level-1下发默认路由到达骨干区域。

1.3 Level-2路由器的路由计算:

R4及R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由。Level-2路由器作为骨干区域能够学习到达Level-1的路由。

Level-2路由计算
Level-2路由计算
Level-2路由
Level-2路由

简单说就是Level-1只有本区域的路由信息,Level-1-2有两个区域的路由信息,Level-2有全网的路由,Level-1需要通过Level-1-2的默认路由去往骨干区域。这个设计一方面是考虑到Level-1路由器可以不用处理那么多LSDB及路由信息,但是可能会导致次优路径,可以通过配置路由渗透将Level-2的明细路由渗透到Level-1区域。

二、IS-IS认证功能

IS-IS认证是基于网络安全性的要求而实现的一种认证手段,通过在IS-IS报文中增加认证字段对报文进行认证。当本地路由器接收到远端路由器发送过来的IS-IS报文,如果发现认证密码不匹配,则将收到的报文进行丢弃,达到自我保护的目的。

根据报文的种类,认证可以分为以下三类:

  • 接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。
  • 区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。
  • 路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。

接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。

Hello报文使用的认证密码保存在接口下,发送带认证TLV的认证报文,互相连接的路由器接口必须配置相同的口令。

配置:

# 进入接口
[R1] interface GigabitEthernet0/0/0

# level-1 指定设置Level-1级别的认证;level-2 指定设置Level-2级别的认证;send-only 指定只对发送的Hello报文加载认证信息,不对接收的Hello报文进行认证。
[R1-GigabitEthernet0/0/0] isis authentication-mode simple cipher  huawei

区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。

区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的钥匙串。

配置:

[Huawei-isis-1] area-authentication-mode { { simple | md5 } { plain plain-text | [ cipher ] plain-cipher-text } keychain keychain-name | hmac-sha256 key-id key-id } [ snp-packet { authentication-avoid | send-only } | all-send-only 
# simple 指定密码以纯文本方式参与认证;
# keychain 指定随时间变化的密钥链表;
# md5 指定密码通过HMAC-MD5算法加密后参与认证。
# snp-packet 指定配置SNP报文相关的验证;
# authentication-avoid 指定不对产生的SNP封装认证信息,也不检查收到的SNP,只对产生的LSP封装认证信息,并检查收到的LSP;send-only 指定对产生的LSP和SNP封装认证信息,只检查收到的LSP,不检查收到的SNP;
# all-send-only 指定对产生的LSP和SNP封装认证信息,不检查收到的LSP和SNP。

路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。

IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证,并使用共同的钥匙串。

对于区域和路由域认证,可以设置为SNP和LSP分开认证。

  • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
  • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
  • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
  • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。

配置:

[Huawei-isis-1] domain-authentication-mode { { simple | md5 } { plain plain-text | [ cipher ] plain-cipher-text } keychain keychain-name | hmac-sha256 key-id key-id } [ snp-packet { authentication-avoid | send-only } | all-send-only ]

根据报文的认证方式,可以分为以下四类:

  • 简单认证:将配置的密码直接加入报文中,这种加密方式安全性较其他两种方式低。
  • MD5认证:通过将配置的密码进行MD5算法加密之后再加入报文中,提高密码的安全性。
  • Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性。
  • HMAC-SHA256认证:通过将配置的密码进行HMAC-SHA256算法加密之后再加入报文中,提高密码的安全性。

本文由 mdnice 多平台发布

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

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

相关文章

初始Maven

1.背景 问题引入:为什么要使用 Maven? 1.1 添加第三方 jar 包 在 JavaEE 开发领域,有大量的第三方框架和工具可以供我们使用。使用这些 jar 包最简单的方法就是复制粘贴到 WEB-INF 目录中的 lib 目录下。但是会导致每次创建一个新工程就需要将…

【Linux】信号的产生

目录 一. 信号的概念signal() 函数 二. 信号的产生1. 键盘发送2. 系统调用kill()raise()abort() 3. 软件条件alarm() 4. 硬件异常除零错误:野指针: 三. 核心转储 一. 信号的概念 信号是消息的载体, 标志着不同的行为; 是进程间发送异步信息的一种方式, 属于软中断. 信号随时都…

医药流通企业如何安全访问医药ERP?无需公网IP和改变现有IT架构

随着目前医药流通行业竞争的加剧,市场供应日趋饱和,传统的粗放式管理缺陷逐渐暴露,导致从事医药行业企业的利润不同程度的下滑,想要满足医药行业客户的个性化需求,为适应企业未来发展,医药流通行业越来越多…

Docker 安装 Mongo

创建宿主机目录 在你的宿主机上创建必要的目录来存储 MongoDB 的数据和配置文件。这样做可以保证即使容器被删除,数据也能得到保留。 mkdir -p /develop/mongo/data mkdir -p /develop/mongo/config创建 MongoDB 配置文件 创建一个名为 mongod.conf 的 MongoDB 配…

C语言中整型与浮点型在内存中的存储

今天让我们来看看整型的数据和浮点型的数据在内存中是怎么存储的呢 整型数据在内存中的存储 整型数据在内存中存储的是二进制的补码 正数的话也没什么可说的,原码反码补码都相同 我们来看看负数: 以-5为例 原码:10000000 00000000 00000000 0…

【数据库】Redis

文章目录 [toc]Redis终端操作进入Redis终端Redis服务测试切换仓库 String命令存储字符串普通存储设置存储过期时间批量存储 查询字符串查询单条批量查询 Key命令查询key查询所有根据key首字母查询判断key是否存在查询指定的key对应的value的类型 删除键值对 Hash命令存储hash查…

【HTML】页面引用Vue3和Element-Plus

在现代前端开发中,Vue 3 和 Element Plus 是非常受欢迎的技术。Vue 3 是一个用于构建用户界面的渐进式 JavaScript 框架,而 Element Plus 是一个基于 Vue 3 的组件库,提供了丰富的 UI 组件,帮助开发者快速构建高质量的前端应用。 …

frp 实现 http / tcp 内网穿透(穿透 wordpress )

frp 实现 http / tcp 内网穿透(穿透 wordpress ) 1. 背景简介与软件安装2. 服务端配置2.1 配置文件2.2 wordpress 配置文件2.3 frps 自启动 3.客户端配置3.1 配置文件3.2 frpc 自启动 同步发布在个人笔记frp 实现 http / tcp 内网穿透(穿透 w…

多目标粒子群算法及其MATLAB实现

多目标粒子群优化(Multi-Objective Particle Swarm Optimization, MOPSO)算法是一种基于种群的优化算法,它结合了粒子群优化(Particle Swarm Optimization, PSO)和多目标优化的思想。多目标粒子群(MOPSO&am…

DevOps(八)Jenkins的Maven和Git插件

一、Maven简介 Maven是一个构建生命周期管理和理解工具,用于Java项目。它提供了标准化的构建流程,并简化了从项目编译到文档生成等各种构建方面的管理。 Maven是由Apache软件基金会开发和维护的一个流行的项目管理工具。它的设计目的是简化Java项目的构…

PE结构(二)PE头字段说明

PE头字段 DOS头 PE标记 标准PE头 可选PE头 我们今天分析一下PE头字段中所有重要成员的含义 DOS头 DOS头中我们需要去分析的是如下两个成员: 1.WORD e_magic:MZ标记,用于判断是否为可执行文件,即如果显示4D 5A,…

[2021年最新]国产时序性数据TDenige入门

一、TDenige简介 TDengine:是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoS…

图搜索的经典启发式算法A星(A*、A Star)算法详解

文章目录 1. 引言2. 广度优先搜索3. Dijkstra 算法4. 启发式优先搜索(Heuristic)4.1 贪心最佳优先搜索4.2 A*搜索 1. 引言 在许多场景中,我们常会遇到一类问题,即“找到一个位置到另一个位置的距离最短(用时最少&…

ELK 日志分析系统(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释,Kiabana 服务的默认监听端口为5601 server.po…

ubuntu 24.04 beta server NAT模式上网设置

在Ubuntu 24.04 Beta上设置网络通常涉及使用命令行工具。以下是设置静态IP地址和动态IP地址的步骤: 动态IP设置: 查找你的网络接口名称: ip a ens37是我NAT模型的一张网卡,此时是没有ip的。 下面介绍如何NAT模式下添加DHCP动态…

Maven多模块快速升级超好用Idea插件-MPVP

功能:多模块maven项目快速升级指定版本插件,并提供预览和相关升级模块日志能力。 可快速进行版本升级,进行部署到Maven仓库。 安装: 可在idea插件中心进行安装 / 下载资源拖动安装 MPVP(Maven) - IntelliJ IDEs Plugin | Marke…

node.js 解析post请求 方法一

前提:依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板,在这基础上进行修改。与动态资源处理代码不同的是,这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点&…

快速新建springboot项目

一、初始化 1.打开IDEA,在Spring initializer这里按照下图项目进行配置。注意:如果jdk是1.8建议将Server URL这里替换为图中的阿里云服务器,否则容易找不到对应的java8,然后点击next 2.在这里提前配置一些需要使用的依赖&#xf…

Linux上部署Jupyter notebook

安装jupyter notebook pip install notebook #或者 conda install notebook配置 jupyter notebook --generate-config## The IP address the notebook server will listen on. # Default: localhost # 设置可以访问的ip, 默认是localhost, 将其改为 * c.NotebookApp.ip *#…

CMakeLists.txt中如何添加编译选项?

1. 引子 编译器有多种可供选择,如g、c、clang等,如下以c作为示例。 2. 使用CMAKE_CXX_FLAGS添加编译选项 在Makefile中可能用类似如下的指令来添加编译选项: /usr/bin/c -Wall -Wextra -Wno-sign-compare -Wno-unused-variable -Wno-unuse…
最新文章