前些天同事离职,顺便问了问面试时候的问题,其中一个ospf非骨干区域为什么必须连接骨干区域。这个问题蛮经典,涉及到ospf环路问题。

    其中ospf中lsa,lsa由LS type、link state id、adverting router标识出。非骨干区域之间交换数据需要通过骨干区域进行。区域之间的路由通过abr讲一个区域内已计算出来的路由封装成3类lsa发送到另一个区域中传递路由信息。测试lsa中不再是链路状态信息,而是纯粹的路由信息。因为d-v算法无法保证消除路由自环,自环产生原因为生成该条路由的ABR路由器不会加入生成者信息,每一条路由信息都无法知道最初由谁生成,ospf生成lsa时将自己router ID加入lsa,如果该信息传递超过两个区域则失去最初生成者信息。

    解决的办法就是所有ABR将本区域内的路由信息封装成lsa后,统一发送给一个特定区域,再由该区域将信息转发其他区域,特定区域内,每条lsa都确切知道生成者信息,非骨干区域之间传递都会发送至特定区域中,所以不会产生路由自环。