为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

网络 路由交换
我们在配置静态路由时,下一跳通常有两种选择,一种是配置一个接口,另一种是配置一个IP地址,老司机都推荐下一跳使用IP地址,有没有想过为什么呢?我们今天就使用一个例子来阐述老司机的选择。

概述

我们在配置静态路由时,下一跳通常有两种选择,一种是配置一个接口,另一种是配置一个IP地址,如下图所示:

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

下一跳的两种方式

这两种方式配置以后,看起来网络都是通的,好像没有什么区别。但实际情况不是这样哦,老司机都推荐下一跳使用IP地址,有没有想过为什么呢?我们今天就使用一个例子来阐述老司机的选择。

举例:下一跳配置接口

1. 拓扑

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

拓扑

  • 按照拓扑搭建好测试环境
  • 在R1上访问25.1.1.0/32网段,然后查看ARP表项

2. R1的配置

(1) R1的接口配置

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

R1的F0/0接口配置

(2) R1上配置一条24网段的静态路由,这条静态路由的下一跳使用接口

下一跳使用接口

(3) 查看路由表

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

查看路由表

3. R2的配置

R2在两个接口上配置IP,其它的就不需要了

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

R2配置

4. R5的配置

R5的配置可以不关注,它配置接口IP + 静态路由:

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

R5的接口配置

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

静态路由

5. 测试过程

在R1上分别ping 20.1.1.5,20.1.1.6,20.1.1.200,查看ARP表项:

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

查看ARP表项

6. 结论

如果配置下一跳为接口,则路由器会认为这是一个LAN接口,访问和这条route在同一个网段的所有主机地址,都会发送一个ARP去请求。

例如此例子中,访问任何在25.1.1.0/24网段中的主机,R1都会发送一个ARP Request,去请求对应的MAC地址。

不知道你有没有关注到MAC地址,为什么这些MAC地址是R2呢?并且所有在同一个网段的IP,对应的MAC地址都是一样的?

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

MAC地址

这就涉及到ARP代理的功能的了,R2知道25.1.1.0/24如何转发,所以用它自己的MAC地址回复了。关于ARP代理的内容,如果还有疑问,参加我之前的文章:ARP代理

举例:下一跳配置IP

1. R1配置

组网和配置和上面的相同,只是R1上的下一跳配置为IP地址,如下图所示:

 

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

 

 

下一跳地址为IP

 

查看路由表:

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

路由表

2. 测试

在R1上分别ping 20.1.1.5,20.1.1.6,20.1.1.200:

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

ping三个地址

查看ARP表项:

为什么推荐下一跳使用IP地址,而不是接口,一分钟了解一下

ARP 表项

有没有觉得很奇怪,只有一条静态路由对应的ARP表项,其它的都没有,这样是正确的吗?

这样是正确的,因为配置的下一跳是IP,所以R1访问所有在这个网段的主机,都会使用下一跳(12.1.1.2)对应的MAC去封装。也就是说,R1只需要发送一次ARP Request就可以了,只要这个ARP表项没有老化,后续所有访问25.1.1.0/24网段的主机都使用这个表项。

总结

各位小伙伴看完上面的对比,应该理解老司机为啥要推荐下一跳使用IP地址了吧?

是的,就是你想的那样,因为下一跳使用接口时,会有如下的问题:

  • 路由器访问每一个在同一个网段的主机时,都会发送ARP Request去获取MAC,增加网络中的无效流量。
  • 如果掩码很小,则路由器需要维护的ARP表项会非常大,耗费大量的设备的CPU和内存。
  • 极端情况,如果默认路由的下一跳使用接口,则路由器访问任何地址都需要发送ARP请求并且创建ARP表项,这耗费的资源就非常大了。

而下一跳配置IP地址就没有问题了,对于一个网段的所有主机,路由器只需要生成一条ARP表项就可以了,这样就节省很多的资源。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2017-07-06 08:12:02

索引查询SQL

2022-07-18 06:16:07

单点登录系统

2022-05-11 10:35:34

IP地址网络协议

2020-07-09 07:37:06

数据库Redis工具

2020-07-17 07:44:25

云计算边缘计算IT

2016-09-14 15:57:53

架构分布式系统负载均衡

2017-12-26 16:24:36

接口代码数据

2017-03-30 19:28:26

HBase分布式数据

2018-06-26 05:23:19

线程安全函数代码

2020-05-21 19:46:19

区块链数字货币比特币

2022-06-02 08:46:04

网卡网络服务器

2021-08-06 08:50:45

加密货币比特币区块链

2017-02-21 13:00:27

LoadAverage负载Load

2018-07-31 16:10:51

Redo Undo数据库数据

2015-10-10 14:11:00

互联网数据挖掘爬虫

2020-01-30 11:26:17

QinQVLAN协议

2023-03-10 13:29:00

MySQLCount函数

2021-12-01 15:18:45

MySQL复制数据库

2020-09-23 06:54:51

路由表接口数据包

2011-02-21 17:48:35

vsFTPd
点赞
收藏

51CTO技术栈公众号