ENSP实验:MGRE+OSPF综合实验

一、原理简介

NBMA(非广播多路访问)

MGRE:

多点GRE,GRE的扩展配置,归类于虚拟的NBMA网络

所有节点存在同一个MA网段:并且位中心到站点结构,该结构中,默认仅中心站点需要固定公有IP地址,分支站点地址可变化—降低管理难度和资源占有量以及成本

在一个MGRE虚拟私有网段下,如果所有节点都通过手写NHRP映射,则所有物理节点的IP地址都要假设是不变化的

NHRP协议(下一跳发现协议)

作用:帮助实现动态的下一跳(Next Hop)解析。通常用于在一个虚拟私有网络(Virtual Private Network,VPN)中实现点到点或点到多点的通信。

存在服务端和客户端,服务端需要固定的公有IP地址,客户端IP地址可变,客户端在本地公有IP变化后,主动向服务端进行注册,服务端生成映射表MAP,MAP记录客户端的公有IP与TUNNEL接口的IP地址的映射关系。若其他客户端需要访问另一个客户端,可以到服务端下载该MAP

[R1]interface Tunnel 0/0/0 #创建隧道接口
[R1-Tunnel0/0/0]ip add 192.168.3.1 24 #给隧道接口配置IP地址
[R1-Tunnel0/0/0]tunnel-protocol gre p2mp #配置隧道接口的封装协议是MGRE
[R1-Tunnel0/0/0]source 14.1.1.1 #封装之后加上的源IP地址,该IP地址就是公有的IP地址
[R1-Tunnel0/0/0]nhrp entry multicast dynamic #使得R1成为NHRP服务器,所有NHRP客户端外部公有IP地址发生变化时都要找R1进行报备
[R1-Tunnel0/0/0]nhrp network-id 100 #NHRP客户端的NHRP编号要和服务端的编号一致时才能协同工作,默认就是一样的都在一个服务组

[R1-Tunnel0/0/0]nhrp entry multicast dynamic 的真正意思:打开伪广播功能,使得本机收到的下一跳注册信息能伪广播出去,也就是说本机在伪广播的时候会广播到每一个nhrp peer表中字段type为dynamic的条目所对应的路由器上。“别人让我生成的映射,我发伪广播的时候会广播到你”

[R2-ISP]interface Tunnel 0/0/0
[R2-ISP-Tunnel0/0/0]ip add 192.168.3.2 24
[R2-ISP-Tunnel0/0/0]tunnel-protocol gre p2mp
[R2-ISP-Tunnel0/0/0]source s4/0/0 #被服务端上的公有IP地址会变化,所以此时应该写固定的物理接口名
Aug  2 2023 21:54:45-08:00 R2-ISP %%01IFNET/4/LINK_STATE(l)[0]:The line protocol
IP on the interface Tunnel0/0/0 has entered the UP state.
[R2-ISP-Tunnel0/0/0]nhrp entry 192.168.3.1 14.1.1.1 register #告诉本机NHRP服务器在哪,第一个IP地址是NHRP服务器在TUNNEL口的IP地址,第二个IP地址是NHRP服务器在公网的IP地址,同时添加一条映射
[R2-ISP-Tunnel0/0/0]nhrp network-id 100 # 加入NHRP服务器规定的服务组号

查看NHRP表:display nhrp peer

手写NHRP映射: nhrp entry 192.168.1.1 14.1.1.1

[R2-ISP-Tunnel0/0/0]nhrp entry 192.168.3.1 14.1.1.1 register 这条命令除了告诉NHRP服务端要生成一条下一跳到自己的映射还有一个作用—打开本接口的伪广播功能(没有伪广播,OSPF就无法正常建立邻居关系)

nhrp参考网站

MGRE拓扑结构的几种分类:

中心站点式:

假设有三台路由器,其中一台作为中心站点,其上有固定的公有IP地址,其余两台路由器(不固定的IP地址)应该向中心站点注册自己的动态IP地址nhrp entry 私有IP地址 当前公有IP地址 register 这种模式会导致非站点路由器之间无法在运行RIP或OSPF的时候共享信息,在RIP上组播更新不到,在OSPF上达不到邻居状态

全联通式:

一个网段内所有节点均可进行伪广播,要求所有内部节点的公有IP地址是固定的。假设有三台路由器1,2,3。2和3分别向1注册然后1打开伪广播功能,然后2再向3注册然后3打开伪广播功能

部分网状结构:

有多台路由器,只有部分路由器的公有IP地址是固定的

OSPF基础回顾

概述

全称:开放式最短路径优先协议

**链路状态协议:**无类别链路状态型路由协议,通过交换链路状态信息来构建网络拓扑。每个OSPF路由器都会维护一个链路状态数据库(Link State Database),其中包含了整个网络的链路状态信息。

路由计算: OSPF使用Dijkstra算法来计算从一个路由器到其他所有路由器的最短路径,这些最短路径构成了路由表。OSPF考虑了链路的带宽、延迟、可靠性等因素,以选择最佳的路径

分区: 为了提高网络的可伸缩性,OSPF网络可以划分成多个区域(Area)。每个区域都有一个Area ID,并且至少有一个主干区域(Backbone Area)。这种分区机制可以减少路由器之间交换的链路状态信息的量,从而降低网络的复杂性

Hello协议: OSPF使用Hello协议来维护邻居关系,路由器通过周期性地发送Hello消息来发现邻居,并确保邻居关系的稳定性

开销度量: OSPF使用开销(Cost)来度量链路的性能。开销值是一个表示链路“代价”的数值,通常与链路带宽成反比。较低的开销意味着该链路更具有吸引力,更可能成为最短路径的一部分

认证: 为了增强网络的安全性,OSPF支持对邻居关系进行认证。通过配置认证,可以确保只有授权的路由器才能建立OSPF邻居关系,防止未经授权的路由器加入网络

快速收敛: OSPF能够快速地适应网络拓扑的变化,支持快速收敛。当网络发生故障或拓扑变化时,OSPF可以快速更新路由信息,使数据包能够快速找到新的最佳路径

OSPF的默认版本就是版本2

组播更新,更新地址224.0.0.5和224.0.0.6

由于链路状态型协议基于拓扑信息进行交互,其交互量巨大,导致协议无法正常在中大型等复杂环境中工作,OSPF协议在使用时需要进行结构化的部署来适应中大型网络,以下是两种结构化部署

  1. 良好的ip地址规划
  2. 区域划分(OSPF协议中有rip的特点,ls[链路状态]协议中有dv[距离矢量]的特征)

支持触发更新,每隔半个小时进行一次周期更新

ospf的管理距离在cisco中是110,在华为中是10

一、OSPF的数据包

 

OSPF所有包都是这个格式

OSPF所有包都是这个格式

跨层封装于3层报头 协议号89

hello包

周期收发,用于邻居的发现、关系的建立、确定邻的存活。携带router-id。周期的保活时间是10s或30s

 

Untitled

打*的字段是邻居间hello包中必须完全一致的参数,否则无法建立邻居关系

hello and dead intervals: hello时间和死亡时间

area id: 两台路由器上在一条网段上的area id必须相同,否则建立不了邻居关系

authentication password: 认证密码

stub area flag:末梢区域标记

hello包中的netmask是否出现取决于厂商,在华为设备中,邻居间hello包上会携带建邻接口的ip地址子网掩码,必须和邻居的一致

DBD包

数据库描述包,用于携带本地的链路状态数据库的目录

DBD包中携带接口的MTU值,要求两端接口MTU一致,否则将卡在exstart状态。华为设备默认不携带MTU值

[interface]ospf mtu-enable 在直连接口的两端开启mtu携带选项

DBD包中的描述位:

I:为1表示本地发出的第一个DBD包

M:为0表示本地发出的最后一个DBD

MS:为1表示本地为主,为0表示本地为从,自己一般认为自己是主

DBD使用序列号来进行隐性确认,这就是为什么抓包时会看到两个值为0(0 0 0)的包,第一个是主A发的最后一个DBD,随后一个0包是从对主最后一个DBD包的回应

几种可能的组合:

I M MS含义
1 1 1本地发出的第一个DBD包
0 1 1不是本地发出的第一个DBD包而且本地是主
0 1 0不是本地发出的第一个DBD包而且本地是从
0 0 1本地发出的最后一个DBD包且本地是主
0 0 0本地发出的最后一个DBD包且本地是从

LSR包

链路状态请求,用于向对端询问查询

LSU包

链路状态更新,携带LSA具体信息,LSA叫做链路状态通告,具体的拓扑或路由信息

LSACK包

链路状态确认

二、OSPF的状态机

状态机指两台路由器之间产生的各种关系

 

down

双方没有交集,一旦接收到对方的hello包,进入下一个状态

init

接收到对端的hello包,且该包中存在本端的RID,进入下一个阶段

two-way

双向通讯,邻居关系建立的标志

OSPF建邻条件(两个接口成为邻居关系的条件取决于HELLO包的各参数是否相同)

1、hello包中的hello time和dead time一致

2、认证

3、特殊区域标记

4、区域编号

5、接口上的掩码

从邻居关系建立成为邻接关系的条件

条件需要关注网络类型:

  • 点到点网络:所有的邻居关系均会建立为邻接关系
  • MA网络:若两两间均建立邻接关系,将可能出现大量的重复更新;DV距离矢量路由协议可以使用接口水平分割来解决,由于OSPF协议邻接需要数据库比对,所以不能设计水平分割(有区域之间的水平分割),所以只能进行DR/BDR选举;所有非DR/BDR之间仅建立邻居关系,不进行数据库同步,避免了重复更新;

exstart

预启动,使用不携带数据库目录信息的DBD包进行主从关系的选举(注意:主从关系的选举是在OSPF区域内部选举的),RID数值大为主,优先进入下一个状态机,DBD报文的序列号在此状态下决定。而且要避免同时更新以避免网络拥塞.exstart在选择主从关系,邻居关系才会用hello包

选举规则:

先比较所有参选接口的优先级,默认为1,大优,取值范围0-255,0则表示不参选;若优先级相同比较参选设备的router-id,数值大优;

通过修改参选接口的优先级,可以干涉选举:

切记:该选举非抢占,在修改优先级后,必须手工重启所有参选设备的OSPF协议,才能重新进行选举;

<r1>reset ospf process

注:若参选接口的优先级为0,表示退出选举,无需重启进程;

[r2]interface Eth0/0/0

[r2-Ethernet0/0/0]ospf dr-priority 2

exchange

准交换,使用携带数据库目录的DBD包进行目录共享

loading

加载,查看完对端的DBD目录后,基于本地未知的LSA,使用LSR向对端查询,对端使用LSU进行应答,最后本端收到LSA后,需要使用LSACK进行确认。邻接之间的链路状态数据库一致后进入full状态

full:

邻接关系建立的标志

三、OSPF的工作过程

启动OSPF协议后,邻居间通过收发hello包认识对端,建立邻居关系,生成邻居表;邻居关系建立之后将进行条件匹配,匹配失败将维持邻居关系,仅hello周期保活即可;条件匹配的邻居将进一步发展为邻接关系,过程中使用DBD交互数据库目录,使用LSR和LSU以及LSACK来获取本地未知的LSA信息,完成数据库表的同步

之后本地基于本地完整的数据库,生成有向图,再将有向图转换为最短路径树,之后以本地为起点计算到达所有未知网段的最短路径,然后将其加载到本地的路由表中

收敛完成之后,每10s,邻居或邻接间周期使用hello包保活,每30min邻接关系周期比对一次数据库目录,查漏补缺,拓扑结构突变:

四、OPSF的基础知识

基础配置命令

[r1]ospf 1 router-id 1.1.1.1 启动时,可以定义进程号码,还可以定义RID,RID使用IPV4地址,全网需要唯一(不同区域的路由器也需要有唯一的Router ID。这是因为OSPF在整个自治系统(AS)范围内使用Router ID来唯一标识每个路由器)进程号默认为1;

[r1-ospf-1]area 0 创建区域0 [r1-ospf-area-0.0.0.0]network 1.1.1.1 0.0.0.0 将ip地址是1.1.1.1的接口纳入区域0.0.0.0,当反掩码部分为0.0.0.0时,则1.1.1.1就是一个精确的可用ip地址

宣告配置全部完成之后,邻居间周期组播收发hello包,建立邻居关系,生成邻居表

区域划分规则:

  1. 星型结构:中心骨干区域编号为0,大于0为非骨干区域,所有非骨干区域必须连接到骨干区域
  2. 必须存在ABR:区域边界路由器,ABR两个接口所宣告的接口所属的区域不同,一个ABR推荐连接两个区域,三个区域以上将导致不稳定

display ospf peer 查看ospf邻居表

display ospf peer brief 查看简略的ospf邻居表

display ospf lsdb 查看链路状态数据库

路由器类型

区域内路由器所有接口属于同一个OSPF区域
区域边界路由器可以同时属于两个以上的区域,其中一个必须是骨干区域,且在骨干区域内至少有一个状态为full的邻居
骨干路由器设备至少有一个接口属于骨干区域
自治系统边界路由器与其他AS交换路由信息的设备称为ASBR。
ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR

OSPF的cost值

华为ospf生成路由的优先级为10,度量为cost值

cost=开销=参考带宽/接口带宽,默认参考带宽为100m

当接口带宽大于参考带宽,则计算结果应向上取整

如何查看参考带宽:

修改参考带宽:bandwidth-reference 1000 单位一般为Mbit/s,且全网需要修改为一致,每个路由器都要改,进入ospf视图之后修改

ospf协议选择整段路径cost值最小的路径

DR和BDR的选举

在OSPF(Open Shortest Path First)协议中,只有广播网络(Broadcast Network)和非广播多点(Non-Broadcast Multiaccess,NBMA)网络类型的接口才能参选DR(Designated Router)和BDR(Backup Designated Router)。

  1. 广播网络:在广播网络中,每个网络节点都可以直接与其他节点通信,如以太网(Ethernet)网络。在广播网络中,OSPF的DR/BDR选举过程会发生。所有的OSPF路由器在这种网络类型上都会进行选举,其中选举出的DR负责向其他非DR路由器发送LSA(Link State Advertisement),以降低OSPF网络上的LSA交换流量。
  2. 非广播多点(NBMA)网络:NBMA网络是指不支持广播或多播的网络,在NBMA网络中,由于缺乏广播特性,DR/BDR的选举不会自动发生。因此,需要手动配置DR/BDR来减少LSA交换。

其他类型的网络接口,如点对点(Point-to-Point)接口和点对多点(Point-to-Multipoint)接口,并不会进行DR/BDR选举。这是因为在这些类型的接口上,只有两个端点或多个预配置的对等点,不涉及广播特性,所以不需要进行DR/BDR选举来减少LSA交换。

选举规则

DR/BDR的选举是基于接口的

接口的DR优先级越大越优先。默认为1,数值越大越优,取值范围0-255接口的DR优先级相等时,router ID越大越优先。

接口DR优先级为0,表示不参与选举,router priority最大不一定是DR/BDR

在P2P网络及P2MP网络上具有邻居关系的路由器之间会进一步建立邻接关系。但在广播型及NBMA网络上,非DR BDR路由器之间只能建立邻居关系,不能建立邻接关系。非DR/BDR路由器与DR/BDR路由器之间会建立邻接关系,DR与BDR之间也会建立邻接关系

通过修改参选接口的优先级可以干涉选举 [r1-Ethernet0/0/0]ospf dr-priority 2 在运行ospf协议的路由器上的已经被ospf选中激活的接口上配置

该选举非抢占,在修改优先级之后,必须手动重启所有参选的 reset ospf process

DR和BDR的选举需要注意以下四点:

1、只有在广播或NBMA类型接口时才会选举DR,在点到点或点到多点类型的接口上不需要选举DR。

2、DR是指某个网段的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。

3、若DR、BDR已经选择完毕,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。

4、DR并不一定就是DR优先级最大的路由器;同理,BDR也并不一定就是DR优先级第二大的路由器。

router-id如何确定

  • 通过手工定义一个任意的合法router-id,例如 ospf 1 router-id 1.1.1.1
  • 华为交换机可能使用最大的vlanif的ip地址作为router-id
  • 如果配置了loopback接口,则从loopback接口中选择最大的ip地址作为router-id
  • 如果未配置loopback接口,则在其他接口的ip地址中选取最大的ip地址作为router-id

数据库表

<R1>display ospf lsdb router [Link State Id] 查看数据库表的某一个条目

当邻接关系间数据库同步完成后,本地基于数据库中的所有LSA生成有向图—》最短路径树—》将本地作为起点计算到达所有未知网段的最短路径,然后将其加载到路由表中

拓扑结构突变

新增网段:

直连新增网段的设备使用LSU直接向本地所有邻接的设备进行触发更新,对端需要确认

断开:

与新增是一样的

无法沟通:

若两台路由器中间有交换机,触发更新包在死亡时间结束之前没有到来,则死亡时间一到,就删除对方给本机的所有链路信息并断开邻居关系 dead timer为hello time的四倍。

在OSPF中dead time默认是hello time的四倍,而hello time是10s,所以dead time是40s

五、OSPF接口网络类型

ospf协议在不同网络类型的接口上,不同的工作方式

查看OSPF接口工作类型:[r1]display ospf interface 接口名

查看OSPF在接口上的工作类型

OSPF接口类型与对应的工作方式表:

接口类型OSPF工作方式
loopback华为虽然显示P2P,实际上是环回专用工作方式,不会发送hello包,环回网段被OSPF最后加载到路由表的时候其子网掩码都是32位,这样设计说明环回网段实际上就是一个虚拟接口。但是RIP传递的就是一个网段了
点到点类型(HDLC\PPP\GRE)p2p,hello times10s,死亡时间是hello时间的4倍,不选DR\BDR,邻居之间建立邻接关系,当以p2p为工作方式的接口收到两台路由器发来的不同hello包时只能选择与其中一个建立邻接关系,与另一个只能到init状态
以太网接口(BMA)Brodcast,hello times 10s ,死亡时间是hello时间的4倍,选DR\DBR,非DR\BDR之间建立邻居关系
NBMA(MGRE)默认和GRE一样接口工作方式为P2P,该工作方式在华为设备上仅和最先收到的hello包建立邻居关系。故在MGRE环境下,需要手工修改接口工作方式为brodcast,[t0/0/0]ospf network-type brodcast 而且要将内网的所有节点的工作方式都改成一样。注意:p2p和broadcast两种工作方式的hello time均为10s,故可以建立邻居关系,但p2p接口不参选DR\BDR导致无法正常交流LSA;切记:邻居间接口OSPF接口的工作方式必须一致才能正常建邻正常收敛

全连网状:一个网段内所有节点均可进行伪广播

部分网状:一个网段内有部分节点可进行伪广播

星型拓扑:中心到站点

若将MGRE下所有接口的工作方式修改为broadcast,需要关注拓扑结构:

1、全连网状结构:可以正常工作,正常选举

2、非全连结构:管理员手工合理安排DR位置

3、星型结构:仅中心站点为DR,无BDR,除了中心站点,其余路由器接口不要参选了(将优先级设为0)

二、ENSP仿真实验概述

ensp的介绍

"ENSP"是华为企业级网络设备模拟器(Enterprise Network Simulation Platform)的缩写。它是华为公司提供的一款网络仿真软件,旨在帮助网络管理员和工程师在虚拟环境中规划、配置和测试企业级网络设备和拓扑。

以下是ENSP的一些主要介绍和功能:

  1. 网络拓扑模拟:ENSP允许用户在虚拟环境中构建复杂的企业级网络拓扑。用户可以添加和连接不同类型的虚拟设备,例如华为路由器、交换机、防火墙等,并设置它们之间的链路和端口属性。
  2. 设备模拟:ENSP提供华为企业级网络设备的模拟器,可以模拟华为的不同系列路由器和交换机。这样,用户可以在没有实际硬件设备的情况下,通过软件模拟真实设备的功能和特性。
  3. 配置和管理:用户可以通过ENSP对虚拟设备进行配置和管理。可以设置设备的接口、IP地址、路由协议、VLAN、安全特性等等,就像在真实设备上进行配置一样。
  4. 网络测试:ENSP支持模拟各种网络测试场景,如故障排除、负载均衡、链路聚合、网络性能测试等。用户可以在虚拟环境中模拟这些场景,以评估和优化网络的性能和稳定性。
  5. 学习和培训:ENSP是一个非常有用的教学工具,特别适合学生和网络工程师用于学习和实验华为设备的配置和操作。它可以提供一个安全的实验环境,让用户在不影响真实网络的情况下学习和实践。
  6. 版本支持:ENSP支持多种华为设备的模拟,包括不同型号和操作系统版本。这使得用户可以根据自己的需求选择合适的设备进行模拟和测试

ensp的安装

依次安装VirtualBox(版本5.2.26)、WinPcap(版本4.1.3)、Wireshark(版本:1.12.4)、ensp(版本:1.3.00.100)

三、实验要求

 

Untitled

四、实验步骤

按照实验要求的图配置好所有IP地址

创建环回接口:[R1]interface Lookback 0

进入接口视图:[R1]interface g0/0/0

添加IP地址:[R1-GigabitEthernet0/0/0]ip address x.x.x.x x

配置所有路由器到ISP路由器R6的缺省路由

目的:使得内部的公网上的接口实现底层互通

R1上到R6要写两条缺省路由,以达到负载均衡的效果

[R1]ip route-static 0.0.0.0 0 24.1.1.1
[R1]ip route-static 0.0.0.0 0 14.1.1.1
[R5]ip route-static 0.0.0.0 0 34.1.1.1
[R4]ip route-static 0.0.0.0 0 44.1.1.1
[R3]ip route-static 0.0.0.0 0 54.1.1.1
[R2]ip route-static 0.0.0.0 0 64.1.1.1

配置R1\R2\R3组成的星型MGRE结构

配置三台路由器的tunnel接口并分配虚拟私有网络的ip地址,设置tunnel接口的封装类型为点到多点p2mp,在中心站点R1上声明自己的固定ip地址,在其他路由器上声明自己的物理接口,并向NHRP服务端注册自己的映射关系的同时开启伪广播功能

[R1]interface t0/0/0 #创建tunnel接口
[R1-Tunnel0/0/0]ip add 192.168.1.1 24 #为接口分配虚拟私有网段的IP地址
[R1-Tunnel0/0/0]tunnel-protocol gre p2mp #设置接口的封装类型为MGRE封装
[R1-Tunnel0/0/0]source 14.1.1.2 #声明该接口在公网上的IP地址
Aug  5 2023 12:01:28-08:00 R1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP 
on the interface Tunnel0/0/0 has entered the UP state. 
[R1-Tunnel0/0/0]nhrp entry multicast dynamic #开启伪广播(在OSPF协议中hello包的组播更新必须开启此功能)的同时使得本机收到的下一跳注册信息能伪广播出去,也就是说本机在伪广播的时候会广播到每一个nhrp peer表中字段type为dynamic的条目所对应的路由器上
[R2]interface t0/0/0 #创建tunnel接口
[R2-Tunnel0/0/0]ip add 192.168.1.2 24 #为接口分配虚拟私有网段的IP地址
[R2-Tunnel0/0/0]tunnel-protocol gre p2mp #设置接口的封装类型为MGRE封装
[R2-Tunnel0/0/0]source g0/0/0 #NHRP被服务端上的公有IP地址会变化,所以此时应该写固定的物理接口名
Aug  5 2023 12:07:18-08:00 R2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface Tunnel0/0/0 has entered the UP state.
[R2-Tunnel0/0/0]nhrp entry 192.168.1.1 14.1.1.2 register #向NHRP服务端注册自己的公有IP地址和私有IP地址的映射关系(以后公有IP地址变化后确保新的映射关系可以反映给NHRP服务端),告诉NHRP服务端要生成一条下一跳到自己的映射,同时开启自己的伪广播功能
[R3]interface t0/0/0
[R3-Tunnel0/0/0]ip add 192.168.1.3 24
[R3-Tunnel0/0/0]tunnel-protocol gre p2mp
[R3-Tunnel0/0/0]source g0/0/0
Aug  5 2023 12:14:43-08:00 R3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface Tunnel0/0/0 has entered the UP state.
[R3-Tunnel0/0/0]nhrp entry 192.168.1.1 14.1.1.2 register

目前的效果:虚拟私有网段192.168.1.0/24内部互通了,但是三台路由器上的环回网段还没有互通,所以要在三台路由器上运行OSPF使得三个环回网段可以互相ping通

在MGRE上使用OSPF

1、在三台路由器上分别启动OSPF进程并使其在一个区域area0,并且宣告的时候要注意每个路由器宣告两个网段,一个是自己的环回网段,一个是自己连接的虚拟私有网段192.168.1.0/24

[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 192.168.11.1 0.0.0.0
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 192.168.66.1 0.0.0.0
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 192.168.55.1 0.0.0.0

目前的效果:由于R1已经开启了伪广播功能,所以可以正常给R2和R3发送HELLO,而且由于R2和R3先前也通过向R1注册的方式开启了伪广播功能。此时通过查看ospf peer 表可以得知R1和R2处于邻接状态,可以正常交换LSA,但是在R3上查看OSPF邻居表时发现R3知道了R1但处于init状态,说明R3收到了R1发送的hello包但是R3并没有回复或者回复了但是R1没有收到,实际上这和OSPF接口工作方式有关系,目前三台路由器上的tunnel接口的type属性是P2P(查看OSPF接口的工作方式命令: display ospf interface tunnel 0/0/0),而P2P的工作方式决定了R1在收到两台路由器发送来的hello包时只能选择其中一个建立邻接关系,所以R2和R3都向R1发送了hello包,但是R1只选择和R2建立了邻接关系且不会理会另一个hello包导致R3得知了R1的存在,此时应该修改所有接口的工作方式为以太网接口的工作方式Broadcast

[R1-Tunnel0/0/0]ospf network-type broadcast 修改OSPF在此接口上的工作方式为Broadcast使得其接口可以和其他接口建立多个邻接关系

在将R1\R2\R3上的三个t0/0/0接口上的ospf 接口工作方式修改为broadcast后,效果为:R1和R2以及R3均建立了邻接关系(full状态)但是R2和R3完全不知道对方的存在,为了使得R1成为BR,应该关闭R2和R3的接口参选资格,因为R2和R3完全不知道对方的存在会导致DR和BDR的选举混乱,如下图:

 

Untitled

可以看到R1成为了BDR,而一个OSPF区域中最好只有一个DR即可,而R1是成为DR的最佳选择,因为其为中心站点,此时修改R2和R3的t0/0/0接口的参选优先级

[R2-Tunnel0/0/0]ospf dr-priority 0

[R3-Tunnel0/0/0]ospf dr-priority 0

此时查看R1,R2,R3的ospf邻接表:

Untitled

Untitled

 

 

Untitled

可以看出三台路由器中只有R1是BR,达到了我们想要的结果

接下来我们查看三台路由器的路由表,观察三台路由器是否都学习到了各自的环回网络段:

 

Untitled

 

可以观察得到三台路由器都学到了各自的环回网段,此时该虚拟网段的环回网段之间就互通了,如下图(演示了R1的环回ping R2的环回)

 

Untitled

配置R1\R4\R5组成的全连MGRE结构

配置右侧的全连型虚拟私有网段

OSPF运行在全连型的虚拟私有网段中时,所有接口都会至少建立邻居关系

配置三台路由器的tunnel接口并分配虚拟私有网络的ip地址,设置tunnel接口的封装类型为点到多点p2mp

[R1]interface t0/0/1
[R1-Tunnel0/0/1]ip add 192.168.2.1 24
[R1-Tunnel0/0/1]tunnel-protocol gre p2mp
[R1-Tunnel0/0/1]source 24.1.1.2 #因为IP地址固定了,所以可以写固定的公有IP地址
[R5]interface t0/0/0
[R5-Tunnel0/0/0]ip add 192.168.2.2 24
[R5-Tunnel0/0/0]tunnel-protocol gre p2mp
[R5-Tunnel0/0/0]source 34.1.1.2
[R4]interface t0/0/0
[R4-Tunnel0/0/0]ip add 192.168.2.3 24
[R4-Tunnel0/0/0]tunnel-protocol gre p2mp
[R4-Tunnel0/0/0]source 44.1.1.2

因为在全连型中,所有公网IP地址都是固定的,可以在三台路由器上各自手写到其他路由器上的NHRP映射,也可以动态注册,这里采用动态注册的方式实现

R4和R5分别向R1注册:

[R5-Tunnel0/0/0]nhrp entry 192.168.2.1 24.1.1.2 register

[R4-Tunnel0/0/0]nhrp entry 192.168.2.1 24.1.1.2 register

R4与R5之间其中一方应该向另一方注册一次,以确保二者有到对方的映射,写注册的一方在注册的同时也向自己写了一条到对方的映射,被注册方理所应当地也知道了注册方的映射

[R4-Tunnel0/0/0]nhrp entry 192.168.2.1 24.1.1.2 register

接下来分析三台路由器的伪广播功能是否开启:

先查看三台路由器T接口的配置

R1:

 

Untitled

R4:

 

Untitled

R5:

 

Untitled

可见R4对于其他两台路由器来说伪广播功能都打开了,因为写了两条注册内容,一条注册内容就会附带打开伪广播功能;R1完全没有伪广播功能;R5只有对R1的伪广播功能,所以只需要在R1和R5上直接打开伪广播功能即可:

[R1-Tunnel0/0/1]nhrp entry multicast dynamic

[R5-Tunnel0/0/0]nhrp entry multicast dynamic

配置OSPF使得网段内各个环回网段可以互相访问

此时所有路由器的伪广播功能都打开了,给各个路由器开启OSPF进程之后只需要修改所有接口的工作方式为Broadcast(原因和前面一样,p2p导致一个路由器不能和多个路由器建立邻接关系)注意:配置右侧这三台路由器的OSPF时最好将R4\R5划分到area 2中,使得R1成为区域边界路由器

[R1]ospf 1
[R1-ospf-1]area 2
[R1-ospf-1-area-0.0.0.2]network 192.168.2.1 0.0.0.0
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]network 192.168.2.2 0.0.0.0
[R5-ospf-1-area-0.0.0.2]network 192.168.33.1 0.0.0.0
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]network 192.168.2.3 0.0.0.0
[R4-ospf-1-area-0.0.0.2]network 192.168.44.1 0.0.0.0

接下来修改所有T接口的ospf接口工作方式为broadcast

[R1-Tunnel0/0/1]ospf network-type broadcast

[R4-Tunnel0/0/0]ospf network-type broadcast

[R5-Tunnel0/0/0]ospf network-type broadcast

由于这种全连型结构中不存在R5和R4认识不了的情况,所以无需干预DR\BDR的选举

测试环回的情况:

 

Untitled

检验左右两个虚拟网段是否互通

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值