20-OSPF,邻居建立条件
OSPF的工作流程都是基于邻居的发现;也就是说没有邻居,后面什么都没得玩;
邻居成功的建立需要满足一些条件;
当因为邻居建立失败导致错误时,也就是发现邻居没有时,可查看这些条件是否都满足来排错;
1.建立邻居需要检验的字段
-
RID不能冲突
-
发送Hello包和邻居失效时间一致
-
区域ID一致
-
认证一致
-
链路MTU大小一致(华为默认不开启,思科默认开启)
-
子网掩码一致、网络地址一致 (以太网组网环境)
-
末梢区域设置一致 (Option字段)
邻居基于hello包来建立;
hello包报文字段:
1)RID不能冲突
每个ospf路由器都有自己的Router ID;
Router ID用来唯一标识一台OSPF路由器(不能重复);
在hello包前面会有一个ospf Header包,Router ID保存在ospf包头的 Source OSPF Router字段中;
当两个路由器的RouterID一样时,建立邻居失败
例如:将两个路由器的RouterID都设置成1.1.1.1时重启ospf会报RouterID冲突的错误
2)发送Hello包和邻居失效时间一致
hello包中有两个字段:
Hello Interval ->间隔时间,每多少秒发一次hello包,用来维持邻居关系
Router Dead Interval ->邻居失效时间,超过多少秒还没收到hello包,表示邻居已经挂了
间隔时间默认10s,失效时间默认是间隔时间的4倍;
例如:
两个路由器R1和R2运行ospf
把R2的间隔时间改为9s时,R2的失效时间变成36s
导致的结果是:
两个路由器的间隔时间和失效时间不一致,导致R1和R2建立邻居失败;
R1的失效时间还是40s,等40s后由于收不到R2的hello包,导致状态由Full变成Down;
3)区域ID一致
也就是说路由器的接口在同一个区域时,才能建立邻居;
4)认证一致
当开启认证时,认证不一致时无法建立邻居;
认证信息在ospf包头中;
如图:当没有开启认证时两个字段都为0;
5)链路MTU大小一致
以太网接口的默认MTU为1500,也就是默认一次最大发送1500个字节;
华为设备的MTU检查默认不开启,思科设备的MTU检查默认开启;
当MTU检查开启时,如果两个路由器接口的MTU不一致则不能建立邻居;
如果MTU检查失败,会卡在Ex-start 和EXchange之间;
MTU检查开启时,MTU的值保存在DD包中:
6)子网掩码一致、网络地址一致
如果是以太网:要求网络地址和子网掩码都一致;
非以太网:网络地址一致(例如点对点不要求子网掩码一致)
子网掩码保存在hello包的字段中;
如图:
路由器R2的掩码是24
路由器R2的网络地址是12.0.0.2,路由器R1的网络地址是12.0.0.1;网络地址都是12.0.0.0,也就是网络地址一致;
将R2的掩码从24改成25后,导致路由器R2和其它路由器的掩码不一致,导致邻居状态变成Down
7)末梢区域设置一致
末梢区域在hello包的options字段中;
有8位二进制,每一位表示特定的含义;
必须options的值相同才能建立邻居;

浙公网安备 33010602011771号