路由分类
-直连路由 -非直连路由 &:静态路由 &:动态路由 @: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的工作过程
-建立邻居表:和小姐姐成为朋友
-同步数据库:交换个人信息(家庭住址)
-计算路由表:计算出从我们家到她家的最优的路径
-建立邻居表:成为朋友,交换个人基本信息
hello报文:建立邻居关系和维护邻居关系 打招呼,大家好,我是小红 大家好,我是小兰 你好,小兰,我是小红,我和你是朋友 你好,小红,我是小兰,我和你是朋友 周期性发送hello ,用于维护邻居关系(朋友关系)
-同步数据库:把秘密分享给对方(我有有多少邻居,邻居特点,住址)
DBD报文:用于描述数据库摘要信息 小红家:有蔬菜 小兰家:有肉 黄瓜 猪肉 LSR报文:用于请求对方数据库中的LSA(链路状态通告) 小红:兰姐,我想要你家的猪肉 小兰:红妹,我想要你家的黄瓜 LSU报文:根据对方的请求,更新信息,传递LSA 小兰:红妹,猪肉,你查收一下 小红:兰姐,黄瓜,你查收一下 LSACK:报文收到对方的更新信息(LSA)进行确认 小红:兰姐,你的猪肉,我收到了,谢谢你 小兰:红妹,你的黄瓜,我收到了,谢谢你 什么叫同步,就是我们两个的数据库里面的内容完全相同 小红家有 黄瓜和猪肉 小兰家有 猪肉和黄瓜 备注: 数据库同步--厨房蔬菜同步后,就可以炒菜,炒猪肉炒黄瓜 备注: 这道菜:猪肉炒黄瓜:就是代表一个被计算出来的路由条目 猪肉:代表计算路由的原材料,在OSPF中称为LSA(链路状态通告) 黄瓜:代表计算路由的原材料,在OSPF中称为LSA(链路状态通告) 所以,我们可以得出一个结论,OSPF中,所有的路由条目都是路由器通过OSPF计算出来的,不是学习来的 但是计算路由的“原材料-LSA”都是通过同步数据库,学习来的, 所以运行OSPF的路由器,学习的是LSA,通过LSA计算出来的是路由
-计算路由表:根据得到的信息构建一张地图,根据地图导航最优路径
报文类型
-Hello 用于发现、建立、维护和断开邻居关系(交朋友)
-DBD 用于描述数据库摘要信息(LSA头部信息)(发菜单)
-LSR 请求自己数据库中没有的LSA信息(我要)
-LSU 根据对方的请求信息,更新LSA给对方 (给你)
-LSack 收到对方的更新LSA信息后,进行确认(说谢谢)
OSPF区域
1、区域划分:
OSPF适用于大型网络,采用分层设计,分为骨干区域和非骨干区域。
2、OSPF 骨干区域
区域号为0,表示的就是“骨干区域”
3、OSPF 非骨干区域
区域号不为0,表示的就是“非骨干区域”
4、非骨干区域必须和骨干区域“直接”相连,能实现“区域之间的互通”
5、OSPF 区域的表示
通过十进制表示,例如区域 0、1、2、3等
通过点分十进制表示,例如区域 0.0.0.0 、0.0.0.1、0.0.0.2等
6、为什么要引入区域
原因:只有一个区域的不足
如果只有一个区域,公司内所有路由器都要同步数据库:
不足:
1)数据报文非常多,所以设备压力大, 带宽占用多
2)由于数据报文多,所以同步数据库非常慢,占用时间多
3)由于数据库非常大, 所以计算路由慢,所以计算出来的路由表也非常大
4)由于路由表非常大,路由器转发数据的时候, 查路由表时会让设备压力大(CPU占用高),查表慢,最终导致,数据转发慢,公司网络性能差
所以我们要引入OSPF区域
引入多个区域的优势:
1)只有同一个区域内的路由器才需要同步数据库,不同区域的路由不需要同步数据库
2)所以同步数据库的设备少, 数据报文就少,设备压力也小,也不过多浪费带宽 3)由于数据报文少,所以数据库最终就小
4)数据库小,数据库同步的速度就快,计算路由的路由就快 5)数据库小,最终路由表也小,转发数据的速度就快,公司的网络质量就好
OSPF单区域实验案例
拓扑
需求
实现全网互联互通
配置步骤
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邻居表解析
<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 ---------------------------------------------------------------------------- 1、Process : 进程号 ospf 1 :指定ospf进程号1 1)作用:在同一个设备上,区分不同的ospf路由协议 2)通过不同的进程号的ospf 协议所学习到的路由信息是不会自动相互传递的, 从而实现各个ospf 协议之间的隔离 3)ospf 进程号只在本地路由器起作用,不同的路由器的进程号,可以相同,也可以不同 4)进程号范围 <1-65535> 2、Router ID router-id 1.1.1.1 //指定router-id 为1.1.1.1 1)ospf协议给路由器起的一个名字,格式类似于IP地址(点分十进制)但是不是IP地址 2)在ospf 网络中,router-id 是唯一的标识一台路由器 3)router-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 //在用户视图下执行命令 3、Area Id :区域号 area 0.0.0.0 1)表示的是与对方设备建立邻居关系时,所使用的区域号 2)对于ospf 来说,这个区域号一定不能少 3)区域号的表示方式有两种 &: 十进制数: 0-4294967295 &:点分十进制: 0.0.0.0 - 255.255.255.255 4)区域分为两类: &: 骨干区域: 0 &: 非骨干区域 : 不为 0 4、Interface : 使用那个接口与对端建立的邻居 5、Neighbor id : 邻居的router-id 6、State : 邻居之间的状态 full :完美的邻居--也叫邻接 备注: two-way : 双向通信: 邻居状态 full : 数据库同步完成 : 邻接状态(最好的邻居的状态) 1
报文字段解析:
OSPF Header 头部报文解析: 【 OSPF Version 】 这个字段,指的是OSPF的版本 版本2——针对的是IPv4的网络 版本3——针对的是IPv6的网络 【 Message Type 】 消息类型 OSPF中,一共有五种报文:Hello、DD、LSR、LSU、LSAck 分别对应了1、2、3、4、5 【 Packet Length 】 报文的长度,不可修改 【 Source OSPF Router 】 发送这个Hello报文的路由器的Router ID 而在一个OSPF网络中,Router ID就是用来唯一标识一台路由器的 所以,不同路由器的Router ID不能相同 【 Area ID 】 发送这个Hello报文的接口,所在的区域 两台路由器,想要建立邻居,它们的互联接口,必须在同一个区域中 【 Packet Checksum 】 报文的校验和,用来校验报文是否完整 【 Auth Type/Data 】 这里指的是OSPF的认证 认证的类型 认证的数据
OSPF Hello Packet 报文解析:
【 Network Mask 】 子网掩码 默认情况下:两个建立OSPF邻居的路由器,互联接口的掩码必须相同 【 Hello Interval 】 Hello时间间隔/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 】 Dead时间/死亡时间 默认情况下:是Hello时间的4倍=40秒 Dead时间会随着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: Broadcast :网络类型默认位 广播型网络 MTU: 1500 :最大传输单元,1500字节
邻居建立失败的原因(router-id/area-id)
实验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 通(三层互通),如果三层不通,无法建立邻居关系
[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路由角色
- 骨干路由器:路由器只要有一个接口在骨干区域
- 非骨干路由器:路由器的所有接口都在非骨干区域
- ABR(区域边界路由器) 同时连接着骨干区域和非骨干区域的路由器
- ASBR(自治系统边界路由器)具有产生外部路由能力的路由器
OSPF多区域实验案例
拓扑
需求
实现全网互联互通
配置步骤
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 验证结果