1、EIGRP使用DUAL算法,规则为:存在FS(次优路由AD<继承路由FD),
当successor判断为down后,调用FS;当没有FS时,
该路由进入active状态,并向所有邻居发出query。
active状态一直等到所有邻居reply后,要么选择新的successor,要么丢弃掉。
2、当邻居接到query后,查询自身拓扑表。
有4种情况:
拓扑表中没有该路由的,直接reply unreachable;
发送端不是successor,reply successor;
发送端为successor,拓扑表中有FS的,去掉旧的successor并把FS转为successor,reply FS;
没有FS的,向其所有非原query的端口发送query,直到所有query被reply,该邻居生成了successor或丢弃掉该路由后,再进行reply。
3、在3min(active-time),只要有一个下游的邻居没有reply,该路由转为SIA状态。并重置与该邻居的毗邻状态。
4、上述得知避免进入SIA状态的方法,一是修改timer active-time;一是减少查询的下游邻居。由于毗邻关系不可改变,可变的就是query的去向了。stub正是处于此目的。配置了stub的router,其邻居认为其以及其下游的网络是不可能找到successor的,因此不会向该邻居发送query。这样子等待reply的对象就少了该router以及往下的网络了。