第二章 OSPF协议基础

目录

OSPF协议

动态路由协议

分类

区别

OSPF 特征

Router-ID

获取方式

数据包类型

介绍

OSPF状态机

工作过程

邻接关系建立过程

配置

命令

条件匹配

数据报文

公共头部

HELLO报文

DBD报文

LSR报文

LSU报文

LSACK报文

接口网络类型

路径计算

配置

命令

以太网和P2P网络

环回接口

MGRE环境下的OSPF

优先级

环回接口

不规则区域

作业

OSPF环境下的MGRE实验

基础配置

缺省&环回路由

全连MGRE结构

中心到站点结构

全网通

OSPF协议

动态路由协议

定义:由运行同一种动态路由协议的路由器通过沟通协商最终计算得出的路由信息。特点:

  1. 占用资源少

  2. 收敛速度快

  3. 拓扑结构发生变化重新收敛

  4. 选择路线优

分类

  • 按照范围划分

    • 外部网关协议 --- EGP BGP

    • 内部网关协议 --- IGP --- OSPF RIP ISIS EIGRP

  • 根据协议本身特点

    • 有类别的动态路由协议:在传递路由信息时不携带子网掩码 --- RIPv1。

    • 无类别的动态路由协议:在传递路由信息时携带子网掩码。

      • RIPv1 --- 采用广播的方式传递数据包,剩下所有的协议均使用组播发送自身的数据包(IGP)。

      RIPv1基于广播地址进行更新 --- 224.0.0.9

OSPF --- 开放式最短路径优先协议,隶属于链路状态路由协议(LS),每台运行了OSPF协议的设备均会共享自身的接口连接情况(LSA --- 拓扑信息),所以设备互相共享这些信息之后就可以获取到整个OSPF网络的拓扑信息,随之依靠SPF算法计算得出路由。

RIP --- 距离矢量路由协议,用于共享路由表。根据跳数来进行选择路线。注意RIP只看跳数,不看带宽,所以选路不够科学。

区别

RIP实际上只能使用在中小型网络环境,有16跳数的限制,而OSPF能够适应中大型网络环境。

OSPF为了适应中大型网络环境,采用了结构化部署的思想(区域划分),区域ID32位二进制组成,用点分十进制表示。

OSPF 特征

特点:

  1. 支持 等开销负载均衡

  2. 基于 组播地址 进行更新 ---- 224.0.0.5 / 224.0.0.6

  3. 支持 触发更新:每 30min 进行一次 周期更新

  4. 需要 结构化 的部署 ---- 区域划分 地址规划

相同区域传递拓扑不同区域传递路由

区域划分的规则

  1. 区域之间必须存在ABR域间路由器

    • ABR域间路由器:同时属于两个区域的设备。一台ABR可以同时属于 多个区域

  2. 必须按照星形拓扑结构部署,一般把OSPF的中间区域称为骨干区域,并且要求骨干区域的区域ID必须是0.0.0.0(area 0)。

    • 星型结构0区骨干区域大于0 则为非骨干区域;所有非骨干区域必须接入到骨干区域上。

  3. 必须要有 ABR 域间路由器两个区域相连时必须存在 ABR,ABR 同时工作 在两个区域上。

  4. OSPF网络如果进行了区域划分,这样的网络称为多区域OSPF网络,如果没有进行区域划分称单区域OSPF网络。

Router-ID

RID(Router-ID 路由器标识符),用于一个 OSPF域唯一的标识 一台路由器(取名)。运行了OSPF的路由器设备为了区分和标识不同的路由器身份设计的路由器编号,本质是32位二进制,用点分十进制表示。

获取方式
  1. 手工配置

    由工程师自行手工配置,符合要求即可(IP地址格式不能重复,全网唯一)。

  2. 自动生成

    设备会选择自身环回接口数值最大的(环回接口的最大数值)作为自身的RID,如果设备没有配置环回会选择接口IP地址数值最大的(最大物理接口数值)作为RID。

数据包类型

介绍

  1. HELLO 包:用于周期性的 发现建立保活邻居关系,每 10s 发送一次。

  • 周期保活:

    • 运行了OSPF协议的路由器会以10S为周期发送HEELO报文,hello报文中会携带本设备的RID,对端收到后就可以判断本设备存活,如果40s没有收到HEELO包,就认为该设备故障,会清空从该设备收到的LSA。

  • OSPF的计时器:

    • hello时间默认是10s/30s。

    • Dead-time死亡时间默认是hello时间的四倍。

  1. DBD/DD 包数据库描述包,用于携带 本地数据库目录(数据库中收集到的LSA信息的摘要值)。

  • LSDB:

    • 链路状态数据库,用于存储收集到的LSA信息。

  • LSA:

    • 链路状态通告,用于在OSPF域内的路由器之间交换网络拓扑信息,以建立并维护网络拓扑表。

  1. LSR 包:链路状态请求包,在查看完 对端邻居的 DD 包 后,基于 本地的位置 查询 LSA,随后去 索要未知的 LSA 信息,就通过这个 LSR 包。

  2. LSU 包:链路状态更新包,用于携带 各种 LSA 信息

  3. LSACK 包:链路状态确认包,用于确认 接收到 对端的信息

OSPF状态机

  1. Down 状态:表示未激活的状态,一旦 本地发出 hello包,则进入下一个状态,接收到 hello包后,也会 被动进入 Init 状态。

  2. Init 状态:表示初始化状态,发出 或者 接收 到 hello 包 都会进入到 Init 状态。

  3. Two-way/2-way 状态双向通信,表示建立了邻居关系;经过 条件匹配,成功则进入下一个状态机,失败则停留在 2-way 状态。

  4. Ex-start 状态预启动状态,发出 空的 DD 包,比较 RID 的大小,进行 主从选举,以 RID 大的为主

  5. Exchange 状态准交换状态,发送 有目录的 DD 包,双方交换 DD 报文,描述自己拥有的 LSA 信息

  6. Loading 状态加载状态,在查看完 对端邻居 的 DD 包 后,使用 LSR 包询问自己位置的 LSA 信息对端 使用 LSU 包 进行回复本地还需要 使用 LSACK 包 进行确认回复

  7. Full 状态邻接关系建立的标识,两者从 邻居关系 变为 邻接关系。

工作过程

  • 2-way状态:必须收到对端发送的hello报文中携带的本地的RID才可以进入该状态,该状态标志着邻居关系的建立

    • 确保hello报文的可靠传递,保证对端一定收到了本地发送的hello报文。

    • 条件匹配:只有条件匹配成功的路由器才可以进入之后的状态,如果条件匹配失败则停留在邻居状态,仅使用hello包进行周期保活

  • Ex-start 预启动状态:主从关系的选举。OSPF协议并不希望同时共享LSA信息,因为这样会在某一时刻很多设备同时共享,这样会导致链路带宽被占用过多,导致数据传输收到影响。

    • 选举规则:会比较设备RID的大小,RID大的设备将成为主设备

    • 进行主从关系选举的OSPF数据包是DBD包,并且该DBD包没有携带真正的LSA摘要信息。

  • Exchange 准交换状态:使用真正携带摘要信息的DBD包传递LSA摘要信息

邻接关系建立过程

  • 建立邻居:启动配置之后,OSPF将向本地所有运行了OSPF协议的端口发送hello包(224.0.0.5),hello包中携带自己的RID用来区分不同路由器的身份(不携带路由信息),同时携带自己已知的邻居RID,之后会将这些RID存储在自己的邻居表中。

  • 条件匹配:邻居表建立完成之后,会进行条件匹配,如匹配成功则开始进入下一个状态;如果匹配失败则会停留在邻居关系,之后仅hello包进行保活

  • Loading 加载状态:匹配成功后开始建立邻接关系,之后会使用未携带数据的DBD包(没有携带LSDB的摘要信息)进行主从关系的选举。主路由器会优先进入下一个状态,会优先发送摘要进行比对,比对之后,会请求自己本地没有的LSA信息。对端会发送真正携带LSA信息的LSU更新包,利用LSACK确认包进行确认和回复。至此本地的链路状态数据库建立完成,生成本地链路数据库表

  • Full 状态邻接关系建立的标识,两者从 邻居关系 变为 邻接关系。

    • 完成收敛:基于本地的链路状态数据库收集的LSA,根据自己的SPF算法计算得出最短路径树,生成路由表

    • 收敛完成:会使用hello包每10s发送一次,用来保活邻居关系。OSPF会每30min进行一次周期更新

配置
命令
  • 启动进程协议,若不配置RID则会系统自动选择,建议手工指定设备的RID。

  • ospf [进程号] router-id [RID]

  • 创建区域。

  • area [区域号]

  • 范围宣告,宣告一个网段范围。

  • 反掩码:和掩码的规则相反,掩码为0的部分反掩码就为1,掩码为1的部分反掩码就为0。

  • network [宣告网段] [反掩码]

  • 精确宣告,仅宣告接口对应的IP地址。相当于利用反掩码的规则直接锁死一个IP地址。

  • network [接口IP] [反掩码]

  • 进行接口MTU检测,OSPF协议默认不进行,想要开启该功能需要手工配置。默认1500字节。

  • ospf mtu-enable

  • 查看OSPF邻居简表和详细信息。

  • display ospf peer brief

  • display ospf peer

  • 查看链路连接数据库信息,可以加上RID更详细查看。

  • display ospf lsdb router [RID]

首先进行基础的IP配置和环回接口(模拟用户)的配置。

 # 启动协议进程(进程号一致即可),手工指定RID
 ### R1 配置
 [R1]ospf 1 router-id 1.1.1.1
 # 创建区域
 [R1-ospf-1]area 0
 # 范围宣告1.0网段
 [R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
 # 精确宣告固定的IP
 [R1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0
 ​
 ### R2 ABR设备配置
 # 新设置一个RID
 [R2]ospf 1 router-id 2.2.2.2
 ## 区域 0
 [R2-ospf-1]area 0
 # 范围宣告网段
 [R2-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
 [R2-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
 ## 区域 1 精确宣告
 [R2-ospf-1]area 1
 [R2-ospf-1-area-0.0.0.1]network 23.0.0.1 0.0.0.0
 ​
 ### R3 配置
 [R3]ospf 1 router-id 3.3.3.3
 [R3-ospf-1]area 1
 # 宣告
 [R3-ospf-1-area-0.0.0.1]network 23.0.0.2 0.0.0.0
 [R3-ospf-1-area-0.0.0.1]network 192.168.3.0 0.0.0.255
 ​
 ### 开启接口MTU检测
 [R2-GigabitEthernet0/0/0]ospf mtu-enable 
 ​
 ### 在ABR中查看OSPF邻居简表,发现是邻接关系FULL状态
 [R2-ospf-1]display ospf peer brief
 ### 查看OSPF邻居表详细信息
 [R2-ospf-1]display ospf peer

开启接口MTU检测后在R1中查看详细表发现MTU为1500默认值。日常不开也没问题。在R2的0/0/0接口开启只能在R1中查看,R2无法查看R1的,因为R1的相应接口未开启。

条件匹配

当网络结构发生变化时(新增或者断开一些网段),OSPF会直接进行触发更新发送LSU更新包

  • 定义:在一个广播域中需要选择一台指定路由器DR和剩下所有路由器建立邻接关系,同时需要选择一台备份指定路由器BDR,充当DR的备份,当DR设备出现故障时进行DR的工作。而剩下的其他路由器叫做DR Other

  • 选举规则:先看接口优先级,之后会根据设备的RID大小选择RID最大的作为DR,次大的作为BDR设备。

    • OSPF的DR和BDR选举是非抢占的,简单来说就是DR和BDR选择出来之后,新加入设备不会抢占DR和BDR的身份。

数据报文

OSPF是一种跨层封装的协议,协议号89。没有传输层(减少封

装和解封装的时间,加快收敛)

公共头部

所有OSPF报文均携带的信息。

  • 版本:表明是OSPFV2 还是 OSPFV3。

  • 类型:标注该数据包是OSPF的哪一种数据包。

    1. HELLO包

    2. DBD描述包

    3. LSR请求包

    4. LSU更新包

    5. LSACK确认包

  • 认证类型:对应认证的值

    • 0 --> 空认证 null

    • 1 --> 简单认证(明文认证)simple

    • 2 --> 密文认证 MD5

  • 报文长度:头部 + 数据包本身的数据量

HELLO报文

  • 网络掩码:接口发出hello包时会携带该接口的掩码。在建立邻居时会比较两端设备的掩码,如果掩码不一致则会导致建邻失败

    • 注意:只有以太网链路才会检测掩码、hello时间和死亡时间,注意这两个参数如果两端对应不上也会导致建邻失败。

  • 可选项:是OSPF的一些特性,OSPF特殊区域的标记会在选项字段携带,如果字段不统一则会导致建邻失败。

  • 路由器优先级:dr-priority 用来条件匹配选择DR设备的参数。

  • 指定路由器:DR的身份(RID)

    备份指定路由器:BDR的身份(RID)

    • 注意:在一个广播域中所有设备的DR和BDR的认知必须统一。只有DR和BDR会监听224.0.0.6的组播地址。

DBD报文

  • 接口最大传输单元:接口MTU值,OSPF协议默认是不进行接口MTU检测的,如果想要开启该功能需要手工配置。如果两端均开启了接口MTU检测功能,若接口MTU不一致则会导致状态停留在预启动状态

  • 可选项:8位标志位(Flag),只是用后面三位,前五位保留。

    • I 位:Init,如果 I 标志位 置为1 则代表该DBD包是进行 主从关系选举的DBD包。

    • M 位:More,如果M标志位 置为1 则代表本设备后续还有DBD报文需要发送,如果 置为0 则代表该数据包已经是最后一个DBD报文。

    • MS 位:Master,如果置为1则代表该DBD报文是主设备发送的DBD报文;Slave,如果置为0则代表是从属设备发送的DBD报文。

  • DD序列号:Seq,隐性确认,去确保DBD报文的有序可靠传输

作用

  1. 用来主从关系选举(没有携带LSA摘要信息的DBD报文

  2. 用来减少OSPF重复更新,利用携带LSA摘要信息的DBD进行本地数据库比对。

  3. 隐性确认:主从关系选举之后,主设备会主导后续DBD报文交互的有序性(确保DBD报文的可靠传输)。

在华为体系下,是由从属设备主动发送携带LSA摘要信息的DBD包。

LSR报文

必须靠LSA的三元组才能唯一标识一条链路状态通告LSA

LSA头部

  • 链路状态类型

  • 链路状态ID

  • 通告路由器

数据包五元组

  • 源IP地址

  • 目标IP地址

  • 源端口号

  • 目标端口号

  • 协议号

LSU报文

收到LSR报文的LSA通告后,标注出LSA的个数和内容再转发回去。

LSACK报文

将LSU转发后,对方发送LSACK确认包,对每一条请求的LSA进行确认

接口网络类型

OSPF接口工作在不同的网络环境下工作方式有所区别。

  • P2P --- 点到点网络

  • MA --- 多点接入网络:广播或多播

    • BMA --- 支持广播/组播

    • NBMA --- 只能单播

OSPF真实网络环境OSPF对应的接口网络类型和特点
BMA(以太网)类型:Broadcast(广播);特点:需要进行DR和BDR的选举;Timers:Hello 10 , Dead 40
P2P点到点网络Type:P2P;特点:不需要进行DR和BDR的选举(条件匹配);Timers:Hello 10 , Dead 40
环回接口虚拟接口,实际不会涉及数据包的收发,环回接口COST=0
MGRE 环境隧道环境类型:OSPF中默认识别隧道接口的OSPF接口类型为P2P,导致只能存在两台设备。在MGRE环境下,必须修改接口的工作方式,使隧道接口可以识别多台设备
人为设计的接口网络类型接口网络类型:P2MP ;特点:不需要进行DR和BDR的选举;Timers:Hello 30 , Dead 120
NBMA(帧中继)Timers:Hello 30 , Dead 120

Attempt:只有在NBMA环境下才会出现,等待对端也指定发送的对象。

在NBMA环境下因为不支持组播报文,所以即时宣告了OSPF接口,接口依然没有办法发送hello(224.0.0.5是一个组播报文),所以必须手工指定建立邻居的对象IP地址。

路径计算

  1. 使用 COST 值 作为 度量值/开销值:

    • COST(开销值) = 参考带宽 / 接口带宽

  2. 默认参考带宽 默认值为 100M,整段路径 COST值之和最小最佳

  3. 弊端:如果开销值小于1则直接默认为1;如果是大于1的小数,小数部分直接舍弃。这样可能会导致 选路不佳(负载均衡)。故而在接口带宽大于参考带宽的网络中,可以人为的 修改参考带宽

配置

命令
  • 修改接口优先级,范围0~255

  • ospf dr-priority [优先级]

  • 修改OSPF的参考带宽,单位为兆

  • bandwidth-reference [带宽]

  • 修改OSPF计时器,单位为秒

  • ospf timer hello [时间]

  • 修改OSPF协议在mGRE隧道接口下的默认接口网络类型为 broadcast。

  • ospf network-type broadcast

  • 还原环回接口的默认掩码

  • ospf network-type broadcast

  • 指定建立邻居的路由器IP地址,双方都需要指定。

  • peer [邻居IP]

  • 查看OSPF接口网络类型

  • display ospf interface [接口类型] [接口号]

以太网和P2P网络

首先进行基础IP配置和OSPF区域划分和范围宣告。

 # R1
 [R1-Serial4/0/0]ip address 12.0.0.1 24
 ​
 [R1]ospf 1 router-id 1.1.1.1
 [R1-ospf-1]area 0
 [R1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
 # R2
 [R2-Serial4/0/0]ip address 12.0.0.2 24
 [R2-GigabitEthernet0/0/0]ip address 23.0.0.1 24
 ​
 [R2]ospf 1 router-id 2.2.2.2
 [R2-ospf-1]area 0
 [R2-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
 [R2-ospf-1]area 1
 [R2-ospf-1-area-0.0.0.1]network 23.0.0.0 0.0.0.255
 # R3
 [R3-GigabitEthernet0/0/0]ip address 23.0.0.2 24
 ​
 [R3]ospf 1 router-id 3.3.3.3
 [R3-ospf-1]area 1
 [R3-ospf-1-area-0.0.0.1]network 23.0.0.0 0.0.0.255
 ​
 # 查看以太网接口和串口网络信息
 [R2]display ospf interface GigabitEthernet 0/0/0
 [R2]display ospf interface Serial 4/0/0

环回接口

给R3创建一个环回接口来模拟用户。

 # 配置环回接口IP
 [R3-LoopBack0]ip address 3.3.3.3 24
 # 新建区域并范围宣告网段
 [R3-ospf-1]area 0
 [R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0

MGRE环境下的OSPF
  • 问题一:只有中心获取到了一个分支的hello报文,分支之间没有获取到任何hello报文。

  • 原因:OSPFV2通过组播发送数据包,但是MGRE环境只能支持单播,所以必须在中心开启伪广播,注意要进入隧道接口。

    • nhrp entry multicast dynamic

  • 问题二:中心开启伪广播之后,中心和一个分支建立了邻接关系,但是分支之间没有信息,其次有一个分支只和中心保持Init状态。

  • 建议直接更改隧道接口的接口网络类型为P2MP,直接方中心和分支不进行DR和BDR的选举,就不会造成认知不统一的问题。

  • P2mp:首先没有真实实际的网络类型是P2MP,是一种专门设计出来的网络类型。同时为了加快收敛,可以修改OSPF计时器。

    • ospf timer hello [时间]

  • 解决方法:修改OSPF协议在MGRE隧道接口下的默认接口网络类型为 broadcast,注意要进入隧道接口。

    • ospf network-type broadcast

  • 问题三:如果中心和分支的DR和BDR认知不一致,会导致网络中一些由DR设备发送的LSA信息残缺,导致没有办法获取到完整的路由信息。

  • 解决方法:

    1. 让分支设备放弃选举DR和BDR,优先级设置为0。

      • ospf dr-priority 0

    2. 让中心的设备接口DR选举优先级为最高。

      • ospf dr-priority 10

  • 还原环回接口的默认掩码。

  • ospf network-type broadcast

  • 指定建邻的设备IP地址,双方都需要指定。

  • peer [邻居IP]

首先进行基础的IP配置,然后再配置MGRE环境。

 ### 公网连通
 # 配置缺省路由,连通公网
 [R1]ip route-static 0.0.0.0 0 14.0.0.2
 [R2]ip route-static 0.0.0.0 0 24.0.0.2
 [R3]ip route-static 0.0.0.0 0 34.0.0.2
 # 检测连通性
 [R1]ping -a 14.0.0.1 24.0.0.1
 [R1]ping -a 14.0.0.1 34.0.0.1
 ​
 ### 中心配置
 [R1-Tunnel0/0/0]ip address 192.168.1.1 24
 [R1-Tunnel0/0/0]tunnel-protocol gre p2mp
 [R1-Tunnel0/0/0]source 14.0.0.1
 [R1-Tunnel0/0/0]nhrp network-id 100
 # R2、R3 同理配置,IP分别为1.2和1.3
 ​
 ### 分支注册,R2、R3相同配置
 [R2-Tunnel0/0/0]nhrp entry 192.168.1.1 14.0.0.1 register
 [R3-Tunnel0/0/0]nhrp entry 192.168.1.1 14.0.0.1 register
 ​
 # 连通测试,隧道建立成功
 [R1]ping -a 192.168.1.1 192.168.1.2
 [R1]ping -a 192.168.1.1 192.168.1.3
优先级
 ### 创建区域并范围宣告,这里宣告隧道私网IP
 [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.0 0.0.0.255
 # R2、R3 同理配置,注意RID不同,区域为0且宣告网段相同
 # 查询OSPF表发现没有任何信息,因为MGRE环境只支持单播
 [R1]display ospf peer brief
 ​
 ### 在中心开启伪广播
 [R1-Tunnel0/0/0]nhrp entry multicast dynamic
 # 此时查表R3分支发现其为Init状态,其他分支为Full
 [R3]display ospf peer brief
 ​
 # 因为此时网络类型为P2P,无法容纳第三台设备
 ### 修改OSPF协议在MGRE隧道接口下的默认接口网络类型
 [R1-Tunnel0/0/0]ospf network-type broadcast 
 # 此时查表R3,发现状态成功变为Full
 ​
 ### 查询R1接口,发现中心和分支的DR和BDR认知不一致,R1选举结果改变
 [R1]display ospf interface Tunnel 0/0/0
 # 让分支放弃选举,优先级设置为 0
 [R2-Tunnel0/0/0]ospf dr-priority 0
 [R3-Tunnel0/0/0]ospf dr-priority 0
 # 再次查表发现R1变为DR
环回接口
 # 创建环回接口,配置新的IP
 [R1-LoopBack0]ip address 192.168.2.1 24
 [R2-LoopBack0]ip address 192.168.3.1 24
 [R3-LoopBack0]ip address 192.168.4.1 24
 # 宣告新的网段
 [R1-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
 [R2-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
 [R3-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255
 # 查看OSPF路由表
 [R1]display ip routing-table protocol ospf s

实验

OSPF环境下的MGRE实验

要求:

  1. R6为ISP,只能配置IP地址,R1~R5的环回为私有网段

  2. R1、R4、R5为全连的MGRE结构,R1、R2、R3为星型拓扑结构(中心到站点架构),R1为中心站点

  3. 所有私有网段可以互相通讯(全网通),私有网段使用OSPF完成。

基础配置
 # 注意R1有两条线路
 [R1-GigabitEthernet0/0/0]ip address 12.0.0.1 24
 [R1-GigabitEthernet0/0/1]ip address 21.0.0.1 24
 [R2-GigabitEthernet0/0/0]ip address 22.0.0.1 24
 [R3-GigabitEthernet0/0/0]ip address 23.0.0.1 24
 [R4-GigabitEthernet0/0/0]ip address 24.0.0.1 24
 [R5-GigabitEthernet0/0/0]ip address 25.0.0.1 24
 # ISP配置
 [ISP-GigabitEthernet0/0/0]ip address 12.0.0.2 24
 [ISP-GigabitEthernet0/0/1]ip address 21.0.0.2 24
 [ISP-GigabitEthernet4/0/0]ip address 22.0.0.2 24
 [ISP-GigabitEthernet4/0/1]ip address 23.0.0.2 24
 [ISP-GigabitEthernet4/0/2]ip address 24.0.0.2 24
 [ISP-GigabitEthernet4/0/3]ip address 25.0.0.2 24
 # 查询接口表检验
 [ISP]display ip interface brief 
缺省&环回路由
 ### 配置缺省路由,使公网连通 注意R1有两条
 [R1]ip route-static 0.0.0.0 0 12.0.0.2 
 [R1]ip route-static 0.0.0.0 0 21.0.0.2
 [R2]ip route-static 0.0.0.0 0 22.0.0.2
 [R3]ip route-static 0.0.0.0 0 23.0.0.2
 [R4]ip route-static 0.0.0.0 0 24.0.0.2
 [R5]ip route-static 0.0.0.0 0 25.0.0.2
 # 测试公网是否连通
 [R1]ping -a 12.0.0.1 25.0.0.1 
 ...
 # 配置环回路由,创建私有网段
 [R1-LoopBack0]ip address 192.168.1.1 24
 [R2-LoopBack0]ip address 192.168.2.1 24
 [R3-LoopBack0]ip address 192.168.3.1 24
 [R4-LoopBack0]ip address 192.168.4.1 24
 [R5-LoopBack0]ip address 192.168.5.1 24
全连MGRE结构

这里将MGRE的网段设定为 192.168.10.0/24,中心R1路由器的源IP设置为21.0.0.1。

因为是全连的MGRE结构,所以R1、R4、R5均为中心路由

### 中心配置
[R1-Tunnel0/0/0]ip address 192.168.10.1 24
[R1-Tunnel0/0/0]tunnel-protocol gre p2mp 
[R1-Tunnel0/0/0]source 21.0.0.1
[R1-Tunnel0/0/0]nhrp network-id 100
# 注册中心路由
[R1-Tunnel0/0/0]nhrp entry 192.168.10.4 24.0.0.1 register 
[R1-Tunnel0/0/0]nhrp entry 192.168.10.5 25.0.0.1 register

# R4、R5 同理配置,并注册中心路由
[R4-Tunnel0/0/0]nhrp entry 192.168.10.1 21.0.0.1 register 
[R4-Tunnel0/0/0]nhrp entry 192.168.10.5 25.0.0.1 register
[R5-Tunnel0/0/0]nhrp entry 192.168.10.1 21.0.0.1 register 
[R5-Tunnel0/0/0]nhrp entry 192.168.10.4 24.0.0.1 register
# 在R4、R5注册R1中心时发现系统给出Info提示,已经收到过R1中心注册的信息了,所以可以不用再注册。
# 查看NHRP表
[R1]display nhrp peer all 

OSPF配置

### 启动OSPF进程 
[R1]ospf 1 router-id 1.1.1.1
# 范围宣告私有网段
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1-area-0.0.0.0]network 192.168.5.0 0.0.0.255
# 范围宣告MGRE网段,R4、R5宣告相同。
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255

### 此时查OSPF表发现没有信息,因为MGRE只支持单播,所以得在中心开启伪广播;注意R4、R5也要开启
[R1-Tunnel0/0/0]nhrp entry multicast dynamic
...

### 修改接口网络类型为广播,R4、R5 
[R1-Tunnel0/0/0]ospf network-type broadcast
# 查看接口信息,发现修改成功
[R1-Tunnel0/0/0]display ospf interface Tunnel 0/0/0
...
# 等待一段时间使建邻成功后再查OSPF表,三个中心均收到邻居信息
[R1-ospf-1]display ospf peer brief
...
# 查看OSPF路由表发现信息完整
[R1]display ip routing-table protocol ospf
...

中心到站点结构

这里将MGRE的网段设定为 192.168.100.0/24,中心R1路由器的源IP设置为12.0.0.1。

注意这里R1隧道接口要重新配置一个。

### 中心配置
[R1-Tunnel0/0/1]ip address 192.168.100.1 24
[R1-Tunnel0/0/1]tunnel-protocol gre p2mp 
[R1-Tunnel0/0/1]source 12.0.0.1
# 这里的ID可以跟上面相同,为了区分选择200
[R1-Tunnel0/0/1]nhrp network-id 200
# R2、R3 同理
[R2-Tunnel0/0/0]ip address 192.168.100.2 24
[R2-Tunnel0/0/0]source 22.0.0.1
[R3-Tunnel0/0/0]ip address 192.168.100.3 24
[R3-Tunnel0/0/0]source 23.0.0.1
...
# 注册中心路由,R3 同理配置
[R2-Tunnel0/0/0]nhrp entry 192.168.100.1 12.0.0.1 register 
...
### 更改网络类型,中心到站点环境建议配置P2MP,R2、R3 同理
[R1-Tunnel0/0/1]ospf network-type p2mp
...
### 中心开启伪广播
[R1-Tunnel0/0/1]nhrp entry multicast dynamic
全网通
### 宣告网段
[R1-ospf-1-area-0.0.0.0]network 192.168.100.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.100.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.100.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
# 查看OSPF简表,发现均到达Full状态
[R1]display ospf peer brief
# 查看各个路由器的OSPF路由表检查是否配置完整
[R1]display ip routing-table protocol ospf 

### 依次检测R1和其他私网之间的连通性
[R1]ping -a 192.168.1.1 192.168.2.1
[R1]ping -a 192.168.1.1 192.168.3.1
...
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璀云霄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值