一.P2P网络

在P2P网络中,路由器两端的IP不在同一网段,掩码不一致,OSPF也能建立起邻居关系,只是路由学习会不一致,具体原因可参考OSPF的区域内最短路径树的算法。如图:

AR2和AR3通过P2P网络类型互联,IP地址不在同一网段内,OSPF也能建立起邻居关系。AR3会把AR2的接口IP地址以及自己接口IP地址当作是各自的叶子节点,从而学习到路由。如下图:

以AR3为例,虽然成功的学习到了AR2接口所在网段的路由(link-type是stub,叶子节点),并成功加入到路由表中,实际上AR3是ping不通该网段的,因为下一跳不可达。在SPF树中,P2P网络类型,OSPF会用两个LINK-ID分别描述网络信息和拓扑信息。如下图:

二.MA网络

MA网段中,OSPF需要两端网段和掩码一致,才能建立OSPF邻居,原因有以下两点:

1.    DD和LSR报文在MA网段中单播发送(P2P中组播),网段不一致,则无法发送这两个报文。

2.    MA网段的网络信息由2类LSA携带,而2类LSA是由DR产生,所携带的掩码信息是DR接口的掩码,如果掩码不一致,则其它路由器无法计算出自己接口网段的路由信息。

三.OSPF的三类LSA

三类LSA中,LSA的LS-ID使用网络前缀来描述的,如果网络中存在前缀相同,掩码不同的网段时,ABR产生LSA时,掩码短的用网络前缀表示LS-ID,掩码长的网段,则用该网段的广播号来表示LS-ID,如图所示:

该拓扑中,AR3和AR4分别宣告了10.1.1.0/30 10.1.1.0/29两个网段,这两个网段前缀相同,掩码不同。为了区别LSA,AR2作为ABR,将这两条网段转换成三类LSA时,会把掩码短的网段10.1.1.0/29对应LSA的LS-ID设为10.1.1.0,把掩码长的网段10.1.1.0/30对应LSA的IS-ID设为该网段的广播地址10.1.1.3,以区别这两条三类LSA。如下图:

补充知识:OSPF通过Type(类型),Ls id(LS-ID),Adv rtr(通告路由器)三要素来唯一区别一条LSA。

四.OSPF路由优先级

1. 首先比较OSPF路由的类型:

      1,2类LSA学习到的路由>3类LSA>5类type1>5类type2

2. OSPF路由类型相同的情况下,比较cost值

3. 5类tpye2 cost值相同的情况下,比较到达ASBR的cost值,越小越优先,相同则负载;其它路由类型cost值相同则负载。

五.OSPF的路由过滤总结

1.路由引入的实现过滤(ASBR执行):

1) import-route static route-policy xxx

2)     filter-policy ip-prefix 1.0 export

import-route static

2、针对3类LSA进行过滤(ABR执行):

filter 2000 export //针对离开本区域的3类LSA进行过滤。

filter 2000 import //针对进入本区域的3类LSA进行过滤。

3、接口下针对LSA泛洪的过滤(任意路由器执行)

ospf filter-lsa-out summary acl 2003

//针对接口发出的LSA进行过滤(重启进程)

4、汇总的时候执行过滤(ABR执行):

abr-summary 1.1.1.0 255.255.255.0 not-advertise

//配置汇总路由不发送到其他OSPF区域中。

5、抑制LSA计算成为路由条目(任意路由器执行):

filter-policy 2000 import