通过阅读本篇文章,希望你能理解以下几个知识点:
1.ospf协议的报文类型;
2.ospf协议的网络类型;
3.ospf协议中路由状态;
4.ospf中路由之间的两种状态:邻居和邻接。
5.ospf协议的LSA类型;
6.ospf协议常用的配置命令。
7.ospf的小实验。
第七个知识点:OSPF的数据包类型。
OSPF的数据包总共分5种,分别为hello包,DD包,LSR包,LSU包,LSACK包。
Hello包:用于建立邻居关系。
DD包:在OSPF邻居关系建立之后,DD包负责描述本地的LSDB,接收到的路由器通过和自己的LSDB做比对,进而同步区域中的LSDB。
LSR包:用来查询本LSDB中没有或者哪些LSA是已经失效的。
LSU包:对LSR进行回应,或者定时发送LSU来更新区域中的LSDB,发送的是真正需要的LSA的内容
LSACK包:用来在收到对端发送的LSU之后返回的确认报文,内容是需要确认的LSA头部。
第八个知识点:OSPF的网络类型
OSPF的网络类型主要包括:广播,P2P,非广播多路访问(nbma),点到多点。
上篇文章讲到,路由器会在各区域中选举DR和BDR。但是,这仅仅是在广播和NBMA网络类型中才有。在P2P和点到多点网络类型中,不需要选举。
P2P:
•使用的是PPP、HDLC协议;
•使用组播224.0.0.5来发送各种数据包;
•不进行DR/BDR的选举,直接形成full邻接关系。
广播:
•使用以太网协议;
•进行DR和BDR的选举;
•通常以组播发送HELLO报文,LSU报文,和LSACK报文,以单播形式发送DD和LSR报文;
•DR和BDR给非指定路由器发送消息使用的是组播224.0.0.5;
•非指定路由器给DR和BDR发送消息使用的是组播224.0.0.6。
NBMA:
•数据包以单播的方式发送;
•进行DR/BDR的选举;
点到多点:
•hello包以组播的形式发送,其他的以单播的形式发送;
•不进行DR和BDR的选举。
第九个知识点:OSPF中路由状态。
当有两个直连的路由宣告进OSPF协议后,他们的状态变化依次为:down->init->2-way->exstart->exchange->loading->full
down:没有检测到有活动接口时的状态,
int:当接口宣告到OSPF协议后,接口会相互发送hello包,同时将自己的router id放到hello包中;
2-way:收到的对方发送的含有自己路由器ID的HELLO包,接口状态变为2-way,表示已建立邻居关系,可以共享链路状态数据
exstart:发送DD包,确定主从关系,然后从路由先发送含LSA摘要的DD;
exchange:在主的带领下开始交换DD
loading:请求更详细的信息
full:已建立完全邻接关系 完成更新过程 其数据库与邻居完全相同
第十个知识点:邻居和邻接
两台路由器互相之间的状态是2-way,则表明邻居关系建立,
当邻居关系为FULL是表明邻接关系建立
OSPF的配置:
[R1]ospf 进程号 Router-id 1.1.1.1 //创建ospf进程,设置router id;
[R1-ospf-1]area 0 //创建ospf区域
[R1-ospf-1-area-0.0.0.0]network 100.100.100.0 0.0.0.255 //将网段宣告到ospf协议的区域0中;
查看OSPF信息
[R1]dis ospf peer brief //查看OSPF的邻居建立情况
[R1]dis ospf interface //查看DR、BDR
[R1]reset ospf process //重启OSPF进程
[R1]dis ip routing-table protocol ospf //查看OSPF学到的路由
[R1]dis ospf lsdb ? //显示lsa的相关信息,?可根据需要进行选择。
[R1]dis ospf int G0/0/0 //查看接口的OSPF信息
OSPF参数修改
[接口]ospf timer hello X //修改hello时间
[接口]ospf timer dead X //修改dead时间
[接口]ospf dr-priority X //修改优先级,从而影响DR的选举
[接口]ospf cost X //修改开销
OSPF实验:
将r2接口g0/0/0的cost改为100,
最后在r6上ping 1.1.1.1查看通联情况。