网络设置帮助

网络设置帮助

我将建立一个如下所示的网络:

  • 没有互联网连接,即这是一个封闭的网络。
  • 将会有一台 Ubuntu 10.04 服务器(64 位)来处理所需的所有服务(DHCP、DNS、NFS……)。
  • 将有两个子网。每个子网上的设备将通过交换机连接到服务器。这些子网将具有不同的地址空间(10.0.0.x 和 192.0.0.x)。
  • 仍然可以直接从另一个子网中的设备连接到另一个子网,不受任何限制。

我以前从来没有这样做过,所以我一直在阅读一些文档,但有几件事我不确定,而且我不太确定我是否设计正确。

首先,我想我必须在服务器中的两个网络之间创建一个桥梁?

其次,这是正确的做法吗?我是否应该将两个交换机连接在一起,因为我想知道如果所有流量都通过服务器的网络接口,我会遇到什么样的性能损失?每个网络可能有几十个设备,但服务器也可以作为一个简单的 NFS 服务器(但我不希望此服务的网络流量很高)并执行一些其他任务(HDD 和处理器密集型)。

我还应该考虑什么?

答案1

据我理解你的描述,你想要做这样的事情:

  (subnet "10.0.0.x")               (subnet "192.0.0.x")

[PC 1] [PC 2] ... [PC n]          [PC 1] [PC 2] ... [PC n]
   |     |          |                |     |          |
[ ----- switch 1 ----- ]          [ ----- switch 2 ----- ]
           ||                               ||
            ===============  ================
                         ||  ||
                     {eth0} {eth1}
                 ---------------------
                [ Ubuntu 10.04 server ]
                [                     ]
                [(DHCP), (DNS), (NFS) ]
                 ---------------------

下面我将尝试回答您的问题:

  • > “我想我必须在服务器的两个网络之间建立一座桥梁?”

不,不一定。

首先,确保您的 Ubuntu 机器启用了 IP 转发:检查/etc/network/options,找到其ip_forward值,它应该是ip_forward=yes。如果值为“否”,请将其设置为是并重新启动网络服务。

其次,您应该以正确的方式配置路由表。在我们的例子中,您应该添加以下路由:

route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0
route add -net 192.0.0.0 netmask 255.255.255.0 dev eth1
  • >“...这是正确的做法吗?”,“...我不希望这项服务的网络流量很高”

在这种情况下,按照上面列出的方式构建的网络就足够了。

答案2

你根本不需要一座桥梁。

  • 您可以在所有连接的设备中对路由表进行硬编码,该路由表告诉工作站可以在哪些接口上找到子网。
  • 如果您将服务器用作网络中的默认路由,并将两个网络物理连接到服务器(两个网络接口),它可以充当子网之间的路由器。在这种情况下,您只需更改服务器上的路由表。

答案3

我对 unix 不是 100% 熟悉,但您需要在 2 个地址范围之间进行某种形式的路由,Windows 为您提供路由和远程访问,不确定 Ubuntu 是否有类似的应用程序。您可能需要考虑使用第 3 层交换机。恐怕这就是我能提供给您的全部信息了!

相关内容