| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络通信安全部分笔记——OSPF理论及实验 -> 正文阅读 |
|
[网络协议]网络通信安全部分笔记——OSPF理论及实验 |
静态路由的缺点:手动添加、比较繁琐,而且没有办法更新路由信息(删除增加路由,旧的路由信息不会主动删除,新的路由信息还需要手动添加),不方便排错。(1~3台设备才会用到静态路由) 动态路由协议可以自动更新学习路由信息——其实有多个协议OSPF、RIP、EIGRP、IS-IS 动态路由的分类: ①距离矢量路由协议:RIP\EIGRP(思科私有,15年之后才变为共有) 类似于一个方向标路牌,指明方向和距离(只有一条路) ②链路状态路由协议:? ?OSPF\IS-IS 类似于地图中有很多路到达目的地,我们可以选择其中最快最近的路径(有多条路) OSPF——开放式最短路径优先协议是一个公有协议,属于链路状态路由协议,是以组播的方式发送。 OSPF组播地址:224.0.0.5? ? ? 224.0.0.6 链路:路由器接口 状态:跟邻居设备之间的关系 优点:保证百分百无环路、收敛快、扩展性、支持认证 大型企业网中:由于每一台路由器都需要学习整个拓扑的路由信息,导致负担过重,通过多区域划分来解决负载过重的问题。 多区域划分: ①骨干区域? ?0(单区域时,必须有骨干区) ②非骨干区域 骨干区域一般都和非骨干区域相连 OSPF状态机制 OSPF中有五个报文 ①HELLO报文(包):用于邻居的发现、建立以及维护 思科 HELLO报文时间——10s(每隔10s会发出一个新的报文,华为一般是30s) ? ? ? ? dead时间——40s(每10s发送一次HELLO报文,如果发送四次了都没有回复,就死掉了) ②DBD:记录数据库摘要信息 ③LSR:链路状态请求报文 ④LSU:链路状态更新报文 ⑤LSack:链路状态确认 首先通过HELLO报文去发现并建立邻居关系,当所有的邻居关系都建立完之后,会把这些关系存到链路状态数据库当中,存进来之后,如果其中某一台路由信息断了,或者加了新的信息,这个时候路由器就会发送链路状态请求报文,请求新的邻居或者某一个邻居关系,看看是否断开或者有新加入的,另外一台路由器就会回复一个链路状态更新报文,在每一步的过程中都会有ack报文确认。 状态: ①Down?本地一旦发出hello包,进入下一个状态 ②ini初始?本地收到的hello包中若存在本地RID,进入下一个状态 什么是RID呢? RID:router ID——就是路由器的ID,是用来唯一标识某台OSPF路由器,在路由器的id在网络当中是唯一的,不能冲突(一般建议使用本台设备的IP作为RID) RID的选举规则:1.手工指定RID(优先级最高) 2.若没有手工指定RID,则优先使用回环口IP地址 3.没有手工指定RID,也没有创建回环口的时候,选择双up物理接口中最大的为RID 手工指定>回环口>物理接口大IP ③2way双向通信 邻居关系建立的标志 ④Exstart预启动 ⑤Exchange准交换 ⑥loading加载 ⑦Full转发 邻接关系建立的标志 到达full状态表示OSPF完全写成功 OSPF三张表邻居表:启用OSPF之后,会加进组播地址224.0.0.5,并且会往组播地址里面发送hello包,处于这个组播中的其他OSPF路由器会接收到来自本台设备发送的hello包,将这个hello包里的RID加到自己的邻居表里面 查看邻居表命令: cisco:show ip ospf neighbor(一般都是在特权模式下查看,想在配置模式下查看前加个do) huawei:display ospf peer brief (display ospf brief——查看OSPF摘要信息) 拓扑表(链路状态数据库LSDB): 包含了收到所有的链路状态通告,OSPF在发送路由更新时,发送的就是链路状态数据库 查看拓扑表命令: cisco:show ip ospf database huawei:display ospf (进程号)lsdb 路由表: 通过链路状态数据库去运行SPF算法得到最优路径(SPF算法——树形结构),然后将最优路径添加到自己的路由表中。 查看路由表命令: cisco:show ip ospf route huawei:display ip routing-table protocol ospf SPF算法OSPF的选路标准,以自己为中心,构建一个最短的路径树 OSPF的选路标准: 1.OSPF的链路代价计算:从源到目的路径上,所有的路由器出站接口开销的总和 2.OSPF接口开销的计算:cost=10^8/接口带宽(单位是BW) DR和BDR的选举机制DR:指定路由器 BDR:备份指定路由器 DRTHOR:其他路由 DR和BDR的信息是相通的,都会加入一个组播地址224.0.0.6。只有在广播多路的访问的环境下才有DR和BDR的概念。(在串行链路中是没有DR和BDR选举机制的) 先选举BDR,然后BDR会自动升级为DR,再选举一台BDR。DR和BDR的选举必须是在同一个网段。(类比与太子上位成皇上,立新的太子,太子和皇上的选举必须是在同一个国家) DR的选举:非抢占的(太子得等皇上死了之后才能上位) 2:如果有回环口,选择回环口最大的IP地址的路由器作为本网的DR。 3:如果没有回环口,会选择物理端口最大的IP的路由器作为本网的DR. ?优先级>回环口>RID OSPF基本配置新建拓扑(ensp华为模拟器和CPT) ensp华为模拟器先将接口ip全部配置好 ?[Huawei]ospf 接进程号XXX?//启用ospf进程号为XXX——如图,进程号范围为1——65535 ?我们先来配置R1↓ ?[Huawei]ospf 110 ?//启用ospf,进程号为110 ? ?需要将信息通告到某一个区域,首先需要进入那个区域 [Huawei-ospf-110]area 0 ? //进入骨干区域(0表示骨干区域) [Huawei-ospf-110-area-0.0.0.0]network 12.12.12.0 0.0.0.255 ?//通告直连路由的路由信息(注意,是直连网段)? ? ?network后接直连的网段? ? 以及其网段对应的反掩码,所谓反掩码就是子网掩码取反得到的,简单来说就是转换成二进制之后0变成1,1变成0. 接着再来配置R2 注意这里的进程号是可以选择和R1同一个进程号的,没有说进程号一定要唯一匹配? R2有两个直连网段,要注意两个直连网段都要通告 ?R3的配置同理R1,不再赘述 配置完成之后实现R1和R3的通信 [Huawei]ospf 110 router-id 1.1.1.1 ?//手工指定RID <Huawei>reset ospf process ?//清除ospf进程 (注意这里是在用户模式下的命令) 思科CPT新建拓扑 首先第一步还是去配置各个端口的ip地址,注意再注意,配置各个端口ip地址的时候顺便把no shutdown打开端口,?思科跟华为不同,默认端口都是关闭的。 配置与华为有些许差别。
同理配置R1,R2 ?查看R1的拓扑表,观察到R1的RID为23.23.23.2,在同一台路由器R1上,R1左边的接口ip为12.12.12.2,由于23.23.23.2更大,所以作为R1的RID。这里注意,RID的选举是在同一台设备上进行比较的,而不是在一条链路中比较,R1的RID是通过左右两个端口的IP地址比较得到的,R0和R2都只有一个端口,那么那个端口的IP地址就是他们的RID。而DR是在链路中比较的,例如这个拓扑,R1的右端是23.23.23.2,R2是23.23.23.3,所以这条链路当中,就选择23.23.23.3作为DR,另外一条链路一个是12.12.12.1,还有一个是12.12.12.2,选择12.12.12.2作为DR,图中可能因为小bug导致显示12.12.12.1为DR Router#sh ip ospf database——查看拓扑表 Router#show ip ospf neighbor——查看邻居表 我们想更改DR可以选择改变优先级或者手工指定rid(是先比较优先级再比较rid的) 企图手工指定rid,提示需要先清空OSPF进程 Router(config)#router ospf 110 Router(config-router)#router-id 1.1.1.1 ?//手工指定rid? (要先进入进程号) DR选举是非抢占的,当DR没有消失的时候,尽管你更改了rid,依旧没有用,这就是清除OSPF进程的作用,可以理解为重新选举DR,这个时候更改了的rid才能够派上用场。 OSPF实验依照拓扑图新建拓扑 华为(ensp)?R3和R4之间像闪电一样的线表示串行线。本次实验不要关闭日志,后面做ospf需要看日志提示。 用Serial线连接Serial口,Serial表示串行链路? 交换机暂时还没有讲到,不需要做配置,连上去就好 配置R1: 配置R2: ? ? ? ? ? ? ? ? 另一个接口作为PC1的网关 ? ? ? ? ? ? ? ? ?? 配置R3: ? ? ? ? ? ? ? ?? 配置R4:? 另一个接口作为PC2的网关 ? 略 ?R1: R2: ?R3: ?R4: ?配置R1: ?注意R1只需要通告一次,R2和R3都需要通告两次,配置略。 实验需求:在R4上使用接口级命令的方式启用OSPF ?[Huawei-Ethernet0/0/0]ospf enable 110 area 0——接口级命令的方式启用OSPF 注意了,这里是先进入接口,然后再启用OSPF,常规的router ospf启用方法是,选择进程号——area 0进入骨干区——network写直连网段信息 为什么用接口级命令的方式启用OSPF,不用通告直连网段的信息呢? 因为在接口上他会直接把接口上的ip直接通告进去 如果是思科的设备,这个时候就已经启用成功了,PC1已经可以实现和PC2的通信。但是华为设备不行。 还需要创建进程——配置骨干区域,相当于进入端口启用OSPF起到了,省略了通告直连网段信息的步骤,但前两步还是不能省略。? 查看邻居表: ?观察到R1的RID为192.168.123.1,不应该是回环口优先,应该是1.1.1.1才对嘛?因为我们回环口没有通告进ospf中。同时下面的Neighbor id对应的应该是2.2.2.2和3.3.3.3,其实就是出了bug。 通告回环口,同理去通告R2,R3,R4的回环口。? 通告完之后要reset ospf,这里提到一下undo?ospf?110?和reset?ospf?process的区别问题 undo就是把这个ospf删掉,reset就是清除进程,原来在ospf区域当中选举出了DR和BDR,reset就是把选举环节中间的缓存清除,恢复成一开始刚配置OSPF的一个状态,然后重新选举DR和BDR。 ?结果我们发现最后RID还是192.168.123.1,这边借用一下大佬的回答 ?查看拓扑表: 会发现在同一区域中的设备,拓扑表基本都差不多,只发现age值不一样,因为不同设备启用ospf的时间不一样,先启用的age值就会更大。 查看路由表: 后接protocol ospf表示限制只看ospf的路由表,也可以不加。 直接display ospf brief 在串行链路中,不参与DR和BDR的选举,只有在广播多路访问中才会出现DR和BDR的选举。 查看邻居表,链路状态数据库等等都可以,略。 display ospf brief 观察到R3是DR。? 观察到R2是DROther。? 观察到R1是BDR。? 这里依旧出现了一个小bug,如果优先级相等,而且没有回环口的情况下DR——BDR——DOther是按RID大小往下排,所以这里的BDR应该是R2才对。但没关系,ensp的bug就是很多,隔一段时间重新display一下路由器都能发现有些配置变了。 想让R2成为DR,两种办法——更改优先级和指定RID。我们先来尝试更改优先级。 ?[Huawei-Ethernet0/0/0]ospf dr-priority 优先级设置——更改优先级 现在R2成为DR,我们还想让R3成为BDR。 ? ? 如图,再把R3的优先级改成50,50也比本来的10来的大,现在正常情况下,DR是R2,BDR是R3。 我们发现DR还是R3,因为之前提到的,DR的选举是非抢占的,所以必须要先把前面的数据清零,重新选举。 reset ospf process——注意是在用户模式下的命令。 还有一个注意点,我们修改了R2和R3的优先级,需要分别在R2和R3 reset。 一致,自己去看,略。 配置R2: 提示显示,你需要restart ospf进程才可以,就是之前提到的reset。 ?[Huawei]ospf 110 router-id 1.1.1.1 ?//手工指定RID ?<Huawei>reset ospf process ?修改成功。R3同理。 新增路由器,配置ip地址,再通告直连网段。小细节,R5和R1,R6和R4都要通告,不要仅通告R5和R6。 测试联通成功。 这项实验目的主要就是让你感受动态路由比静态路由方便的地方。?
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:19:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |