GRE、MGRE的相关知识(OSPF知识点)

GRE的问题 --- 因为GRE搭建的是一个点到点的隧道,所以,导致其扩展性较差(当存在多个私网需要相互连接时,需要彼此之间都搭建GRE隧道才行)

MGRE --- 多点通用路由封装技术

NHRP协议 --- 下一跳解析协议 ---- 自动学习隧道地址和物理地址的对应关系的一种方法。

原理:需要在私网中选出一个物理接口不会发生变化的作为NHRP的中心(NHS --- 下一跳服务器)。剩下的分支都需要知道中心的隧道IP 和物理接口IP,他们需要将自己的物理接口IP和隧道IP发送给中心

(如果分支的物理接口的IP地址发生变化,则需要立即将对应关系重新发送)。这样,NHS将会收集所有分支的地址映射关系。之后需要通讯时,查看对应关系,封装对应的接口IP地址即可。分支之间需要

进行通讯,则先将数据发给中心,由中心进行转发。

----- 这种中心站点到分支站点的架构 --- HUB-SPOKE架构

     因为MAGRE搭建的逻辑拓扑是一个多节点的网络,但是,发送信息时依然是点到点的发送,无法使用广播或者组播行为,所以,这样的网络我们可以称为NBMA网络。(他属于逻辑上搭建出的NBMA网络,真正意义上物理设备搭建出的NBMA网络是帧中继。)

MGRE的配置过程

给中心站点进行配置(边界路由器出接口的公网IP地址不会发生变化的作为NHS,即中心站点)

[r1]int t 0/0/0  --- 创建隧道接口

[r1-Tunnel0/0/0]ip address 192.168.5.1 24  --- 配置隧道IP地址

[r1-Tunnel0/0/0]tunnel-protocol gre p2mp --- 选择封装类型 ---- 选择MGRE

[r1-Tunnel0/0/0]source 15.0.0.1  --- 定义源IP地址

[r1-Tunnel0/0/0]nhrp network-id 100 --- 创建NHRP域

给分支站点进行配置

[r2]int t 0/0/0

[r2-Tunnel0/0/0]ip address 192.168.5.2 24

[r2-Tunnel0/0/0]tunnel-protocol gre p2mp

[r2-Tunnel0/0/0]source GigabitEthernet 0/0/1 --- 以接口作为封装源,以应对IP地址的变化

[r2-Tunnel0/0/0]nhrp network-id 100 --- 加入NHRP域,必须是和

中心站点创建相同的域

[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register ---

找中心站点进行注册

                                         隧道地址   物理接口

地址

<r1>display nhrp peer all --- 可以查看NHRP信息收集情况

通过RIP获取路由信息

1,中心站点可以收到分支的数据包,但是,分支不能收到中心站点的数据报 --- MGRE环境下不支持广播或者组播行为 ---- 在中心站点开启伪广播 --- 分别给所有节点发送单播以达到广播的效果

[r1-Tunnel0/0/0]nhrp entry multicast dynamic   --- 开启中心

站点伪广播

2,开启伪广播后,分支站点只能收到中心站点的路由信息,却不能收到其他分支站点的路由信息。

--- RIP水平分割导致

[r1-Tunnel0/0/0]undo rip split-horizon --- 关闭接口水平分割

功能

OSPF --- 开放式最短路径优先协议

  

选路佳,收敛快,占用资源少

RIP存在3个版本 --- RIPV1,RIPV2  --- IPV4

    RIPNG    ---- IPV6

OSPF也存在三个版本 --- OSPFV1(实验室阶段夭折),OSPFV2 --- IPV4

      OSPFV3  ---- IPV6

RIPV2和OSPFV2的异同点:相同点:

1,RIPV2和OSPFV2一样,都是无类别的路由协议(传递路由信息的时候携带子网掩码),都支持VLSM和CIDR。

2,OSPFV2和RIPV2(224.0.0.9)都是以组播的形式传递信息。 ---- 224.0.0.5/224.0.0.6

3,OSPFV2和RIPV2都支持等开销负载均衡。不同点:

OSPF和RIP不同,RIP要求仅适用于中小型的网络环境中,OSPF可以应用于中大型的网络环境中。

OSPF为了适应中大型网络环境,需要进行结构化部署。--- 区域划分当网络规模不大时,我们也可以将OSPF网络划分在一个区域内,这样的OSPF网络 --- 称为单区域OSPF网络

如果,一个OSPF网络当中包含多个OSPF区域 --- 称为多区域OSPF网络

区域划分的主要目的 --- 区域内部传递拓扑信息,区域之间传递路由信息

区域边界路由器 --- ABR --- 同时处于多个区域,并且一个接口对应一个区域,至少有一个接口属于骨干区域。

区域之间可以存在多个ABR,一个ABR也可以对应多个区域

区域划分的要求:1,区域之间必须存在ABR

2,区域划分必须按照星型拓扑结构划分 ---- 所有区域需要连接在中心区域上,这个中心我们称之为骨干区域

为了方便对各个区域进行区分和管理,我们给每个区域设计一个编号 --- 区域ID(area ID) ---- 由32位二进制构成 --- 可以通过点分十进制的形式来表示,也可以直接使用十进制来进行表示。 ---- 规定,骨干区域的区域ID必须是0。

1,OSPF的数据包

OSPF一共存在5种数据包

hello包 --- 用来周期发现,建立和保活邻居关系 hello的周期发送时间 ---- 10S(30S)死亡时间 --- dead time ---- 4倍的hello时间 ----

40S(120S)

因为OSPF传递的是拓扑信息,需要将所有路由器的位置关系表示清楚,所以,需要有一个参数对所有的路由器进行区分和标定。

我们引入RID来完成这个工作。

RID需要满足的条件:1,唯一性(全OSPF网络内部唯一即可);

2,格式统一 --- 由32位二进制构成,采用IP地址的格式

RID的获取方法(两种)

1,手工配置:仅需满足以上两点要求即可。

2,自动获取:如果是自动获取,设备将会在自己环回接口的IP地址中选择最大的作为自己的RID。如果没有环回接口,则将在自己的物理接口上选择IP地址最大的作为RID。 hello包中会携带这个RID。

DBD包  ---- 数据库描述报文 --- 携带的是数据库(LSDB --- 存放

LSA信息的数据库)的目录信息

LSR包 ---- 链路状态请求报文 --- 基于DBD包请求未知的LSA信息

LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据包

LSAck包 ---- 链路状态确认报文 --- 确认包

OSPF存在没30MIN一次的周期更新


2,OSPF的状态机

Two-way --- 标志着邻居关系的建立。

(条件匹配)

EXSTART状态 ---- 主从关系选举 ---- 使用的未携带数据的DBD包(主要是为了和之前的邻居关系进行区分),通过比较RID大小进行主从关系选举,RID大的为主,可以优先进入下一个阶段。

FULL状态 --- 标志着邻接关系的建立。 ---- 邻接关系主要是为了和之前邻居关系进行区分。邻居关系,仅能使用hello包进行周期保活,只有邻接关系,可以去交换LSA信息。

down状态 --- 启动OSPF之后,发出hello包进入下一个状态

init(初始化)状态 --- 收到Hello包中包含本地的RID时进入下一个状态

Two-way(双向通讯)状态 --- 标志着邻居关系的建立

(条件匹配) 条件匹配成功,则进入下一个状态;否则,只能停留在邻居关系,靠Hello包进行周期保活。

Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,比较RID,RID大的为主,可以优先进入下一个状态

Exchange(准交换)状态 --- 使用携带数据的DBD包进行数据库目录摘要的共享。

Loading(加载)状态 --- 查看对端的DBD包中的信息和本地的LSDB数据库目录信息进行对比,基于未知的LSA信息发送LSR包,对端回复LSU包,需要LSACK进行确认。

FULL状态 --- 标志着邻接关系的建立

3,OSPF工作过程     启动配置完成后,OSPF向本地所有运行OSPF协议的接口以组播 224.0.0.5发送hello包。Hello包中携带本地的RID以及本地已知邻居的

RID。之后,将收集到的邻居关系记录在一张表中 --- 邻居表

    邻居表建立之后,将进行条件匹配;失败则将停留在邻居关系,仅使用hello包进行周期保活。

    匹配成功,则开始建立邻接关系。首先使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包进行数据库目录的共享。之后,本地使用LSR/LSU/LSACK数据包来获取未知的LSA信息;完成本地数据库的建立。 --- LSDB(链路状态数据库) --- 生成数据库表

    最后,基于本地的链路状态数据库,生成有向图,之后,通过SPF算法将有向图转换成最短路径树。之后,计算本地到达未知网段的路由信息,将路由信息添加到路由表中。

    收敛完成后,hello包依然需要进行10S(30S)一次的周期保活,没

30MIN进行一次周期更新。

网络结构突变

1,增加一个网段:触发更新,直接通过LSU包将变更信息发送,需要

ACK确认。

2,断开一个网段:触发更新,直接通过LSU包将变更信息发送,需要

ACK确认。

3,无法沟通:死亡时间 --- 40S(120S)

4,OSPF的基本配置

1,启动OSPF进程

[r1]ospf 1 router-id 1.1.1.1  --- 1 进程号,仅具有本地意义;手工配置RID在启动进程时完成

[r1-ospf-1]

2,创建区域

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]

3,宣告宣告的目的:1,激活接口 --- 只有激活的接口才能收发OSPF的数据

    2,发布路由 --- 只有激活接口对应网段信息才能发布出去

[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 --- 反掩码 --- 由连续的0和连续的1组成(0对应的位不可变,1对应位可变)

[r1]display ospf peer --- 查看OSPF的邻居表

[r1]display ospf peer brief ---- 查看邻居关系的简表

[r1]display ospf lsdb   --- 查看数据库表

[r1]display ospf lsdb router 2.2.2.2 --- 展开一跳LSA信息

华为设备给OSPF定义的默认优先级为10。

OSPF是以带宽作为开销值的 ---- COST = 参考带宽 / 真实带宽 --华为设备OSPF默认的参考带宽是100Mbps

    OSPF开销值为小数时的处理逻辑,当该数值为大于1的小数,则将直接舍弃小数部分取整即可;如果是小于1的小数,则将直接设置为1。

[r1-ospf-1]bandwidth-reference 1000   --- 修改参考带宽值注意,参考带宽修改,则所有设备上都需要改成相同的。

     

Hello 数据包

 Network Mask:表示发送Hello数据包(参与OSPF进程)的路由器接口的网络掩码。仅只有广播介质(MA网络环境中)才会检查此字段值。
Hello Interval:表示每隔多长时间发送一次Hello数据包,单位为秒。对于两台尝试建立OSPF邻接关系的路由器来说,Hello 和 Dead 时间必须一致。其中Broadcast和P2P,此字段值为10s;其他网络环境中,此字段值为30s。
Options:表示(发送Hello数据包的)路由器所支持的能力。
DN位,为MPLS/VPN所用。
O位用于不透明LSA(opaque LSA)详见RFC2370。
DC位表示路由器支持按需电路特性。参考网上博文 OSPF DC按需链路技术 剖析
EA位表示路由器支持(接收及转发)外部属性LSA。
N/P位表示路由器支持非完全端区域(not-so-stubby area,NSSA)。
MC位表示路由器具备组播OSPF能力。
E位,E位置位时,表示路由器具备接收外部LSA的能力。
T位 表示路由器支持ToS(通常为0)。
Router Prionrity :默认情况下,此字段值被设置为1。在选举DR/BDR时起着重要作用;OSPF路由器发送Hello数据包中路由器优先级字段值越高,越有可能成为DR。此字段值为0,则不参与DR选举。
Dead Intervar:默认情况下,此字段值是Hello Interval字段值的4倍。表示一段以秒为单位的时间。
Designated Router:表示DR路由器的IP地址。若DR不存在或尚未发现,此字段值为0.0.0.0。DR通过Hello协议选举而出。具有最高优先级的路由器(所发Hello数据包中路由器优先级字段值最高的路由器)将成为发包接口所处网络内的DR。在路由器优先级字段值相等的情况下,Router-ID值最高的路由器(所发Hello数据包中指定路由器字段值最高的路由器)将成为(发包接口所处网络内的)DR。 可以说OSPF是接口敏感型的协议。
Backup Designated Router:标识BDR,指明BDR的接口IP地址。若无BDR,此字段值为0.0.0.0。BDR通过Hello协议选举而出。
Neighbor:包含通过Hello数据包获知的邻居路由器的Router-ID。
 

DBD数据包

 Interface MTU :此字段值指明发包接口(发送DBD数据包的路由器接口)所能发出的数据包的最大长度,单位为字节。由OSPF虚链路发出的DBD数据包的接口MTU字段值必须设置为0。
Options:与Hello数据包所含字段相同。
I位:此位置1时,则表示邻居双方发出的首个DBD数据包。
M位:此位置1时,则表示DBD数据包尚未发送完毕。
MS位:主/从位。此位置1时,表示在DBD交换过程中,发包路由器为“主”路由器,此位置0时,则为“从”路由器。
DBD Sequence Number:此字段包含由“主”路由器设置的唯一值(序列号),在数据库交换过程中使用。只有“主”路由器才能增加此字段的值(序列号的值)。
LSA Headers:此字段包含若干链路状态数据库包头。
 

LSR数据包

  • LS Type:标识所请求的LSA类型。

  • LS-ID:表示特定LSA的链路状态ID。

  • Advertising Router:包含生成LSA的路由器的Router-ID。

LSU数据包

OSPF路由器会发此类数据包来实施LSA的泛洪。单个LSU数据包内会包含多条LSA。OSPF路由器也会发送LSU数据包,来回应(邻居路由器发出的)LSU数据包。以泛洪方式发出的LSA由LSA确认数据包进行确认。只要有一条未经确认的LSA,(OSPF路由器就会)每隔重传间隔时间重传一次。
 

LSack 数据包

用来对每条LSA进行确认。OSPF路由器也会发送LSack数据包,来应答LSU数据包。可用单个LSack数据包一次性确认收到的多条LSA。LSack数据包负责LSU数据包的可靠传输。
链路状态确认数据包以组播的方式发送。若(发送LSack数据包的)路由器为DR/BDR,则IP包头的组播目的IP地址为224.0.0.5(所有SPF路由器地址)。否则,LSack数据包IP包头的组播目的IP地址为226.0.0.6(DR/BDR地址)。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张小元.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值