静态路由在以太网接口中的写法及路由器的操作 和 路由表与FIR表

目录

静态路由在以太网接口中的写法及路由器的操作

(1)配置场景一

(2)配置场景二

(3)配置场景三

(4)配置场景四

 路由表与FIR表


静态路由在以太网接口中的写法及路由器的操作

使用 ip route-static 命令可以为设备添加静态路由,介绍一下静态路由在配置时的一些注意事项,实际上,当出接口为BMA类型(例如以太网接口)时,静态路由的不同书写方法将导致路由器执行不同的操作。

如图所示中,R1、R2及R3预备采用静态路由实现各个网段的互通,我们将围绕R1到达3.3.3.0/24这一目标,来看看当R1采用不同的静态路由配置时路由器的操作规程。

(1)配置场景一

当R1采用如下配置时:

[Rl]ip route-static 3.3.3.0 24 10.1.12.2

这是一种非常典型、也是通常推荐的静态路由配置方法,该路由指定了明确的下一 跳IP地址。这条静态路由书写完成后,R1会将其添加到路由表中,由于该条静态路由 并未指定出接口,因此R1继续在路由表中查询到达该路由下一跳IP地址10.1.12.2的路由,它发现该IP地址是本地接口 GE0/0/0所直连的网段中的地址,于是将路由3.3.3.0/24 关联到出接口 GE0/0/0。 R1的这个操作被称为递归(Recursion)查询,也被称为路由迭代。

此时假设R1收到去往3.3.3.3的报文,它会将报文从GE0/0/0接口转发出去,并且 报文被转发给10.1.12.2。

(2)配置场景二

当R1采用如下配置时:

[Rl]ip route-static 3.3.3.0 24 GigabitEthemet 0/0/0

该条静态路由只关联了出接口,而并未指定下一跳IP地址信息。完成上述配置后, R1将认为3.3.3.0/24从GE0/0/0接口出去即可到达,由于没有明确的下一跳IP地址信息, 因此当其转发到达3.3.3.0/24的报文时(以目的主机33.3.3为例),它将直接从GE0/0/0 接口发送ARP Request广播数据帧,试图获知3.3.3.3对应的MAC地址。此时如果R2 的GE0/0/0接口激活了 ARP-Proxy,并且其存在到达3.3.3.0/24的路由,则R2会回应R1 关于3.3.3.3的ARP Request,并且以自己GE0/0/0接口的MAC地址进行回应。如此一 来,R1即可将到达333.3的数据帧转发给R2,再由后者进一步转发。当然,如果R2 没有在GE0/0/0接口上激活ARP-Proxy,那么在本环境中,R1所发出的ARP Request将势必无法收到任何回应,它自然也就无法将到达3.3.3.3的流量顺利转发出去。

(3)配置场景三

当R1采用如下配置时:

[Rl]ip route-static 3.3.3.0 24 GigabitEthemet 0/0/0 10.1.23.3

该静态路由既指定了下一跳IP地址又指定了出站接口,因此这条路由拥有了足够的 转发信息,它将被直接加载到R1的路由表中——虽然,初始时R1的路由表中并没有到 达10.1.23.0/24的任何路由信息。此时R1认为3.3.3.0/24 可以通过GE0/0/0接口所直连 的10.1.23.3到达,因此R1并不会在路由表中对下一跳地址10.1.23.3进行递归查询。

当有去往3.33.0/24的流量到达R1时,R1将直接在GE0/0/0接口上发送ARP Request,尝试请求10.1.23.3这个IP地址对应的MAC地址。此时如果R2的GE0/0/0接口激活了 ARP-Proxy,则会以自己的接口 MAC地址进行回应,数据帧则可以到达R2, 再由R2转发到目的地,否则数据帧无法被R1顺利发出。当然,这种静态路由的配置方式并不被建议。

(4)配置场景四

当R1采用如下配置时:

[Rl]ip route-static 3.3.3.0 24 10.1.23.3

初始时,该路由并不会被加载到R1的路由表,因为其下一跳IP地址10.1.23.3无法 经递归査询确认直连的出接口(该路由本身并未指定出接口,与此同时R1在路由表中 也无法査询到去往10.1.23.3的路由)。

此时在 R1 上增加静态路由:ip route-static 10.1.23.0 255.255.255.0 10.1.12.2,则到 达3.3.3.0/24及10.1.23.0/24的路由都会出现在R1的路由表中,R1根据路由表将路由 3.3.3.0/24的下一跳10.1.23.3进行递归查询,它能够找到匹配10.1.23.3的路由表项,并 且该表项的下一跳IP地址为10.1.12.2,进一步在路由表中查询10.1.12.2,则发现该IP 地址处于本地直连网段10.1.12.0/24中,且出接口为GE0/0/0。因此R1获取了足够的转 发信息,当其转发到达3.3.3.3的流量时,将其从GE0/0/0接口发出,下一跳为10.1.12.2。

 路由表与FIR表

具备路由功能的华为数通产品(例如路由器,三层交换机等等,以路由器为例)都要维护着两种非常重要的数据表:一时路由表(Routing Table),也被称为路由信息库(Routing Information Base, RIB);二是数据转发表,也称为转发信息库(Forwarding Information Base, FIB)。

首先每台路由器都维护着一张全局路由表,另外路由器所运行的每种路由协议也维 护着该协议自己的路由表。对于全局路由表,大家已经非常熟悉了,使用display ip routing-table命令所输出的表格就是全局路由表。路由器可以通过多种途径获取路由信 息,例如,它可以运行多种动态路由协议,而通过每-种动态路由协议所获知的路由信 息首先存储于该协议自己的路由表中,然后路由器根据路由优先级和度量值等信息来进 行路由的优选,并将被优选路由加载到全局路由表中。

路由表指的就是全局路由表。我们将路由表视为位于路由器的控制平面,如图所示,实际上路由表并不直接指导数据转发,换句话说,路由器在执行路由査询 时,并不是在路由表中进行报文目的地址的査询,真正指导数据转发的是FIB表,路由 器将路由表中的活跃路由下载到FIB表,此后如果路由表中的相关表项发生变化,FIB 表也将立即同步。由于两张表的一致性,也因为路由表阅读起来更加直观。

路由器数据转发过程时,会用“路由器通过查询路由表来决定 数据转发的路径”这一说法,但是需要注意,实际上,路由器查询的是FIB表,位于控制层面的路由表只是提供了路由信息而已。

FIB表是位于路由器数据平面的表格,实际上它在外观上与路由表非常类似。FIB 的表项被称为转发表项,每条转发表项都指定要到达某个目的地所需通过的出接口及下 一跳IP地址等信息。路由器将优选的路由存储在路由表中,而将路由表中活跃的路由下 载到FIB表,并使用FIB表转发数据。路由表通常是存储在设备的动态内存中,例如 RAM (Random Access Memory,随机存取存储器),而FIB表中的数据则往往被存储在 一个 ASIC (Application Specific Integrated Circuit,专用集成电路)中,这使得设备在 FIB 中进行数据查询时,可以实现相当高的速度。当然,用于存储FIB表的空间是有限的, 因此在大型的网络中要关注设备的路由表规模,在保证数据可达的前提下,通过各种机 制或手段来减小设备路由表的规模。

在如图所示中,R3的路由表如下:

 从上述输出可以看出,R3配置了两条静态路由,分别用于到达1.1.1.0/24及10.1.12. 0/24。另外,R3还运行了 RIP及OSPF,并通过RIP学习到了 4.4.4.0/24路由,通过OSPF 学习到了 5.5.5.0/24路由。除此之外,R3还自动发现了直连接口的路由。上述所有的路 由表项在Flags列中均有“D"标志,这意味着这些路由都已经下载(Download)到FIB 表。留意R3上的两条静态路由,实际是按如下方式配置的:

[R3]ip route-static 10.1.12.0 255.255.255.0 10.1.23.2

[R3]ip route-static 1.1.1.0 255.255.255.0 10.1.12,1

 到达1.1.1.0/24的这条静态路由的下一跳IP地址是R1的接口 IP地址,该地址并非 R3直连可达,显然,R3不可能将到达该网段的数据包直接转发给R1,因为它与R1没 有直连,报文无法“隔空”发送过去,另外该条静态路由也没有明确出接口信息。因此 R3需要在路由表中以下一跳地址10.1.12.1为目的地址进行查询,看看是否有与10.1.12.1 匹配的路由表项,从而得到路由的出接口。R3的这种行为被称为路由递归查询。由于这 两条静态路由均没有指定出接口,因此都要执行递归操作得到出接口,所以在R3的路由表中,这两条路由在Flags列中均有“R”标志,R意为Relay (在此处理解为递归)。

现在再来看看R3的FIB表,使用display fib命令可以进行FIB的查看:

 从上述输出可以看出,R3路由表中所有的表项都已经下载到了 FIB表中,并且R3 针对每一条路由都完成了递归查询操作并得到路由的出接口以及在直连网络中的下一跳 IP地址。以1.1.1.0/24这条路由为例,在FIB表中,Nexthop为10.1.23.2,出接口为GE0/0/0, 显然已经完成了递归查询,这大大提高了路由执行的效率。现在当R3收到一个去往 1.1.1.0/24的数据包时,便在FIB中进行查询,找到匹配项1.1.1.0/24后,即可将数据转 发出去,而不用再进行递归操作。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dark_Ice_

你的支持是我创作的核动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值