目录
基本信息
DR选举规则
OSPF五种报文
OSPF的基本邻居状态:
骨干区域、普通区域和虚链路
骨干网和普通区域
虚链路
LSA链路状态通告
路由器角色:
常用LSA:
末梢区域,完全末梢区域和非纯末梢区域
ospf是作用在端口上的,在ospf协议中,area 0为骨干网,所有区域要跟area 0连接才能转发数据(下面的拓扑图area 2 没有与area 0直接相连,我们可以用虚链路方法进行连接),同一个路由器的不同端口可以是不同的区域。
基本信息
- 邻居关系:指双方收到对方传来的hello报文
- 区域:骨干区域,普通区域
- 自主系统AS:使用相同协议的路由器
- DR:指定路由器,每个区域的所有路由器都要与DR建立邻接关系,告知这个区域的拓扑,DR负责告知该区域内的其它路由器其它区域的拓扑结构(指的时接口,并不是整个路由器)
- BDR:备份DR,当DRdown掉后,会立刻成为DR进行工作
- 成本(cost):路径开销
- SPF算法:找最短路径算法
DR选举规则
DR的主要作用是用来与其它区域交换网络拓扑信息,大大减少了网络中带宽的使用情况
(1)优先级选取:优先级越大,成为DR的可能性越高,路由器默认优先级为1,可以通过ip ospf priority 手动修改优先级;优先级为0,则不参与DR的选取,称为DRother
(2)Loopback:loopback越大,DR的可能性越高
(3)Route ID:当优先级和loopback都相同时,Route ID越大越可能成为DR
(4)IP 地址:route id也相同,则ip地址越大,成为DR 的可能性越高
OSPF五种报文
Hello报文:周期性的发送给邻居自己的路由,用于发现、建立和维护邻居关系
DD(DBD报文)(数据库描述)报文:两台路由器进行数据同步,描述自己的LSDB(链路状态数据库)情况,内容包括LSDB中的每条LSA(路由条目)的header,交换链路状态数据库摘要
LSR(链路状态请求)报文:两台路由器交换DD后,就知道对端路由器有哪些是自己没有的路由信息,发送LSR请求,内容包括LSA的信息
LSU(链路状态更新)报文:给对端发送LSR请求的LSA详细的链路状态信息,
LSAck(链路状态确认)报文:收到LSU后进行确认,发送确认报文
OSPF的基本邻居状态:
(1)down:未启用ospf协议
(2)Init(初始状态):收到来自对端的hello包
(3)2—WAY:双方都受到了来自对方的hello包,建立邻居关系
(4)exstart:预启动
(5)exchange:路由器交换自己的DBD
(6)loading:获取未知的LSA
(7)Full:建立邻接关系,所有路由数据库达到统一
骨干区域、普通区域和虚链路
骨干网和普通区域
代码部分只以R2 为例:
Router2
#
interface GigabitEthernet0/0/0
ip address 10.0.1.1 255.255.255.0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 10.0.1.1 0.0.0.0
查看刚划分ospf区域时,ospf的工作过程
查看R3邻居表:
display ospf peer brief
虚链路
以上图为例,查看R4邻居状态和R2路由表
发现有邻居关系但是没有路由信息,因为area 0并没有和area 2连接,这里我们需要虚链路进行逻辑链接。
R3:
#
ospf 1 router-id 3.3.3.3
area 0.0.0.1
network 20.0.1.1 0.0.0.0
vlink-peer 4.4.4.4
R4:
#
ospf 1 router-id 4.4.4.4
area 0.0.0.1
network 20.0.1.2 0.0.0.0
vlink-peer 3.3.3.3
再次查看R3路由表:有area 2的路由信息
LSA链路状态通告
在互相交换路由信息时,交换的其实是LSA
路由器角色:
1.内部路由器(IR):所有接口都接入同一个区域的路由器
2.区域边界路由器(ABR):接入多个区域的路由器,但接入的区域中必须有一个area 0
3.骨干路由器(BR):接入area 0的路由器
4.AS边界路由器(ASBR):工作在ospf边界的路由器
常用LSA:
1类LSA:router
区域内部产生,任何一个ospf路由器都会产生1类lsa
1类LSA的名字,表示的是:每一个路由器的router-id
2类LSA:network
只有DR可以产生2类lsa,也是区域内部产生,最重要的作用是可以查看子网掩码
2类LSA的名字,表示的:DR接口的IP地址;
3类LSA:summary
区域之间产生,ABR产生
3类LSA的名字,表示的是:不同区域之间的网段;
4类LSA:sum-asbr
与ASBR在同一个区域的ABR产生
4类LSA的名字,表示的是:ASBR 的 router-id ;
5类LSA:external
5类LSA的名字,表示的是:OSPF的外部路由的网段;
由非ospf路由器产生
7类LSA:nssa
在nssa区域的ASBR产生,表示的是ospf的外部路由
7类LSA的名字,表示的是:OSPF的外部路由的网段;
末梢区域,完全末梢区域和非纯末梢区域
stub区域:又称末梢区域,区域内不能引入其它路由协议的路由,不可以引入外部路由(不接受五类LSA),默认ABR到其它区域是一条默认路由
totally stub区域:完全末梢区域,不接受3,4,5类LSA,可以用来精简路由表
nssa区域:非纯末梢区域,可以引入其它路由协议的路由,可以引入外部路由,但是nssa区域内引入的外部路由是七类LSA只能在nssa区域内传播,所以要转换成5类LSA才能在整个ospf区域内传播
实操讲解stub和nssa
拓扑图
配置ip和ospf,在R1和R6之间做虚链路,查看R5的路由表和area 2的数据库
/**注意!!stub区域里的所有路由器都要设置成stub**/
R3和R5
#
ospf 1 router-id 5.5.5.5
area 0.0.0.2
stub
可以看到,stub模式可以用来精简路由表,出区域自动换成一条默认路由,所以外部网络结构无论怎么变化,都影响不到stub区域。
totally stub:
把R3和R5stub换成stub no-summary再次查看R5路由表
#
ospf 1 router-id 5.5.5.5
area 0.0.0.2
stub no-summary
再来配置nssa区域
先引入外部网络10.10.10.10,这里用到了acl表,下次详讲
R4:
#
acl number 2000
rule 5 permit source 10.10.10.10 0
#
route-policy a permit node 10
if-match acl 2000
#
ospf 1 router-id 4.4.4.4
import-route direct route-policy a
area 0.0.0.1
再来看R4和R1路由表,可以看到外部网络10.10.10.10添加成功,并写入ospf中
将area 1 划分为nssa区域(nass区域中的路由器都要配置为nssa)
#
ospf 1 router-id 4.4.4.4
import-route direct route-policy a
area 0.0.0.1
nssa
R4的路由表和lsdb表
再看看R1的区域1 的lsdb表:
此时可以看到R4的第七类LSA到R1这里被R1转换成了第五类LSA,第七类LSA使不能在ospf中传输,只能被转换成第五类LSA才可以