![网络设置帮助](https://linux22.com/image/517994/%E7%BD%91%E7%BB%9C%E8%AE%BE%E7%BD%AE%E5%B8%AE%E5%8A%A9.png)
我将建立一个如下所示的网络:
- 没有互联网连接,即这是一个封闭的网络。
- 将会有一台 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 层交换机。恐怕这就是我能提供给您的全部信息了!