R1的lo1 1.1.1.1为外部路由,将会被重分发到ospf 1 内,Area1 为NSSA区域,包括R1,R2,R3,R1为ASBR自制系统边界路由,R2,R3为区域边界路由。
外部路由1.1.1.1通过LSA7传输,当有多个出口时,在向Area0传输时必须选择一个LSA7转换LSA5的转换传输站点,选择的规则是根据router-id的大小,越大优先级越高,所以选择R3,因为R3的 router-id 为10.1.3.3,R2 的 router-id 为10.1.2.2。
在R5上show ip ospf database externale 1.1.1.1我们会发现forward address为10.1.1.1,所以R5会选择R2去往1.1.1.1,而不是R3,因为从R2转发路径更短。
如果在某种特殊情况下10.1.1.1这条路由被过滤掉了的话,R5将无法通过forward address到达外部路由。
forward address 抑制的功能是因为某种原因10.1.1.1这条路由地址被过滤的情况,抑制forward address!从而让其他路由器,列如R5能够正常的通过选择ABR来到达外部路由。
如果在R3上运用area 1 nssa no-summary translate type7 suppress-fa(因为R3通告了1.1.1.1,因此在R3上进行抑制),原先forward address:10.1.1.1将会变成forward address:0.0.0.0,意味R5会选择通告外部路由1.1.1.1的ABR,即选择R3到达外部路由1.1.1.1而非像前面没修改之前选择R2,这样就产生了次优路径的问题,R5选择了一条更远的路径到达1.1.1.1。
解决的办法是将R2的Router-id值改的比R3大,这样R2就会成为转发通告1.1.1.1的ABR路由器了。