拓扑

实验 - 图1

步骤

  • R2和R3 的G0/1 配1个OSPF下的Passive-Interface,因为如果不配置的话,R2和R3都会对外发送OSPF Hello Packet,然后通过Switch收到彼此的Hello,进而发现Area 不匹配,报错 —— 虽然不影响本实验
  • 所有Router 配1个 no ip domain-lookup

默认情况

  1. 查看 R1 路由表,走R2的话类型是 intra area,Metric 是2,代号是 O
    1. 我们到R2调整G0/1接口Cost到最高65535, ip ospf cost 65535,然后回到R1,发现路由还是走R2.可见 intra area (O) 类型的路由优先级最高,即同Area

实验 - 图2

实验 - 图3

断掉R2

  1. 到R2上关闭OSPF进程,发现R1 的路由开始走R3,类型变为 inter area,代号是 O IA

实验 - 图4

断掉R3

  1. 到R3上关闭OSPF进程,发现R1 的路由变成走R4(由R9宣告) 和 R6 的2条 ECMP 等价路由,类型为 extern 1,代号为 E1

实验 - 图5

  1. 1. 为什么 metric 变成了22 ,因为 —— R9 R11 上做redistribute 时,都指定了 metric-type 类型为1,即需要计算外部(R9R11 Switch)的metric,所以是 20 + 1 + 1 = R9 Switch)+ R4R9)+(R1R4)—— 没有证据表明R9Switch 物理链路的Metric20,看起来似乎是因为 redistribute 引入了20. 我们来验证下。
  2. 1. 关闭R9R11 任意1个上的ospf
  3. 2. R11 no 掉原有的 redistribute,改为 redistribute connected metric-type 1 metric 40,然后回到R1上查看路由,发现到99.99.99.0 网络的Metric变成了42 —— 这也证明了我们的猜想是正确的,redistribute 如果不做指定,默认的 metric 值是20
  4. 2. 按照RFC3101,应该优选N1(走R6 的路径),为什么没有,因为 —— N1R6R11之间的类型,但R6 NSSA ABR,所以会执行 Type7 Type5 的翻译,就导致从R1看的话,到R6 也是 E1. R6 上查看Type7 LSA

实验 - 图6

  1. 3. 我们在R11 上把metric 改成了40,回到R1看,只剩下1条走R4 - R9metric 22 的路由
  2. 4. 此时从R6看,他可以有2条路径到99.99.99.0,我们可以来比较下N1E1 谁有更高优先级
  3. 1. 先把R11 redistribute metric 改回默认
  4. 2. 1条是E1R6 ——R1——R4——R9E1是由R4宣告给R1R1又宣告给同在Area0 R6
  5. 3. 1条是N1R6——R11N1是由R11宣告给R6
  6. 4. 此时我们在R6上查看,实际走的是N1 —— 那此时看走N1 Metric 21,而假如走E1的话Metric23,是否由可能是因为21 < 23,所以走了N1这条路?—— 我们来将R11 redistribute metric 改为22,让走N1E1 Metric 变得一样
  7. 5. 回到R6 再看,即使Metric变成了23N1E1 一样,还是走的N1. 到这里为止我们验证了2种情况
  8. 1. E1 Metric > N1 Metric,选择N1
  9. 2. E1 Metric = N1 Metric,选择N1
  10. 6. 我们还需要验证 E1 Metric < N1 Metric 的情况,再次修改R11 redistribute metric 改为220,此时我们可以看到路由改走了即E116.16.16.1 R1接口IP
  11. 7. 详见下图,所以完整的情况是
  12. 1. E1 Metric > N1 Metric,选择N1
  13. 2. E1 Metric = N1 Metric,选择N1
  14. 3. **<font style="color:#E8323C;">E1 Metric < N1 Metric,选择E1 —— 这是因为Cisco的路由器上默认开启了RFC1583的兼容,导致规则变为了:metric 相同时,选择N1metric不同时,metric 小的胜出</font>**
  15. 1. **<font style="color:#E8323C;">我们可以关闭RFC1583,在R6上:</font>**no compatible rfc1583,这样看到的效果就是,即使E1的metric 较N1小,也还是走N1,**<font style="color:#E8323C;">这样看到的效果就和书本给出的完全一致。</font>**
  16. 4. **<font style="color:#E8323C;">E2 N2 也是同样的结论 —— 只是他们不受 RFC1583 的影响</font>**

实验 - 图7

断掉R4 和 R6

  1. 现在关掉R4 和 R6 上的OSPF,我们来看 R5 和 R7上的 E2和N2.此时在R1上可以看到走R5和R7以及R8 的3条等价路由,类型是 extern 2,代号 O E2

实验 - 图8

  1. 1. R13 2条物理链路,分别在宣告Type7 Type5,根据前面学到的规则,1NSSA Router 如果同时在宣告Type7 Type5,那么Type7 中的P-bit 0NSSA ABR不会对其进行翻译 —— 注意和R7的区别
  2. 2. 但是R8 还有到R13 Type5 链路,所以R1 实际会收到3E2
  3. 1. 1个是R5 直接宣告的
  4. 2. 1个是R7 Type7 翻译的
  5. 3. 1个是R8 的一部分直接宣告的

实验 - 图9

实验 - 图10

  1. 3. 我们把R8 上的OSPF关掉,来观察R5 R7 的对比。 R7 show ip ospf database external
  2. 4. E2 就是不计算OSPF 区域内部的Cost,就只剩下 redistribute 导致的 Metric 20
  3. 5. 可以调整R12 Cost,对比R7上的路由选择。结论一致:metric 相同时,优选N2. Metric不同时,谁的metric 选谁。