动态路由——OSPF
目录:
一、OSPF路由协议概述
1,OSPF协议
OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。
2,内部网关协议和外部网关协议
自治系统(AS)
内部网关协议(IGP)
外部网关协议(EGP)
内部网关路由协议(IGP)
例如:RIP、OSPF等
外部网关路由协议(EGP)
例如:BGP等
OSPF是链路状态路由协议
3,OSPF的工作过程
- 邻居列表
- 链路状态数据库
- 路由表
(1)OSPF协议启动后,某个端向本地所有启动OSPF协议的直连接口组播224.0.0.5发送hello包;
(2)链路状态数据库:当其他端收到后将回复hello包,建立邻接关系,端口学习链路状态信息存入链路状态数据库;
(3)最短路径树:Dijkstra算法,计算到达所有未知网段的最短路径;
(4)路由表:将计算出的最短路径加载到本地的路由表中,收敛完成。
二、OSPF基本概念
1,OSPF区域
为了适应大型的网络,OSPF在AS内划分多个区域
每个OSPF路由器只维护所在区域的完整链路状态信息
2,区域ID
区域ID可以表示成一个十进制的数字
也可以表示成一个IP
骨干区域Area 0
负责区域间路由信息传播
非骨干区域
3,Router ID
OSPF区域内唯一标识路由器的IP地址
Router ID选取规则
选取路由器loopback接口上数值最高的IP地址
如果没有loopback接口,在物理端口中选取IP地址最高的
也可以使用router-id命令指定Router ID
4,DR和BDR
在广播网络中,5台路由器总共需要建立n(n-1)/2 个邻接关系。占用了大量带宽,同时也不方便管理。
因此,需要配置DR和BDR来改进。
- DR(Designated Router):指定路由器,所有其他路由器只和它一个交换整个网络的一些路由更新信息,再由它对邻居路由器发送更新报文;
- BDR(Backup Designated Router):备份指定路由器,当DR出现故障时,BDR起着备份的作用;
- DROther(Designated Router Other):成员路由器
5,DR和BDR的选举
(1)自动选举DR和BDR
- 网段上Rouoter ID最大的路由器将被选举为DR,第二大的将被选举为BDR
(2)手工选举DR和BDR
- 优先级范围是0——255,数值越大,优先级越高,默认为1
- 如果优先级相同,则需要比较Router ID
- 如果路由器的优先级被设置为0,它将不参与DR和BDR的选举
注:
路由器的优先级可以影响一个选举过程,但是,它不能强制更换已经存在的DR或者BDR路由器。
如原来选举的DR router-id为1.1.1.1 之后又接入一个路由,router-id 为9.9.9.9 ,但是,因为DR已经选举出来,所以,9.9.9.9 不会替代1.1.1.1 成为新的DR
三、OSPF的报文
1,OSPF的组播地址
- DR会通过224.0.0.6,向所有邻居通告信息
- DRother 会通过224.0.0.5 向DR和BDR通告网络状态信息
2,OSPF数据包类型
OSPF数据包承载在IP数据包内,使用协议号89
类型:
3,OSPF邻接关系的建立
(1)OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程
(2)OSPF启动的第二个阶段是建立完全邻接关系
4,OSPF的网络类型
- 点到点网络(Point-to-Point)
- 广播多路访问网络(Broadcast MultiAccess ,BMA)
- 非广播多路访问网络(None Broadcast MultiAccess , NBMA)
- 点到多点网络 (Point -to - Multipoint)
目前主要使用的是前两种
5,OSPF的应用环境考虑与OSPF特点
考虑:
- 网络规模:自治域内路由器数量
- 网络拓扑:是网型拓扑还是其他
- 其他特殊要求:收敛速度等
- 路由器自身要求:路由器本身的硬件性能
特点:
- 可适应大规模网络
- 路由变化收敛速度快
- 无路由环
- 支持区域划分支持可变长子网掩码VLSM
- 支持以组播地址发送协议报
6,OSPF与RIP的对比
最新文章
- git初体验(四)git标签
- OC 对象和匿名对象
- 转 Linux命令及Linux终端的20个趣事
- WPF的MVVM模式
- BZOJ 2432 兔农
- sql 行转列 PIVOT 列转行 UNPIVOT
- Backpropagation 算法的推导与直观图解
- Linux Rsync备份服务介绍及部署守护进程模式
- 关于一些基础的Java问题的解答(一)
- 绕过D盾的php一句话
- vue--传值
- Go web ajax project
- centos make error: fatal error: curses.h: No such file or directory
- HTML+css+html5基础+css3须知
- [Winform]只允许运行一个exe,如果已运行则将窗口置前
- Android,XML解析
- 《Effective Java》读书笔记八(异常)
- 消息队列—ActiveMQ
- document.getElementsByTagName
- linux svn apache
热门文章
- C++//菱形继承 //俩个派生类继承同一个基类 //又有某个类同时继承俩个派生类 //成为 菱形继承 或者 钻石 继承//+解决
- 2020Android面试重难点之Handler机制,含字节、京东、腾讯经典面试真题解析!
- markdown的摘要测试
- JavaScript new 关键词解析及原生实现 new
- xml editing in vi
- Nginx搭建与相关配置
- 关于shell脚本——条件测试、if语句、case语句
- 多台虚机redis cluster集群
- 【笔记】逻辑回归中使用多项式(sklearn)
- 内网探测之SPN服务扫描及相关利用