路由分类

-直连路由
-非直连路由
&:静态路由
&:动态路由
IGP:内部网关路由协议-在同一个AS内部使用(在企业内部或者数据中心内部使用)
-DV:距离矢量路由协议
-RIP(v1/v2)
-IGRP-思科私有协议
-EIGRP-思科私有协议
-LS:链路状态路由协议
-OSPF:开放式最短路径优先(企业用:功能多,可以精细化控制)
-ISIS:中间系统到中间系统(数据中心用,转发能力强,大流量转发)
EGP:外部网关路由协议:在不同的AS之间使用(AS:自治系统)
-BGP:边界网关协议

纯文本


静态路由的不足

静态路由的不足:
1)当企业网络规模过大,设备过多,网段过多,配置静态路由工作量大,效率低,容易出错
2)当企业网络拓扑发生变更时,设备增加或减少时,IP地址发送变化时,由可能会需要删除原有的静态路由
重新配置静态路由,导致后期运维成本高,公司断网时间长

纯文本


OSPF概述

1、OSPF是什么

-开放式最短路径优先协议,一种最受欢迎的动态路由协议

-版本:OSPFv2(IPv4) 和OSPFv3(IPv6)

-OSPF位于OSI参考模型的第三层,数据封装在IP报头的后面

-协议号是89

2、场景:适用于中、大型网络规模,常见的场景有

& 政企网,层次化的网络架构中

& 数据中心内部,用于实现把不同的网段打通

3、作用:便于大型网络中对路由的管理和维护

ospf 入门_OSPF




OSPF的工作过程

⇒建立邻居表:和小姐姐成为朋友

⇒同步数据库:交换个人信息(家庭住址)

⇒计算路由表:计算出从我们家到她家的最优的路径



-建立邻居表:成为朋友,交换个人基本信息

hello报文 :建立邻居关系和维护邻居关系
打招呼,大家好,我是小红
大家好,我是小兰
你好,小兰,我是小红,我和你是朋友
你好,小红,我是小兰,我和你是朋友
周期性发2送hello ,用于维护邻居关系(朋友关系)

Cypher


-同步数据库:把秘密分享给对方(我有有多少邻居,邻居特点,住址)

DBD报文:用于描述数据库摘要信息
小红家:有蔬菜 小兰家:有肉
黄瓜 猪肉

LSR报文:用于请求对方数据库中的LSA(链路状态通告)
小红:兰姐,我想要你家的猪肉
小兰:红妹,我想要你家的黄瓜

LSU报文:根据对方的请求,更新信息,传递LSA(完整的LSA信息发过去)
小兰:红妹,猪肉,你查收一下
小红:兰姐,黄瓜,你查收一下
LSACK:报文收到对方的更新信息(LSA)进行确认
小红:兰姐,你的猪肉,我收到了,谢谢你
小兰:红妹,你的黄瓜,我收到了,谢谢你

什么叫同步,就是我们两个的数据库里面的内容完全相同
小红家有 黄瓜和猪肉
小兰家有 猪肉和黄瓜


备注:数据库同步--厨房蔬菜同步后,就可以炒菜,炒猪肉炒黄瓜

备注:这道菜:猪肉炒黄瓜:就是代表一个被计算出来的路由条目
猪肉:代表计算路由的原材料,在OSPF中称为LSA(链路状态通告)
黄瓜:代表计算路由的原材料,在OSPF中称为LSA(链路状态通告)

所以,我们可以得出一个结论,OSPF中,所有的路由条目都是路由器通过OSPF计算出来的,不是学习来的
但是计算路由的“原材料- LSA”都是通过同步数据库 ,学习来的,
所以运行OSPF的路由器,学习的是LSA,通过LSA计算出来的是路由

Haskell


-计算路由表:根据得到的信息构建一张地图,根据地图导航最优路径

报文类型

-Hello 用于发现、建立、维护和断开邻居关系(交朋友)

-DBD 用于描述数据库摘要信息(LSA头部信息)(发菜单)

-LSR 请求自己数据库中没有的LSA信息(我要)

-LSU 根据对方的请求信息,更新LSA给对方 (给你)

-LSack 收到对方的更新LSA信息后,进行确认(说谢谢)

OSPF区域

1、区域划分:

OSPF适用于大型网络,采用分层设计,分为骨干区域和非骨干区域。

2、OSPF 骨干区域

区域号为0,表示的就是“骨干区域”

3、OSPF 非骨干区域

区域号不为0,表示的就是“非骨干区域”

4、非骨干区域必须和骨干区域“直接”相连,能实现“区域之间的互通”

5、OSPF 区域的表示

通过十进制表示,例如区域

通过点分十进制表示,例如区域

6、为什么要引入区域

原因:只有一个区域的不足

如果只有一个区域,公司内所有路由器都要同步数据库:

不足:

  1. 1)数据报文非常多,所以设备压力大, 带宽占用多
  2. 2)由于数据报文多,所以同步数据库非常慢,占用时间多
  3. 3)由于数据库非常大, 所以计算路由慢,所以计算出来的路由表也非常大
  4. 4)由于路由表非常大,路由器转发数据的时候, 查路由表时会让设备压力大(CPU占用高),查表慢,最终导致,数据转发慢,公司网络性能差所以我们要引入OSPF区域
    引入多个区域的优势:
    1)只有同一个区域内的路由器才需要同步数据库,不同区域的路由不需要同步数据库
    2)所以同步数据库的设备少, 数据报文就少,设备压力也小,也不过多浪费带宽3)由于数据报文少,所以数据库最终就小
    4)数据库小,数据库同步的速度就快,计算路由的路由就快5)数据库小,最终路由表也小,转发数据的速度就快,公司的网络质量就好

OSPF单区域实验案例

拓扑

ospf 入门_IP_02


需求

实现全网互联互通

配置步骤

1)配置PC接口IP地址

2)配置路由器的接口IP地址

3)配置OSPF

-创建ospf进程,定义router-id

-指定相应区域

-宣告网段进入ospf

4)验证结果

配置命令

第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF
R1:配置
ospf 1 router-id 1.1.1.1 //指定ospf进程号, 指定router-id
area 0.0.0.0 //指定区域id
network 192.168.1.0 0.0.0.255 //宣告直连网段
network 192.168.12.0 0.0.0.255 //宣告直连网段

R2:配置
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
network 192.168.12.0 0.0.0.255

R3:配置
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
network 192.168.2.0 0.0.0.255

第四步:验证结果
display ospf peer brief //查看邻居表简要信息
display ip routing-table //查看路由表
PC1 ping PC2验证结果


<R1>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 2 Routes : 2

OSPF routing table status : <Active>
Destinations : 2 Routes : 2

Destination/Mask Proto Pre Cost NextHop Interface

192.168.2.0/24 OSPF 10 3 192.168.12.2 G0/0/0
192.168.23.0/24 OSPF 10 2 192.168.12.2 G0/0/0


纯文本

OSPF邻居表解析

ospf 入门_OSPF_03



<R1>display ospf peer brief //查看邻居表简要信息

OSPF Process 1 with Router ID 1.1.1.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------


1Process:进程号
ospf 1 :指定ospf进程号1
1)作用:在同一个设备上,区分不同的ospf路由协议
2)通过不同的进程号的ospf协议所学习到的路由信息是不会自动相互传递的,
从而实现各个ospf协议之间的隔离
3ospf进程号只在本地路由器起作用,不同的路由器的进程号,可以相同,也可以不同
4)进程号范围<1-65535>


2Router ID
router-id 1.1.1.1 //指定router-id1.1.1.1
1ospf协议给路由器起的一个名字,格式类似于IP地址(点分十进制)但是不是IP地址
2)在ospf网络中,router-id是唯一的标识一台路由器
3router-id的生产方式
选举规则:-手动指定:最优
-如果没有手动指定router-id ,会进行自动选举
&:自动选举
-首先选举本设备上的loopback接口的IP地址,选择IP地址最大的
--如果没有配置loopback接口选举物理接口IP地址最大的
备注:自动选举的前提是,所有的接口同时运行ospf ,如果没有同时运行,那个接口先启用ospf,
就选择那个接口的地址号,做router-id

&:手动配置
[huawei] ospf 1 router-id 1.1.1.1 //手动指定的命令
备注:当路由器已选router-id后,手修改router-id并不会生效
为什么?ospf需要稳定,ospf稳定,网络才会稳定,一旦选举router-id,就不会被替代
-如果已经有了router-id ,后来又手动指定的router-id想让新的router-id生效,怎么办?
重启ospf进程:<huawei> reset ospf process //在用户视图下执行命令


3Area Id:区域号
area 0.0.0.0
1)表示的是与对方设备建关系时,所使用的区域号
2)对于ospf来说,这个区域号一定不能少
3)区域号的表示方式有两种
&:十进制数:0-4294967295
&:点分十进制:0.0.0.0 - 255.255.255.255
4)区域分为两类:
&:骨干区域:0
&: 非骨干区域:不为0

4Interface:使用那个接口与对端建立的邻居

5Neighbor id:邻居的router-id

6State:邻居之间的状态
full :完美的邻居--也叫邻接

备注:
two-way :双向通信: 邻居状态
full :数据库同步完成 :邻接状态(最好的邻居的状态)

Ada

ospf 入门_数据库_04


报文字段解析:

OSPF头部报文解析:
OSPF
这个字段,指的是OSPF的版本
版本2——针对的是IPv4的网络
版本3——针对的是IPv6的网络

【 Message Type 】
消息类型
OSPF中,一共有五种报文:Hello、DDLSRLSU、LSAck
分别对应了12345

【 Packet Length 】
报文的长度,不可修改

OSPF
发送这个Hello报文的路由器的Router ID
而在一个OSPF网络中,Router ID就是用来唯一标识一台路由器的
所以,不同路由器的Router ID不能相同

ID
发送这个Hello报文的接口,所在的区域
两台路由器,想要建立邻居,它们的互联接口,必须在同一个区域中

【 Packet Checksum 】
报文的校验和,用来校验报文是否完整

/Data 】
这里指的是OSPF的认证
认证的类型
认证的数据

纯文本

OSPF Hello Packet 报文解析:

【 Network Mask 】
子网掩码
默认情况下:两个建立OSPF邻居的路由器,互联接口的掩码必须相同

【 Hello Interval 】
时间间隔/Hello计时器/Hello时间
就是发送这个Hello报文的路由器,多长时间发一个Hello包
默认情况下:Hello时间为10
两台路由器,想要建立OSPF邻居,它们的Hello时间必须相同


【 Option 】
特殊标记位
不同的区域类型的标记位也不同
想要建立OSPF邻居,Option位必须相同

【 Router Priority 】
DR优先级,用于DR选举
如果两台想要建立OSPF邻居的路由器,在互联接口上都配置了自己的DR优先级为0,那么,两台路由器都不会参加DR选举
而在需要DR的网络中,选举不出DR,邻居就无法继续建立
所以,两台设备DR优先级为0,在需要DR的网络中,邻居状态会卡在2-way


【 Router Dead Interval 】
时间/死亡时间
默认情况下:是Hello时间的4=40
时间会随着Hello时间的改变而改变,但还是4倍关系
所以,我们如果更改Dead时间,一定要注意是否受Hello时间影响,
即:我们需要单独更改Dead时间(手动配置的Dead时间优先于默认情况——4倍Hello时间)

【Designated router 】 : DR :指定路由器

【backup Designated router】 :BDR :备份指定路由器

【Active Neighbor 】 :活跃的邻居,我认可的邻居

纯文本

<R1>display ospf interface GigabitEthernet 0/0/0

OSPF Process 1 with Router ID 1.1.1.1
Interfaces

Interface: 192.168.12.1 (GigabitEthernet0/0/0)
Cost: 1 State: BDR Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 192.168.12.2
Backup Designated Router: 192.168.12.1
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1

重要字段解析:
Interface: 192.168.12.1 (GigabitEthernet0/0/0) :接口号和接口IP地址
Cost: 1:开销值默认为1
State: BDR:接口状态默认位BDR(备份指定路由器)
Type::网络类型默认位 广播型网络
MTU: 1500:最大传输单元,1500字节

纯文本

邻居建立失败的原因(router-id/area-id)

ospf 入门_OSPF_05


实验1:两台路由器的router-id 不能相同,才能建立邻居关系

1)修改R1路由器的的router-id 为2.2.2.2 让R1的router-id 和R2的router-id 相同

[R1]ospf 1 router-id 2.2.2.2 //修改R1的router-id 为2.2.2.2
<R1>reset ospf process //重启ospf 进程

纯文本

3)验证:无法建立邻居关系

4)结论: 两台路由器的router-id 不能相同,如果相同无法建立邻居关系

5)备注:验证完成,记得恢复配置,把R1的router-id 在改回1.1.1.1

实验2: 两台路由器的Area id 必须相同,才能建立邻居关系

1)修改R1路由器的的Area id 为2 让R1的Area id 和R2的Area id 不相同

2)配置命令

[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area 0]undo network 192.168.10.0 0.0.0.255
[R1-ospf-1-area 0]area 2
[R1-ospf-1-area 0]network 192.168.10.0 0.0.0.255

3)验证:无法建立邻居关系

<R1>display ospf peer brief

OSPF Process 1 with Router ID 1.1.1.1

Peer Statistic Information

Area Id Interface Neighbor id State

4)结论:两台路由器的Area id 必须相同,才能建立邻居关系

实验3: 两台设备的互联的接口,需要能够ping 通(三层互通),如果三层不通,无法建立邻居关系

ospf 入门_数据库_06


[R111]ospf 1 router-id 1.1.1.1
[R111-ospf-1]area 0
[R111-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255

[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.12.0 0.0.0.255


[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]undo ip add
[R2-GigabitEthernet0/0/0]ip add 192.168.13.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]undo network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.13.0 0.0.0.255

无法建立邻居的原因

1)两台设备的router-id 不能相同,如果相同无法建立邻居

2)两台设备互联接口的区域号必须相同,如果不同,无法建立邻居

3)两台设备的互联的接口,需要能够ping 通(三层互通),如果三层不通,无法建立邻居关系

OSPF路由角色

  1. 骨干路由器:路由器只要有一个接口在骨干区域
  2. 非骨干路由器:路由器的所有接口都在非骨干区域
  3. ABR(区域边界路由器) 同时连接着骨干区域和非骨干区域的路由器
  4. ASBR(自治系统边界路由器)具有产生外部路由能力的路由器

OSPF多区域实验案例

拓扑

ospf 入门_IP_07


需求

实现全网互联互通

配置步骤

1)配置PC接口IP地址

2)配置路由器的接口IP地址

3)配置OSPF

-创建ospf 进程 和 router-id

-配置ospf 区域id

-宣告直连网段进ospf

4)验证结果

配置命令

第一步:配置PC接口IP地址
第二步:配置路由器接口IP地址
第三步:配置OSPF

R1配置:
ospf 1 router-id 1.1.1.1
area 0.0.0.12
network 192.168.1.0 0.0.0.255
network 192.168.12.0 0.0.0.255

R2配置:
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.12
network 192.168.12.0 0.0.0.255

R3配置:
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
network 192.168.34.0 0.0.0.255

R4配置:
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 192.168.34.0 0.0.0.255
network 192.168.45.0 0.0.0.255

R5配置:
ospf 1 router-id 5.5.5.5
area 0.0.0.0
network 192.168.45.0 0.0.0.255
area 0.0.0.56
network 192.168.56.0 0.0.0.255

R6配置:
ospf 1 router-id 6.6.6.6
area 0.0.0.56
network 192.168.2.0 0.0.0.255
network 192.168.56.0 0.0.0.255


第四步:验证结果
display ospf peer brief //查看邻居表简要信息
<R1>display ip routing-table protocol ospf
PC1 ping PC2验证结果

纯文本


无法建立领居

无法建立领居关系的原因
1因为三层网络不通, 无法建立领居关系 所以网络三层通信必须要在同一网段 可以建立领居
2因为Router-id一致, 无法建立领居关系 所以routerid必须要不同 可以建立领居
3因为区域不一致 无法建立领居关系 所以OSPF区域要相同 可以建立领居
4因为OSPF 没有进行宣告 无法建立领居关系 所以OSPF要进行宣告 可以建立领居
5因为Hello时间不一,死亡时间一致 无法建立邻居关系 所以OSPFhello时间必须要一致 可以建立领居
6因为dead时间不一致 无法建立领居关系
7接口的掩码不一致 无法建立领居关系

Bash