OSPF协议详解

ospf是一种IGP(内部网关协议)动态路由协议

前置概念:

router_id: ospf中每一个路由器都有一个唯一标识,如果路由器配置了环回口,则采用环回接口addr中的最大值作为router_id, 如果没有配置环回口,则采用链路接口addr的最小值作为router_id。

链路:其实就是路由器接口的另一种说法。

1. ospf的网络类型:

链路类型决定ospf网络类型。ospf的网络类型有:ppp(串口型点到点链路), 广播网(以太链路,环令牌网络),NBMA/ 点到多点(ATM,Frame Relay,X2.5), 虚连接等。

2. ospf 区域划分:

ospf区域分为骨干区域(Area0) 和 其他区域(Area1),ospf区域的边界在路由器上(即同一个路由器的接口分别连接着不同的区域),区域通过Area id来唯一标识,一般骨干区域为0.0.0.0。

3. ospf 路由器角色:

如果一个区域中包含有广播、组播网络,需要通过lsa1 选举DR/BDR,在该网络域中,路由器分为DR/BDR, DRother路由器。二者形成全连接关系

ABR 一个其他区域的路由器中有某些接口属于骨干区域

ASBR 自治系统边界路由器,向本AS内宣告其他AS的路由信息

4. lsa类型:

lsa1(router lsa) 区域内的所有路由器都会产生,只向区域内洪泛组播(224.0.0.6)(在选举DR之前,向邻接路由器洪泛,DR产生之后,只有DR能收到该数据包),

洪泛方式:每个路由器都会向和自己直接相连的路由器发送自己知道(包括自己邻接路由器发送给自己的和自己的链路状态)的链路状态,直到区域内所有路由器都有相同的lsdb

一条lsa1包含了发出该路由器的链路状态,一条lsa的格式大致如下:

Link-Type | Link-ID State |  Data

ppp 对端路由器接口addr     本接口的addr

broadcast DR地址    本接口的addr

        stub Area 网络地址 网络掩码

        虚链路 对端路由器ID虚链路接口的mib-2 ifindex

例如:r2收到r1一条lsa1包含如下2条记录:

[

stub-network127.11.1.1255.255.0.0

ppp 10.7.7.0 10.7.7.1

]

说明 r1的链路上有一个子网127.11.0.0 和 一条ppp链路,对端路由器接口为10.7.7.0,我方接口为10.7.7.1

lsa2(network lsa)  也只在区域内洪泛(组播224.0.0.5),由区域DR产生,所有DR-Other路由器监听该地址,lsa2主要通告了所有和DR/BDR有full邻接关系的其他路由器id和DR自身路由器id

lsa3(network summary  lsa)  由ABR始发,理论上来说也是在一个区域内进行洪泛,用于向区域内的所有路由器宣告其他区域的路由器的cost最小的路径,可以说ospf在区域内是基于SPF的,在区域间路由是基于距离矢量的,当某ABR收到来自其他ABR发送lsa3时,会将ADV router修改为自己,然后向自己所属的另外一个区域内洪泛

lsa4(ASBR summary lsa) 由ABR始发,向区域内的所有路由器宣告ASBR的位置

lsa5(AS External lsa)

lsa7(NSSA External lsa)

5. ospf中的精简区域(stub区域,total-stub区域, NSSA区域  total-NSSA区域

精简区域内存在的目的是为了减少lsa3, lsa4 lsa5 lsa7的洪泛,,降低区域内带宽压力。通过使用默认路由,精简区域不用知道区域外部的目的路由的信息

stub 过滤lsa4以上信息(除lsa4洪泛的ASBR默认路由)

total sub 过滤lsa3以上信息(除lsa3宣告的默认出口路由 0.0.0.0)

你可能感兴趣的:(OSPF协议详解)