OSPF(开放式最短路径优先协议)、ACL(访问控制列表)、NAT

news2025/2/24 7:01:14

一、OSPF -- (开放式最短路径优先协议) 基于组播更新
---
 224.0.0.5   224.0.0.6

1、协议类型:无类别链路状态的IGP协议

  • 无类别:带精确掩码
  • 链路状态:不共享路由,共享拓扑(共享LSA)
  • IGP:AS内部使用

2、更新方式:周期更新触发更新

3、结构化部署:区域划分,合理IP地址规划

链路状态协议的更新量随着网络范围的扩大指数性的上升,因此OSPF协议为了在中大型网路中工作,需要结构化部署

4、5种数据包

  • Hello包(邻居的发现;关系的建立;周期10s的保活【携带RID】)
  • DBD包(数据库描述包:本地数据库目录)
  • LSR包(链路状态请求)
  • LSU包(链路状态更新)
  • LSACK包(链路状态确认)

PS:LSA(链路状态通告)具体的一条一条路由信息或者拓扑信息,不是一个包,被LSU数据包来携带

5、七个状态机

  • DOWN:接收到Hello包,进入下一个状态机
  • INIT(初始化):将接受到的Hello包,存在本地的RID,进入下一个状态机
  • 2way(双向通讯):邻居关系建立的标志

关注条件:已经成为邻接关系时,首先在Exstart state进行选举,然后发送DBD

  • Exstart(预启动):使用不携带目录信息的DBD包,进行主从关系的选举。RID大为主,优先进入下一个状态。---解决目录共享时的无序
  • EXchange(准交换):使用携带目录信息的DBD包,共享本地的数据库目录
  • Loading(加载):查看完邻接的DBD信息后,对比本地,而后基于本地未知的LSA进行查询,使用LSR向对端查询,对端使用LSU来传输这些LSA信息,本地收到后,需要LSACK来进行确认。
  • FULL:邻接关系建立的标志,意味着邻接间本地数据库同步(一致)

6、工作过程



 (1)启动配置完成后,邻居间开始收发Hello包,Hello包中将携带本地以及本地所有已知邻居的RID,之后生成邻居表

邻居间需要关注是否可以成为邻接的条件:如果不能建立为邻接,将保持为邻居关系,仅Hello包周期保活即可。如果可以建立为邻接关系,将使用DBD进行本地数据库目录的对比,基于对比的结果,使用LSR/LSU/LSACK来获取本地未知的LSA信息。

(2)若可以建立为邻接关系,使得邻接关系间的数据库(LSDB)完成同步(一致),生成数据库表

(3)之后本地基于LSDB,使用SPF算法,生成有向图 --> 最短路径树 --> 计算本地到达所有未知网段的路径,将其加载到本地的路由表中 --> 收敛完成

(4)收敛完成后,邻居和邻接关系的Hello包,将每10s发送一次进行保活;每30min一次邻接关系间的周期数据库比对,保障一致。

LSDB -- (链路状态数据库)--- 所有LSA的集合

7、发生结构突变

  • 新增网段
  • 断开网段
  • 无法沟通:dead time 是hello time 的4倍。在4次周期内未收到对端的hello包,将断开与其的邻居关系,删除通过该邻居计算所得路由

8、基础配置

[r1]ospf 1 router-id 1.1.1.1 --- 启动时可以定义进程号和RID。默认进程号是1。
[r1-ospf-1]
[r1-ospf-1]area 0 --- 进行划分区域,将其划入区域0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 ---(OSPF在宣告时,需要使用反掩码,匹配宣告的地址范围)
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.255 ---(反掩码的作用:定义范围)

RID:格式为IPV4地址,全网唯一。RID取名顺序:手工>自动取值。(自动取值:环回接口取最大数值;无环回取物理接口最大数值)

(1)OSPF的宣告特点:

[1] 找到接口并且激活---可以收发OSPF信息

[2] 被选中接口的拓扑信息可以共享给邻接

[3] 进行区域划分:

规则:

a. 星型结构 编号为0为骨干区域(中心),编号大于0为非骨干区域(分支)(非骨干区域直连骨干区域)

b.必须存在ABR(ABR:区域边界路由器。两个接口间互连的设备)

(2)配置完成后,开始工作:

启动配置完成后,邻居间收发Hello包,然后建立邻居关系,生成邻居表

<r1>display ospf peer --- 查看邻居关系
<r1>display ospf peer brief --- 查看邻居简表

邻居关系建立后,关注条件:匹配失败后,保持为邻居关系,仅Hello包周期保活;匹配成功后,可以建立为邻接(毗邻)关系。

邻接关系间,将使用DBD/LSR/LSU/LSACK来获取本地未知的LSA信息,完成本地的LSDB(数据库表)

<r1>display ospf lsdb --- 查看数据库表

当数据库同步完成后,本地基于SPF算法,将数据库转换为有向图,再将有向图转换为树形结构,之后基于树形结构,以本地为起点到达所有未知网段的最短路径,加载到路由表

<r1>display ip routing-table protocol ospf --- 查看OSPF路由

(3)注意事项:

[1] 优先级为10。度量为cost值(cost值=开销值

[2] (OSPF cost = 参考带宽/接口带宽)默认参考带宽为100M

[3] OSPF优选cost值之和最小的为最佳路径;若两条链路cost值相同,则形成等开销负载均衡

若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳,建议修改为默认参考带宽
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
  INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
PS:修改参考带宽,全网须一致

9、拓展配置

(1)DR/BDR(指定路由器/备份指定路由器)选举:是邻居成为邻接关系的条件,与网络类型有关。

网络类型:

a.点到点 – 在一个网段内,只能存在两个节点。 -- (串线链路)

b.MA – 多路访问—一个网段内的节点数量不限制。不是当下连接几个节点,而是该网络类型允许连接多个节点。--(以太网)

邻居成为邻接关系:

(点到点网络邻居关系直接成为邻接关系;在MA网络中,将进行DR/BDR选举。)(dead time 和选举时间相同)

(在一个网段中,仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间的路由器为邻居关系。)

例:一个网络中出现纯粹的邻居关系,至少需要4台路由器

[1] 选举规则:首先比较该网段所有参选设备接口的优先级,越大越优先(默认优先级为1,取值范围0-255,0标识不参选);如果所有参选设备的优先级相同,就比较参选设备的RID,数值大就优先。

[2] 干涉选举:

<1> DR优先级改为最大,BDR优先级次大。-- OSPF选举是非抢占性的,所以在修改完优先级后,需要需要所有路由器重启OSPF进程。

[r1]int g0/0/0 
[r1-GigabitEthernet0/0/0]ospf dr-priority 3 --- 修改接口优先级
<r1>reset ospf process --- 重启OSPF进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y

<2> 将DR优先级改为最大,BDR优先级次大,其他设备修改为0,无需重启进程

(2)区域汇总:-- OSPF协议不支持接口汇总,只能在ABR上将A区域拓扑计算所得路由,共享给B区域时汇总。

[r2]ospf 1
[r2-ospf-1-area-0.0.0.0]ab
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0

以上操作为,R2为一台连接区域0和其它区域的ABR,R2将通过区域0通过拓扑计算所得的路由,传递给其它区域时进行汇总,汇总网段为1.1.0.0/22

(3)被动接口(沉默接口):仅接受不发送路由协议信息,用于连接用户终端的接口,不得用于连接邻居路由器的接口,否则无法建立邻居关系。

[r2]ospf 1
[r2-ospf-1]silent-interface g0/0/0

(4)认证(接口认证):在直连邻居或者邻接的接口上配置,保障更新的安全。

[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
模式(md5)、编号(1)、密码(123456)(都要求邻居间一致)

(5)加快收敛

邻居间计时器:10s Hello time   40s dead time

邻居间,修改本端的hello time,本端的dead time自动4倍关系匹配;但OSPF中邻居间的hello time 和dead time 必须完全一致,否则无法建立邻居关系。

[r1]int g0/0/0
[r1-GigabitEthernet0/0/0] ospf timer hello 5

(6)缺省路由:边界路由器配置后,自动向内网发布一条缺省路由,之后内网设备将自动生成一条缺省路由

[r2]ospf 1
[r2-ospf-1]default-route-advertise always

二、ACL(访问控制列表)

1、作用:

  • 访问控制:在路由器流量进口或者出口的接口上,匹配相应流量产生动作--允许/拒绝
  • 定义感兴趣流量:抓取流量后给其它策略,让其它策略进行工作

2、访问控制的匹配规则:从上往下,逐一匹配。上条匹配按照上条执行,不再查看下条。

(cisco末尾隐含拒绝所有;华为末尾允许所有)

[1] 分类:

  • 标准 --- 仅关注数据包中的源IP地址
  • 扩展 --- 关注数据包中的源IP地址,目标IP地址,目标端口号或协议号

[2] 配置命令:

<1> 标准 --- 标准ACL仅关注数据包中的源IP地址,故调用时尽量靠近目标,避免对其他流量的误删。

[r2]acl 2000 --- 编号2000-2999为标准列表编号,一个编号代表一张表
[r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0
[r2-acl-basic-2000]rule deny source 192.168.0.0 0.0.255.255
                     动作        源IP地址  通配符
[r2-acl-basic-2000]rule deny source any   (any:代表所有)

源IP地址需要使用通配符来匹配范文。通配符和反掩码的区别,通配符可以0与1穿插书写

例:192.168.1.1  0.0.0.128  --->  192.168.1.1  192.168.1.129

ACL定义完成后,必须在接口上调用方可执行。调用时注意方向(方向:inbound outbound),一个接口的一个方向上只能调用一张表。
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]traffic-filter ?
  inbound   Apply ACL to the inbound direction of the interface 
  outbound  Apply ACL to the outbound direction of the interface
[r2-GigabitEthernet0/0/0]traffic-filter outbound acl 2000

<2> 扩展列表配置 --- 扩展ACL源IP地址、目标IP地址均关注,所以调用时尽量靠近源IP,尽早处理流量。

[r1]acl 3000  扩展列表编号 3000-3999 
[r1-acl-adv-3000]rule deny ip source 192.168.1.3 0 destination 192.168.3.2 0
                                      源IP地址                  目标IP地址 

(范围 ---> 主机;主机 ---> 范围)都可以

源IP和目标IP地址,使用通配符0标识一个主机,或使用范围标记段,或使用any均可

<3> 使用扩展列表,同时关注目标端口号

  • 目标端口号:服务端使用注明端口来确定具体的服务
  • ICMP(IPV4) --- Internet控制管理协议。(例:ping)

Telnet --- 远程登录(明文不加密、基于TCP、目标端口23

远程登录条件:

a.被登录设备和登录设备网络可达

b.被登录设备进行了Telnet服务配置

[r1]aaa    (reduce服务器,存储账号密码的服务器)
[r1-aaa]local-user ddd privilege level 15 password cipher 123456
Info: Add a new user.
[r1-aaa]local-user ddd service-type telnet
            创建名为ddd的账号,账号密码为123456,权限最大(15),账号仅用于telnet远程登录
[r1]user-interface vty 0 4
[r1-ui-vty0-4]authentication-mode aaa  在vty线路开启认证
                通过vty接口登录,用aaa账号核实
[r1]acl 3001
[r1-acl-adv-3001]rule deny tcp source 192.168.1.1 0 destination 192.168.1.2 0 destination-port eq 23
                拒绝 192.168.1.1 对 192.168.1.2 访问时,传输层协议为TCP,且目标端口号为23
[r1-acl-adv-3001]rule deny icmp source 192.168.1.1 0 destination 192.168.1.2 0 
                仅拒绝192.168.1.1对192,168.1.2的ICMP访问

附:

IPV4地址中,存在私有与公有IP地址的区别:

公有:具有全球唯一性,可以在互联网通讯,需要付费使用

私有:具有本地唯一性,不可在互联网通讯,不用付费使用

(私有IP地址:10.0.0.0/8  172.16.0.0/16 – 172.31.0.0/16  192.168.0.0/24 – 192.168.255.0/24)

三、NAT(网络地址转换)

1、本质:在边界路由器上,对进、出的流量进入源IP地址或目标IP地址的修改。(边界路由器上,连接外网的公有IP地址所在接口配置

2、特点:内网 ---> 外网(改源IP);外网 ---> 内网(改目标IP)

3、记忆方式:一对一  一对多  多对多  端口映射

(1)一对多:一个公有IP地址对应多个私有IP地址 (PAT端口地址转换)

先使用ACL定义可以被转换的私有IP地址范围
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.0.0 0.0.255.255
(公网所在接口,在ACL2000列表中关注的私有IP地址,通过该接口转出时,源IP地址修改为该接口公有IP)
[r2]int g0/0/2
[r2-GigabitEthernet0/0/2]nat outbound 2000

(2)一对一配置:(连接公网的接口配置)

[r2-GigabitEthernet0/0/2]nat static global 12.1.1.3(公有IP) inside 192.168.1.10(私有IP)

(3)端口映射

[r2-GigabitEthernet0/0/2]nat server protocol tcp global current-interface 80 inside 192.168.1.10 80
                        外部访问该接口IP – 12.1.1.1且目标端口号为80时,将被修改为192.168.1.10 目标端口号为80
Warning:The port 80 is well-known port. If you continue it may cause function failure.
Are you sure to continue?[Y/N]:y
[r2-GigabitEthernet0/0/2]nat server protocol tcp global current-interface 8888 inside 192.168.1.20 80
                        外部访问该物理接口IP -12.1.1.1 且目标端口号为8888时,将被修改为访问192.168.1.20 目标端口80

(4)多对多配置

[r1] nat address-group 1 12.1.1.3 12.1.1.10  先定义公有IP地址范围
[r1] acl 2000 --- 再定义私有IP地址范围
[r1-acl-baisc-2000] rule permit source 172.16.0.0 0.0.255.255  
                    在连接公网的接口上配置多对多
[r1-GigabitEthernet0/0/1] nat outbound 2000(私有范围) address-group 1(公有范围)
[r1-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat ---(变成一对一)多个一对一

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows平台Python编程必会模块之pywin32

在Windows平台上&#xff0c;从原来使用C/C编写原生EXE程序&#xff0c;到使用Python编写一些常用脚本程序&#xff0c;成熟的模块的使用使得编程效率大大提高了。 不过&#xff0c;python模块虽多&#xff0c;也不可能满足开发者的所有需求。而且&#xff0c;模块为了便于使用…

产品未出 百度朋友圈“开演”

ChatGPT这股AI龙卷风刮到国内时&#xff0c;人们齐刷刷望向百度&#xff0c;这家在国内对AI投入最高的公司最终出手了&#xff0c;大模型新项目文心一言&#xff08;ERNIE Bot&#xff09;将在3月正式亮相&#xff0c;对标微软投资的ChatGPT。 文心一言产品未出&#xff0c;百…

[python入门㊿] - python如何打断点

目录 ❤ 什么是bug(缺陷) ❤ python代码的调试方式 ❤ 使用 pdb 进行调试 测试代码示例 利用 pdb 调试 退出 debug debug 过程中打印变量 停止 debug 继续执行程序 debug 过程中显示代码 使用函数的例子 对函数进行 debug 在调试的时候动态改变值 ❤ 使用 PyC…

el-cascader v-model 绑定值改变了,但是界面没变化

查了很多资料&#xff0c;解决办法各异&#xff0c;但以下两个没有用 &#xff08;1&#xff09;this.$forceUpdate()强制更新渲染&#xff0c;没用。 &#xff08;2&#xff09;使用v-if和this.ifPanel false去控制el-cascader的显示&#xff0c;目的也是重新渲染&#xff…

原生小程序中模板自定义组件事件

封装request.js请求文件目的&#xff1a;优化代码结构以及后期项目版本迭代和维护方便&#xff0c;提升代码的执行速度。假设:在原生page中使用基本写法创建ajax请求//发送请求了wx.request({url:"",method:"",data:"",success(res){//写业务操做…

数据分片(mycat)

1. 数据分片概念&#xff1a; 1.1. 分库分表 什么是分库分表&#xff1a; 将存放在一台数据库服务器中的数据&#xff0c;按照特定方式&#xff08;指的是程序开发的算法&#xff09;进行拆分&#xff0c;分散存放到多台数据库服务器中&#xff0c;以达到分散单台服务器负载的…

Vue使用distpicker插件实现省市级下拉框三级联动

前言 这几天做项目&#xff0c;想着用一个全国省市区插件&#xff0c;之前就知道有几种&#xff0c;比如通过JSON文件生成对应的区域下拉框&#xff0c;element-china-are插件&#xff0c;包括distpicker插件 今天主要介绍的是如何使用distpicker插件实现省市级三联跳动 官网…

2023年100道最新Android面试题,常见面试题及答案汇总

除了需要掌握牢固的专业技术之外&#xff0c;还需要刷更多的面试去在众多的面试者中杀出重围。小编特意整理了100道Android面试题&#xff0c;送给大家&#xff0c;希望大家都能顺利通过面试&#xff0c;拿下高薪。赶紧拿去吧~~文末有答案Q1.组件化和arouter原理Q2.自定义view&…

钣金行业mes解决方案,缩短产品在制周期

钣金加工行业具有多品种、小批量离散制造行业的典型特点。一些常见的下料车间、备料车间、冲压车间、冲剪生产线等。一般来说&#xff0c;核心业务是钣金加工的生产单位。 一般来说&#xff0c;与大规模生产相比&#xff0c;这种生产方式效率低、成本高&#xff0c;自动化难度…

ur3+robotiq ft sensor+robotiq 2f 140配置gazebo仿真环境

ur3robotiq ft sensorrobotiq 2f 140配置gazebo仿真环境 搭建环境&#xff1a; ubuntu: 20.04 ros: Nonetic sensor: robotiq_ft300 gripper: robotiq_2f_140_gripper UR: UR3 通过上一篇博客配置好ur3、力传感器和robotiq夹爪的rviz仿真环境后&#xff0c;现在来配置一下对…

【读书笔记】《深入浅出数据分析》第一章 分解数据

阅读第一章后&#xff0c;觉得本章重点不是在“分解数据”上&#xff0c;而是在对分析流程&#xff0c;分析步骤的引导。 1&#xff0c;确定问题 当业务方或者leader给你提诉求时&#xff0c;往往都是会比较模糊&#xff0c;他们会简单的说下诉求&#xff0c;然后给你一些数据…

Spark介绍

1、Spark是什么?类似与Hadoop的MapReduce的计算框架,基于map和reduce实现分布式计算,对比MapReduce可有效减少落盘次数,增加效率.任务之间通信交互不需要落盘,仅在shuffle时需要重新将数据排序分区落盘.Spark的缓存功能更加高效&#xff0c;特别是在SparkSQL中,一般是以列式存…

学习.NET MAUI Blazor(六)、基于OpenAI接口的伪ChatGPT

ChatGPT不用介绍了。自从1月份开始到现在&#xff0c;火的不得了。网络上也充斥着各种教程&#xff0c;甚至还有号称是ChatGPT国内版的。那么ChatGPT到底有么有开放的API接口&#xff0c;那些打着ChatGPT的应用到底是如何实现的呢&#xff1f; 其实&#xff0c;国内环境虽然无法…

day49【代码随想录】动态规划之最长公共子序列、不相交的线、最大子序和、判断子序列

文章目录前言一、最长公共子序列&#xff08;力扣1143&#xff09;二、不相交的线&#xff08;力扣1035&#xff09;三、最大子序和&#xff08;力扣53&#xff09;四、判断子序列&#xff08;力扣392&#xff09;前言 1、最长公共子序列 2、不相交的线 3、最大子序和 4、判断…

C++012-C++一维数组

文章目录C012-C一维数组一维数组目标一维数组定义一维数组初始化一维数组输入输出题目描述 车厢货物**需要查看指定车厢的货物****倒着输出**题目描述 与指定数字相同的数的个数排序选择排序实现题目描述 成绩排名成绩第一名和最后一名在线练习&#xff1a;总结C012-C一维数组 …

推荐几个好玩的AI工具和办公效率网站!

1.copymonkey.ai CopyMonkey可以帮助用户生成和优化亚马逊商品列表文案&#xff0c;分析竞争对手&#xff0c;帮助推动销售。 2.bertha.ai Bertha可以帮助用户使用AI创建高质量的营销文案和图片&#xff0c;同时&#xff0c;帮助客户优化业务流程&#xff0c;提高效率。 3.cr…

UDP端口转发

sokit是一个开源项目&#xff0c;是一个TCP / UDP 测试工具,用来接收,发送,转发TCP或UDP数据包。 项目地址: http://code.google.com/p/sokit/、https://github.com/sinpolib/sokit。 中文版下载地址&#xff1a;https://download.csdn.net/download/android_cai_niao/874728…

LeetCode_动态规划_困难_1326.灌溉花园的最少水龙头数目

目录1.题目2.思路3.代码实现&#xff08;Java&#xff09;1.题目 在 x 轴上有一个一维的花园。花园长度为 n&#xff0c;从点 0 开始&#xff0c;到点 n 结束。 花园里总共有 n 1 个水龙头&#xff0c;分别位于 [0, 1, …, n] 。 给你一个整数 n 和一个长度为 n 1 的整数数…

LC-1326. 灌溉花园的最少水龙头数目(区间合并计算问题 LC-1024、LC-55、LC-45)

区间合并计算问题 文章目录区间合并计算问题[1326. 灌溉花园的最少水龙头数目](https://leetcode.cn/problems/minimum-number-of-taps-to-open-to-water-a-garden/)贪心[1024. 视频拼接](https://leetcode.cn/problems/video-stitching/)[55. 跳跃游戏](https://leetcode.cn/p…

感知数据温度,聚焦海量冷数据存储难题

在信息科技高速发展的背景之下&#xff0c;海量数据已经让拥有者和管理者应接不暇&#xff0c;根据IDC发布的《数据时代2025》预测&#xff0c;全球数据圈&#xff08;数据圈代表每年被创建、采集或是复制的数据集合&#xff09;将从2018 年的32ZB增至2025年的175ZB。2018年&am…