Ubuntu-Server 路由器 - 转发/路由不起作用

Ubuntu-Server 路由器 - 转发/路由不起作用

我想,这或多或少是一个关于使用 ubuntu 服务器或任何 Linux 系统进行转发和路由的相当普遍的问题。

该服务器管理学校网络并有 8 个 NIC - 每个位于不同的网络上。

  • 7 通往不同的教室。
  • 1 通往网络,包含其他服务器(打印服务器、域控制器等..)
    • 最后,该网络有另一个网关通向互联网。

我想要:

  • 将来自 7 个教室的流量转发到包含其他服务器/通向互联网的网络
  • 反向转发一些流量(例如,从打印服务器到教室的打印机)

我不想:

  • 配置 NAT
  • 编辑教室中每台客户端电脑上的每个路由表。

据我了解,只需通过 sysctl 和 sysctl.conf 启用 net.ipv4.ip_forward=1 就可以了。但事实并非如此。

在阅读并尝试了许多不同的东西之后,我尝试了以下 iptables 规则。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eth0 是通向其他服务器和互联网的网络。
这行得通……但这是一条 NAT 规则。

所以我最大的问题是:有没有办法在不使用 NAT 规则的情况下做到这一点?或者:在
没有 NAT 规则的情况下,需要做些什么?

答案1

这是一个相对简单的设置...并且 Linux 可以毫无问题地处理它。

您可能正遭遇一两个问题。

1) 没有到此“路由器”的返回路由。

为了使路由器正常工作...每个设备都需要有一条到该路由器的路由。(直接连接...或连接到知道它的另一个路由器。)

无回头路

您可以通过在“Internet 路由器”中添加所有连接到“Linux 路由器”的网络的返回路由来相对简单地解决此问题。有些路由协议可以自动为您完成此操作,但在小型环境中(例如本环境),它们通常需要付出比其价值更多的努力。

2) 混合私有和公共地址空间。一旦您的数据包离开公共互联网空间...它最好使用公共 IP 进行 NAT 处理...或者合法地来自公共 IP。 私有网络地址无法从公共互联网路由。

专用网络

解决此问题的唯一方法是 NAT 或将公共地址空间分配给您的网络。NATing 相对简单且安全......公共地址空间可能非常危险,因为每台机器都可能成为黑客的目标。

答案2

配置 NAT

不要求

编辑教室中每台客户端电脑上的每个路由表。

更改 Linux 路由器后面的客户端机器上的路由不会产生任何有用的效果。问题在于服务器网络上的主机不知道如何回复。

最后,该网络中的另一个网关通向互联网。

我敢打赌,服务器网络上的所有系统的默认网关都指向边界路由器,以便获得外部访问权限,而不是这个新的 Linux 机器。

所以你的问题是服务器网络上的设备不知道如何到达这个新的 Linux 路由器后面的其他网络。它们唯一的路由指向边界路由器,以便它们获得外部访问权限,除此之外没有其他路由

  • 最好的解决方法是将路由添加到边界路由器上的静态路由。
  • 如果无法在边界路由器上添加静态路由
    • 获得更好的路由器
    • 将您的服务器网络置于集线路由器后面的另一个网络上。
    • 您可以调整服务器网络上所有内容的默认网关以指向您的集线路由器。
    • 您可以在“服务器网络”上的每个设备中添加额外的静态路由,但这不是错误的解决方案。

相关内容