#交换设备
OSPF 动态路由协议
一、基本概念
- 1.中文翻译:开放式最短路径优先路由协议(open shortest path first),是一个内部网关路由协议(一个自治系统内)
- 2.也称为:链路状态路由协议:在单一区域内的路由器是向相邻路由器发送链路++状态信息++ 【包含接口IP地址和子网掩码、网络类型、该链路开销】,网络收敛后形成网络拓扑
- 链路状态信息:自己在网络中的位置,自己与谁相连
- 3.工作过程
- 相邻的路由器首先建立邻居关系
- 根据链路状态信息,形成对应的链路状态数据库
- 根据OSPF自己的算法,进行最短路径树的计算
- 最终形成路由表
与rip的区别
- rip--只告诉自己的邻居,告诉的内容是自己数据库中最新的所有路由信息,周期性的反反复复
- OSPF--向所有设备广播,内容只包括自己周围有哪些直连网段,只广播1次
++在RIP 协议中++, 路由器会将自己所知道的关于整个网络的路由信息周期性地发送给所有的邻居路由器
++在OSPF协议中++, 路由器会将自己的链路状态信息一次性地泛洪( Flooding ) 给所有其他的路由器。
RIP 协议是以UDP 作为其传输层协议的, RIP 报文是封装在UDP 报文中的。OSPF没有传输层协议, OSPF 报文是直接封装在IP 报文中的。我们知道, UDP 通信或IP 通信都是一种无连接、不可靠的通信方式。RIP 也好, OSPF 也罢, 其协议报文传输的可靠性机制都是由协议本身提供的。
rip只适合小型网络中,而ospf适用于任何规模的网络
二、OSPF区域
1.划分区域
- 为了适应大型网络,将很多路由器划分若干个区域,更快速的实现网络收敛
- 每个OSPF的路由器只维护自己所在区域的链路状态信息,只在自己的小区域进行收敛
- 每个区域都有区域ID
- 可以表示为一个10进制数
- 或者表示为一个IP地址
- 有些路由器两端连接两个不同的区域,这样就需要注意了
2.骨干区域
- 负责区域之间的路由信息传递,区域之间的通信都要经过它
- 维护OSPF自治系统内所有的路由信息
- 区域ID:0 或者 0.0.0.0
- 默认情况下,所有的非骨干区域都和骨干区域直连
- 如果是环形相连呢?
- 虚链路技术
- 如果是环形相连呢?
3.非骨干区域
- 普通区域
- 维护本区域内的路由信息
三、OSPF单区域
- DR和BDR只是路由器的某个接口的属性,而不是路由器本身的属性,是通过OSPF规定的选举过程而定的,同一个路由器在不同的网络部署中,都有可能被选举为DR和BDR
2.OSPF的度量值
- cost值
- 基于链路带宽来决定
- 100mbps 是 1
- 10mbps 是 10
- 基于链路带宽来决定
3,邻接关系的建立
- 以什么方式发送数据报文
- 组播方式
- 组播地址
- 224.0.0.5 代表所有OSPF路由器
- 当未选举出DR和BDR时,采用此方式向所有的OSPF路由器发送数据报
- 224.0.0.6 代表DR和BDR
- 当选举出DR和BDR后,DR和BDR就采用该组播地址,将汇总后的链路状态信息发给其他所有的路由器
- 224.0.0.5 代表所有OSPF路由器
- 组播地址
- 组播方式
- 报文类型
- hello报文:初始状态下发出,里面携带routeID信息,用于发现和维持邻居关系、选举DR和BDR
- 数据库描述包(DBD):向邻居发送自己的链路状态描述信息,用来同步链路状态数据库
- 链路状态请求包(LSR):请求对方有的,自己却没有的链路状态
- 链路状态更新包(LSU)
- 链路状态确认包(LSACK)
4,OSPF和RIP对比
- RIP:
- RIPv1:不支持可变长子网掩码。使用广播更新
- RIPv2:使用组播更新
- 跳数限制:15跳
- 不能划分区域,网路收敛慢
- OSPF:
- 使用组播更新
- 网路收敛快:通过区域划分
- 支持可变长子网掩码,主要体现在宣告时携带子网掩码
5、配置
1.配置命令
shell
en
conf t
router ospf 10 #10代表OSPF进程![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1e6a1ec09cd5415ebbe2d994cec46a3e.bmp)
network 192.168.10.0 0.0.0.255 area 0 #宣告
宣告网段 网段子网反码 OSPF区域 本实验只设置一个区域0
network 10.10.10.0 0.0.0.3 area 0
2,查看命令
shell
show ip ospf #查看OSPF配置信息
show ip ospf neighbor #查看邻接关系
在R2上执行上述语句 系统反馈:
Neighbor ID Pri State Dead Time Address Interface
192.168.20.254 1 FULL/BDR 00:00:34 20.20.20.2 FastEthernet1/0
192.168.10.254 1 FULL/DR 00:00:32 10.10.10.1 FastEthernet0/0
此时R1为DR
6.华为路由器配置OSPF单区域
- 进入OSPF视图--设置区域--宣告直连网段(IP + 反掩码)
powershell
<R1>sys
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 172.16.10.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 172.16.20.0 0.0.0.255
- 查看OSPF接口通过是否正确
dis ospf interface
- 查看OSPF邻居状态
dis ospf peer
- 查看OSPF路由表
dis ip routing-table protocol ospf
- 通过
dis ospf[ospf编号] routing
查看路由器的ospf路由表
截止这一步,主机之间就可以通信了
四、DR和BDR
DR(Designated Router,指定路由器)和BDR(Backup Designated Router,备份指定路由器)是两个关键的概念,它们主要用于OSPF的多路访问网络(如以太网)中,目的是减少网络中的路由信息交换和计算量。
1.DR(指定路由器)
DR是在OSPF网络的多路访问段(比如广播或NBMA网络)中选举出来的路由器,用于减少网络的通告和更新。在这个段上的所有OSPF路由器将它们的信息发送给DR,DR负责将这些信息汇总后,再发送给其他所有路由器。这样,每个路由器就不需要与段上的每一个邻居都进行信息交换,而只需要与DR交换即可,大大减少了因为路由信息交换引起的网络带宽消耗。
2.BDR(备份指定路由器)
BDR是在同一OSPF网络段中作为DR的后备而选举出来的。它与DR接收相同的路由信息,并时刻准备在DR出现故障时接管其职责,成为新的DR,以此来确保网络的稳定性和可靠性。在正常情况下,BDR并不向所有路由器发送信息,但它会与所有路由器保持状态信息的同步,并准备随时接管DR的角色。
3.选举过程
DR和BDR的选举是根据OSPF优先级(Router Priority)来决定的,路由器接口配置的优先级数值越高,路由器成为DR或BDR的可能性就越大。如果优先级相同,则查看路由器的OSPF路由器ID(Router ID),路由器ID数值较大的路由器将获得DR或BDR的资格。选举过程在网络刚刚启动时进行,之后只有在DR或BDR发生变化时才会重新进行选举。
在配置OSPF时,管理员可以手动设置路由器接口的优先级,以影响DR和BDR的选举。如果不希望某个路由器成为DR或BDR,可以将其优先级设置为0。
DR和BDR的选举只在 广播网段 或 NBMA网段中进行,在点对多点网络(P2MP)中不进行选举,该选举是针对路由器接口而言的,一个路由器上,可能同时存在DR和BDR
拓展知识:P2MP
"点对多点"(Point-to-Multipoint,简称P2MP)是一种网络拓扑结构,它描述了一种通信模式,其中单个发送节点(点)与多个接收节点(多点)进行通信。在这种网络类型中,一个中心节点(通常称为集线器或中心站)与多个外围节点(通常称为端点或叶节点)相连,形成星型或树型结构。
在点对多点网络中,中心节点负责将数据分发到所有连接的外围节点。这种网络结构在无线通信、宽带接入、视频监控系统等领域非常常见。例如,在无线网络中,一个基站可以与多个无线客户端通信;在有线网络中,一个中心路由器或交换机可以连接多个终端设备。
点对多点网络的特点包括:
单向或双向通信:根据应用需求,点对多点网络可以是单向的(如广播电视)或双向的(如无线互联网接入)。
集中式管理:中心节点通常负责网络的管理和控制,包括数据的分发、路由和错误处理。
易于扩展:添加新的外围节点通常比较简单,只需在中心节点进行配置即可。
资源共享:中心节点共享其资源(如带宽)给所有外围节点,这可能导致在高峰时段资源分配不均。
可靠性问题:如果中心节点发生故障,整个网络可能会受到影响。
点对多点网络在实现上可以是基于有线或无线的技术。例如,在无线通信中,WiMAX(Worldwide Interoperability for Microwave Access)技术支持点对多点连接,允许一个基站服务多个用户。在有线网络中,如以太网,通过使用集线器或交换机,也可以实现点对多点的连接。
这种网络类型适用于需要将数据或服务从一个中心点分发到多个终端的应用场景,尤其是在需要覆盖广泛区域且终端数量较多的情况下。
- 在同一个区域之中通过选举DR和BDR来节省网络中的流量
- 区域中的其他路由器只会和DR、BDR建立邻接关系
- 邻接关系是指:建立之后,通过该关系进行链路状态的交换,而不是物理上用网线连接的关系,用网线连接的两个设备,不一定就会建立邻接关系
- 区域中的其他路由器只会和DR、BDR建立邻接关系
- DR和BDR的选举 ^cd6de4
- 通过route ID进行选举,最大的为DR,第二大的作为BDR
- 如果是全网形的结构,只有一个DR
- route ID 有关Router-ID的相关知识详见Router-ID
- 首先选取路由器loopback上数值最高的地址
- loopback:本地回环接口
- 是路由器上的虚拟接口,是可以收发路由协议报文,也可以配置IP
- loopback上没有配置地址,选取物理接口上最大的IP地址
- 也可以直接使用命令router-id直接指定
- 首先选取路由器loopback上数值最高的地址
4.手动干预选举(华为
)
- 在默认情况下,网络中所有路由器的DR优先级都是1,则系统会根据路由器的Router-ID值的大小来选举DR和BDR
- 通过手动更改DR优先级,可以实现指定某个路由器为DR或BDR,⭐️注意配置过后需要同时重启网络中的所有路由器或重启所有路由器的OSPF进程
powershell
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf dr-priority 100
五、OSPF多区域
- 如果网络的规模不断扩大,如果继续使用OSPF单区域设置,会导致单个路由器上的链路状态数据库非常庞大,导致路由器负担过重,不便于维护管理。为了解决这个问题,OSPF提供了多区域的解决方案,链路状态的泛洪只会在单个区域内,区域之间传递的知识路由条目【由边界路由器负责ABR】,而不是链路状态
- 为了使得网络中不产生环路,所有非骨干区域的之间传递路由信息,必须经过骨干区域【area0】,就是说,非骨干区域之间不可以直接进行路由信息的交互
链路状态数据库:
每台路由器将所有接收到的LSA以及自己产生的LSA集中在一起,便得到了一个数据库,称为链路状态数据库LSDB(
link-state database
),在单区域的OSPF中,所有路由器的LSDB都是完全一样的,LSDB相当于一张关于本区域的详细地图
- 在建立LSDB后,路由器会根据"最短路径树算法SPF"(
shortest path first algorithm
)作用于LSDB,从而形成一个属于自己的最短路径树(shortest path tree
)SPT,这样,这台路由器就知道了去往本区域任何一台路由器的最优路径
1.概念
1.目的
- 实现大型网络环境
- 划分区域后实现单区域的网路收敛,网络收敛块
2.好处
- 改善网络,根据有拓展性
- 快速收敛
- 减少路由表,减少了LSU的流量
3.OSPF的通信流量
- 在区域内(域内通信量)
- 选举DR和BDR
- 内部路由器之间的通信
- 不同区域之间(域间通信量)
- ABR(区域边界路由器)
- 与其他自治系统(外部通信量)
- ASBR(自治系统边界路由器)
- ASBR(自治系统边界路由器)
4.区域
- 骨干区域
- area 0,一般用骨干区域连接外部AS
- 有1~5类型的链路状态通告
- area 0,一般用骨干区域连接外部AS
- 非骨干区域
- 标准区域
- 含有类型1,2,3的链路状态通告
- 末梢区域:area 1
- 完全末梢,最末端
- 非纯末梢,是本自治系统的末梢,但是还连接着外部区域
- 标准区域
5.6种链路状态通告(LSA)
-
1.路由器的LSA: 由区域内的路由器(内部路由器)发出
-
2.网络LSA: 由区域内的DR和BDR发出
-
3.网络汇总LSA: 由ABR发出,将整个区域的链路状态信息进行汇总,为其他区域进行发送,从而使其他区域的路由器学习到了该区域的链路状态
-
4.ASBR汇总LSA: 由ABR发给ASBR,ABR(区域边界路由器)将单区域的链路状态信息发给ASBR(自治系统边界路由器)进行汇总,从而ASBR学习到了整个自治系统的链路状态
-
5.AS外部LSA: 由ASBR发出,它将整个OSPF自治系统的链路状态进行汇总,通告外部AS
-
7.非纯末梢区域的外部LSA:NSSA,此区域含有ASBR
类型 | LSA名称 | 传播范围 | 通告者 | link-id | 描述及携带信息 | 补充 |
---|---|---|---|---|---|---|
1 | 路由器LSA(Router LSA) | 本地设备所在区域 | 该区域内所有路由器的RID | 通告者的RID | 每台OSPF路由器都会产生的LSA,本地所在区域的直连拓扑,优化网络(减少LSA的更新)时不可被删除 | 路由器LSA描述了路由器接口的IP地址、子网掩码、接口类型(如点对点、广播等)和到该接口的度量成本(如开销值)。每个接口最多只能产生一个路由器LSA。 |
2 | ** 网络LSA(Network LSA)** | 本地设备所在区域 | DR(每个MA网络中的DR) | DR的接口IP地址 | 描述的是该MA网络中所有已经形成邻接的路由器(包括DR),也就是指单个MA网络中的拓扑 | 如果一个接口连接到一个广播网络,路由器会生成一个网络LSA来表示该广播网络。这个LSA包含了所有连接到该广播网络的路由器的IP地址列表。 |
3 | 汇总网络LSA(Network Summary LSA) | 整个OSPF域 | ABR(在经过下一台ABR时,修改为新的ABR的RID) | 域间路由的目标网络号 | 描述的是所要达到某个区域的目标网段的路由,也就是域间路由 | 这种LSA用于描述到一个较大网络的路由信息,它包含了汇总后的网络地址和掩码,以及到达该网络的总开销。 |
4 | ASBR汇总LSA(ASBR Summary LSA) | 除了ASBR所在区域的整个OSPF域(ASBR所在区域是基于1类LSA交代的位置) | ABR(和ASBR同一区域的ABR,在经过下一台ABR时,修改为新的ABR的RID) | ASBR的RID | 描述的是达到ASBR的主机路由,也就是ASBR位置 | 当一个路由器连接到自治系统边界路由器(ASBR)并且需要向其他区域通告到达ASBR的路由信息时,它将生成ASBR汇总LSA。这种LSA描述了到达ASBR的网络地址和掩码,以及到达ASBR的总开销。 |
5 | AS 外部 LSA(AS External LSA) | 整个OSPF域 | ASBR | 域外路由的目标网络号 | 描述的是本AS之外的路由信息 | 当一个路由器需要将到达外部网络的路由信息通告给OSPF域内的其他路由器时,它将生成外部LSA。这种LSA包含了到达外部网络的网络地址、掩码和下一跳路由器的IP地址。 |
7 | ** 非完全末梢区域 LSA(NSSA LSA)** | 本地的NSSA区域 | ASBR | 域外路由的目标网络号 | 描述的还是本AS之外的路由信息。注意的是该LSA不能直接进入骨干区域,而是需要NSSA区域的ABR将其转换成5类的LSA才能注入骨干区域。 | 在通知其他区域关于到外部网络的路由信息时,如果一个区域被配置为不可汇总区域(NSSA),则使用这种LSA类型。它基本上与外部LSA类似,但是具有一些特殊的标记,以表明它来自NSSA区域。 |
2.cisco设备多区域
cmd
路由器0
en
conf t
rputer ospf 1
network 192.168.10.0 0.0.0.255 area 0 宣告时携带子网掩码(用的是反码)
shell
路由器1
en
conf t
rputer ospf 1
network 192.168.10.0 0.0.0.255 area 0 #左右两个网段属于不同区域
network 192.168.20.0 0.0.0.255 area 1
shell
路由器2
en
conf t
rputer ospf 1
network 192.168.20.0 0.0.0.255 area 1
最后
shell
路由器0
show ip route
......
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/24 is directly connected, GigabitEthernet0/0
L 192.168.10.1/32 is directly connected, GigabitEthernet0/0
O IA 192.168.20.0/24 [110/2] via 192.168.10.2, 00:01:10, GigabitEthernet0/0
# O IA 表示从外部区域内学习到的路由条目
3.华为设备多区域设置
设置步骤:
- 正确设置接口IP地址
- 正确设置区域
- ospf
- area
- network
powershell
示例
[R4]ospf 1
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]net 10.0.46.0 0.0.0.255
六、OSPF末梢区域
(一)概念
- 只有一个默认路由作为该区域的出口
- 该区域不能作为虚链路的穿越区域
- 末梢区域没有自治系统边界路由器ASBR
- 不是骨干区域0
(二)特征
-
末梢区域没有链路状态通告4、5、7
-
完全末梢区域里面除了一条默认路由外,没有LSA 3、4、5、7,只有1和2
- 就是说,只要配置了末梢区域,就会生成一条默认路由,从外部指向内部
- 因为这里是末梢,它只和区域内部的路由器相连,所以如果有外网连接到这里,通过默认路由,就可以访问内部,因为没有其他路可以走
-
末梢区域和完全末梢区域的目的:
- 减少区域内的链路状态通告
各路由器设置好IP地址后
路由器1、2、3需要设置area 0 为末梢区域
shell
路由器1
conf t
router ospf 1
area 2 stub #设置区域2为末梢区域
路由器2、3相同
此时路由器2、3系统提示(只展示2的)
......
o 192.168.10.0/24 后面忘了 #这里是由于路由器1发送了 路由汇总 通告,使得路由器2学习到的10.0网段
O 192.168.30.0/24 [110/2] via 192.168.40.1, 00:09:03, GigabitEthernet0/0
#这是学习到的内部路由条目,因为有两种链路状态通告还在运行(LSA1和2)
192.168.40.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.40.0/24 is directly connected, GigabitEthernet0/0
L 192.168.40.2/32 is directly connected, GigabitEthernet0/0
O*IA 0.0.0.0/0 [110/2] via 192.168.40.1, 00:09:03, GigabitEthernet0/0 生成了一个默认路由
因为在末梢区域内的所有设备想要访问外网,只有一条路能出去,所以不需要学习其他路由器的链路状态信息
如果设置
area 2 stub no-sunnary #关闭路由汇总(使ABR不汇总末梢区域的链路状态信息)
这里就没有10.0网段的条目了▲
O 192.168.30.0/24 [110/2] via 192.168.40.1, 00:09:03, GigabitEthernet0/0
#这是学习到的内部路由条目,因为有两种链路状态通告还在运行(LSA1和2)
192.168.40.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.40.0/24 is directly connected, GigabitEthernet0/0
L 192.168.40.2/32 is directly connected, GigabitEthernet0/0
O*IA 0.0.0.0/0 [110/2] via 192.168.40.1, 00:09:03, GigabitEthernet0/0