首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >局域网间路由

局域网间路由
EN

Server Fault用户
提问于 2016-10-03 14:29:38
回答 1查看 113关注 0票数 0

我有以下拓扑:

代码语言:javascript
复制
+--------------------------------------------------+
|                Segment 192.168/24                |
|                                                  |
|       Machine A               Network Router R   |
|  +-----------------+        +-----------------+  |
|  |  192.168.0.110  |        |  192.168.0.1    |  |
|  |                 |        |                 |  |
|  +-----------------+        +-----------------+  |
|           +-------------------------+            |
|           |        Machine B        |            |
|           |   +-----------------+   |            |
|           |   |  192.168.0.112  |   |            |
|           |   |  172.20.1.1     |   |            |
|           |   +-----------------+   |            |
+--------------------------------------------------+
            |        Machine C        |
            |   +-----------------+   |
            |   |                 |   |
            |   |  172.20.1.100   |   |
            |   +-----------------+   |
            |                         |
            |    Segment 172.20/16    |
            +-------------------------+

192.168/24段是物理局域网,172.20/16段是虚拟专用网。我想使用机器B作为两个段之间的路由器。B是一台支持IP转发和NAT的Linux机器。

当我在机器A中创建到172.20/16网络(通过192.168.0.112)的路由时,我可以正确地到达机器C。

然而,当我在192.168/24段的默认网关(网络路由器R)中创建到172.20/16到192.168.0.112的路由时,对于试图到达机器C,以下是正确的:

  • 源自路由器本身的Pings (192.168.0.1)正确地接收答复;
  • Pings起源于A到R,然后转到B,但不转发给C;
  • 不生成ICMP重定向。

我已经在每个节点中捕获了数据包,并且:

  1. 当上述路由在A中时,到达B的帧的以太网目的地地址被设置为B的MAC (即A直接发送到B);
  2. 当上述路由在R中时,到达B的帧的以太网目的地地址被设置为R的MAC (即A发送到R,R“发送”到B,而eth.dst是从A到R的原始MAC )。

这是设置之间唯一的区别。显然,B正在丢弃具有错误MAC地址的帧。

有趣的是,我有完全相同的设置工作在另一个基础设施(主要是不同的硬件)。

我能做些什么来修复这个设置?

EN

回答 1

Server Fault用户

发布于 2016-10-03 14:56:30

您应该得到ICMP重定向消息,而不是您期望的ICMP回显答复。

主机192.168.0.110将ICMP回波请求发送到其默认网关192.168.0.1,该网关应将数据包重定向到192.168.0.112,以到达子网172.20.0.0/16。在这种情况下,网关将响应ICMP重定向(因为直接向192.168.0.112发送ping消息的时间较短)。

下面是一个相关的服务器故障柱

为了在Linux机器上解决这个问题,我在发送机器192.168.0.110上添加了一个静态路由,如下所示:

代码语言:javascript
复制
$ sudo route add -net 172.20.0.0/16 gw 192.168.0.112

添加此静态路由时,当试图到达172.20.0.0/16子网时,此计算机将不会与默认网关联系。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/806790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档