实验04 - Redistribution Into OSPF from Shared Network - 图1

    • R1和R2 之间配置eBGP,R1通过 network 命令宣告192.168.1.1 网络
    • R2 收到来自R1的路由 —— 因为eBGP 发送的路由默认是缺失MED值的,所以R2会将其设置为0

    实验04 - Redistribution Into OSPF from Shared Network - 图2

    • 我们在R2的OSPF中,将BGP重分布,之后R3和R4 会收到192.168.1.1 的路由。类型为E2,metric 为1(BGP宣告进OSPF,metric默认为1.其他协议默认为20)

    实验04 - Redistribution Into OSPF from Shared Network - 图3

    • 在R3 上查看OSPF Table,Forwarding Address 是 0.0.0.0

    实验04 - Redistribution Into OSPF from Shared Network - 图4

    • 我们可以做个 tracerout 来验证R3到192.168.1.1 的路由(此时R3知道怎么去到R1,但是R1不知道怎么去到R3,所以R3到R1的ping 和traceroute 都是无法进行的,需要在R1上补1条静态路由 ip route 10.34.1.0 255.255.255.0 10.123.1.2),可以看到走的路径是 R3-R4-R2-R1,即所谓的suboptimal route

    实验04 - Redistribution Into OSPF from Shared Network - 图5

    • 我们的目标是把R3到192.168.1.1 的路由调整为最佳的R3-R1. 我们在R2的OSPF上,将G0/0 接口放入OSPF进程。然后再到R3 上查看,此时Forward Address 变成了10.123.1.1,但是192.168.1.1 从路由表中消失了。即从OSPF 收到的这条路由没有写进路由表

    实验04 - Redistribution Into OSPF from Shared Network - 图6

    • 现在这个10.123.1.0/24 对于R3来说是个直连网段,不是通过** Intra-Area 或者 interarea **ospf 学到的,所以这个192.168.1.1 的路由就不会被写入路由表。为了解决这个问题,我们有2个解决方案
      • 在R2 或 R4上宣告1条 10.123.1.1/25 null0 的虚拟路由,这条路由要优于直连网段
      • 在R3上将G0/0 的OSPF进程开启
    • 我们选择方案2,可以看到192.168.1.1 被写进路由表,并且从R3到192.168.1.1 的路径变成了直达

    实验04 - Redistribution Into OSPF from Shared Network - 图7

    • 另外,课程中提到这个路径优化,只影响去程 —— 即R3-R1的路径,不影响原有的回程R1-R3的路径(R1-R2-R 4-R3),但是经过实验,发现并不是这样 —— R1到R3的路径,也变成了直达。

    实验04 - Redistribution Into OSPF from Shared Network - 图8

    • 还有,注意到上图中最开启从R1到R3的Traceroute 过程中,中间出现了 被隐藏的节点 ——* 这说明了什么
    • 再有,如果开启了 debug ip icmp,可以看到traceroute 的输出中port unreachable,这是表明目的地已达的对方返回
      • 从源设备到目的设备之间有两跳,使用 tracert 命令检测路径。检测第一跳时,源设备发送一个 TTL 为 1 的 UDP 报文到中间一跳;检测第二跳时,源设备发送一个 TTL 为 2 的 UDP 报文,报文首先到达中间一跳 TTL 递减为 1,当该报文到达目的后,TTL 将递减为 0,这时目的设备将发送一个 ICMP Port Unreachable 消息给源, 告设备其已经跟踪到目的地址。
      • traceroute 命令将尝试跟踪 IP 数据包到某个 Internet 主机的路由,其具体方法是:先启动一个具有较小的最大存活时间值的 UDP 探测数据包,然后侦听从沿途的网关发来的 ICMP TIME_EXCEEDED 响应。探测数据包的存活时间值在开始时为一个跃点,每次对该值增加一个跃点,直至返回 ICMP PORT_UNREACHABLE 消息。ICMP PORT_UNREACHABLE 消息说明该主机已经被定位,或命令已经达到跟踪所允许的最大跃点数目

    实验04 - Redistribution Into OSPF from Shared Network - 图9