OSPF : Open Shortest Path First - 开放式最短路径优先
支持网络的层次化设计
-区域
骨干 : 0区域,就是骨干区域
非骨干:不是区域0的,都叫做非骨干区域
所有的非0区域,必须直接连接0区域;
非0区域之间,不可以直接进行通信的;
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了金沙免费建站欢迎大家使用!
华为配置 OSPF 的命令:
[R1]ospf 10 router-id 1.1.1.1
[R1-ospf-10]area 12
[R1-ospf-10-area-0.0.0.12]network 192.168.12.0 0.0.0.255
验证命令:
display ospf 10 brief // 类似于 show ip protocols
display ospf 10 peer [brief] // 类似于 show ip ospf neighbor
display ospf 10 lsdb //类似于show ip ospf database
OSPF邻接建立状态:
0、down:邻居从完好状态到挂掉;
1、init:初始化,表示本地路由器收到了对方发送的hello包;
attempt : 尝试;
只有在以单播的方式建立 OSPF 邻居时,才会有。
2、two-way:双向通信状态;表示本地路由器收到了对方发送的hello
包,并且在对方的报文中,发现了自己的 RID(neighbor-list)
此时也说明两边的hello中的参数协商成功了;
在特殊的网络环境下,我们会在多个路由器中选择DR/BDR,
其他的路由器都叫做 DRother。此时,所有的路由器都仅仅
和DR/BDR同步数据库。DRother之间永远是处于Two-way。
选择DR的原则:
0、只有优先级不为0的路由器,才可以参与选举;
优先级为0的路由器,永远称之为 DRother。
1、首先比较的优先级,越大越好;(默认是1)
2、如果优先级相同,则比较 RID,越大越好;
DR:designated router - 指定路由器
BDR:backup designated router - 备份指定路由器
3、exstart:交换初始化状态;目的是在该阶段进行协商,从而确定
在后续的数据库同步过程中,应该如何确保稳定有效传输;
DBD-database description ,数据库描述报文;
master/slave
选择原则:RID,越大越好;
I-初始化位,表示的是第一个 DBD报文;
M-More,表示后续还有更多的 DBD ;
MS-master/slave,表示主从关系位;
4、exchange:交换
在该阶段,交换的其实不是数据库中的具体条目内容,
而是数据库中的每个LSA条目的简要信息;
此时发送的报文,就是 DBD,里面包含的是
LSA的简要/摘要信息;
5、Loading:加载
该过程中,才是真正的进行 LSA 的请求和发送的;
此时发送的报文是:LSR/LSU/LSAck
OSPF网络类型:
OSPF的工作过程,完全由网络类型来决定;
任何一种类型的链路,默认都对应着一种网络类型,
但是,可以基于网络需求,进行人工修改;
interface fas0/0 //修改端口网络类型;
ip ospf network {type}
show ip ospf interface fas0/0 //查看端口网络类型;
broadcast :广播。(MA , multi-access)
当2层协议为ethernet时,对应的是广播网络类型;
hello是10s;dead是40s;
需要选举DR/BDR;
端口主动发包,发包方式为组播(224.0.0.5/6)
non-broadcast :非广播。(NBMA)
当2层协议为Frame-relay时,对应的是非广播网络类型;
hello是30s;dead是120s;
需要选举DR/BDR;
端口不主动发包,发包方式为单播;
【OSPF实现单播:neighbor x.x.x.x】
point-to-point:点到点(P2P)
当2层协议为HDLC\PPP时,对应的是点到点网络类型;
hello是10s;dead是40s;
不需要选举DR/BDR;
端口主动发包,发包方式为组播(224.0.0.5)
point-to-Multipoint:点到多点(p2mp)
hello是30s;dead是120s;
不需要选举DR/BDR;
端口主动发包,发包方式为组播(224.0.0.5)
point-to-Multipoint non-broadcast:点到多点(p2mp-NB)
hello是30s;dead是120s;
不需要选举DR/BDR;
端口不主动发包,发包方式为单播
LSA的类型:
OSPF的数据库中包含的是 LSA ;
OSPF的数据库是以区域的形式来组织 LSA 的;
同一个区域中的所有路由器,数据库是完全同步的;
LSA的摘要信息详解:
link-id:表示的是LSA的名字,
adv:表示的是产生这个LSA的路由器的名字;
age:表示的是存活时间;最大存活时间是3600s;
seq:表示的序列号;LSA表示的链路每变化一次,LSA的序列号
就会增加1;
checksum:校验和,用于确保 LSA在传输过程中,没有被损坏。
link-count:链路计数器,只有1类LSA才会拥有。表示的是
该路由器上有多少个链路宣告进入了该区域;
1类LSA:router LSA
任何一个路由器,都会在任何一个区域中产生一个 1类LSA ;
可以将1类LSA理解为“自我介绍”,用于说明本身有哪些链路
进入了该区域,并且是连接着哪些设备,是如何连接的;
到对方的距离是多少;
1类LSA只能在一个区域内部进行传输;
link-id:路由器的RID
adv:路由器的RID
传输范围:只能在一个区域内部
ADV是否变化:不变化
2类LSA:net Link state
这种类型的 LSA ,只有在选举DR/BDR的网络环境中才会有。
只有DR才有资格产生 2 类 LSA 。
link-id:表示的是 DR 的接口IP地址;
ADV:DR的 RID ;
传输范围:一个区域内部
ADV是否变化:不变化;
// 基于 LSDB 中的1类LSA 或者 1和2类LSA,就可以计算出
一个区域内部的路由,叫做 O 的路由;
3类LSA:summary net link state
在不同的区域之间传输路由信息;
这种类型的LSA,仅有 ABR 可以产生。
3类LSA被ABR产生以后,首先进入到 OSPF 区域0,然后再转发到
其他区域。
ABR:
1、可以将非0区域中的“域内-O”路由,转变成3类LSA,发送到
0区域;
2、可以将0区域中的“域内-O”路由,转变成3类LSA,发送到非
0区域;
也可以将0区域中的“域间-OIA”路由,转变成新的3类LSA,
发送到其他的非0区域中;
3、一定不可以将非0区域中的3类LSA转发到0区域;;
link-id:表示的是路由的前缀;
adv:ABR的RID;
传输范围:一个区域内部
ADV是否变化:是;
4类LSA:summary ASB link state
专门是为了辅助5类LSA计算路由而生的;
传递的信息是 ASBR 的 RID ;
是由与 ASBR在同一个区域的 ABR 产生的;
传递过程中每经过一个ABR,ADV都会变化一次。
link-id:表示的是 ASBR的 RID;
adv:ABR
传输范围:同一个区域内部;
ADV是否变化:是的;
5类LSA:external LSA
表示的是OSPF的外部路由,没有任何区域概念;
可以在OSPF网络中畅通无阻。
哪里有OSPF,哪里就有5类LSA。
link-id:表示的是外部路由前缀;
adv:ASBR的 RID ;
传输范围:没有限制;
ADV是否变化:否;
注意:
计算域内路由时,使用的1类或者1类和2类LSA;
计算域间路由时,使用的是3类和1类;
计算外部路由时,使用的是5类和1类,或者是5类,4类和1类;
---------------------------------------------------------
非0区域没有直接与0区域互联,解决方案:
1、引入外部路由;
#运行多个OSPF进程,并且相互之间进行重分发;
2、引入内部路由(O IA)
#引入虚链路。
通虚链路建立的OSPF邻居关系,永远都是属于区域0的;
R3;
router ospf 1
area 12 virtual-link 4.4.4.4
R4:
router ospf 1
area 12 virtual-link 3.3.3.3
Virtual-link:虚链路;