网络配置

网络配置

这是我的情况:

路由器 A:IP 192.168.1.1 掩码 192.168.1.0/24 - 连接到互联网。

服务器: - 接口 eth0:inet addr:10.1.1.125 掩码:255.255.255.0(连接到路由器 B) - 接口 ra0:inet addr:192.168.1.125 掩码:255.255.255.0(连接到路由器 A)

路由器 B:IP 10.1.1.254 掩码 10.1.1.0/24 - 连接到服务器的 eth0

电脑:通过WiFi连接,连接到路由器B。

我在路由器 B 上配置了一条静态路由,使用 192.168.1.125 作为默认网关,我可以从计算机 ping 该 IP。

问题是:我如何连接到互联网?换句话说,来自服务器 eth0 的流量应使用 ra0 作为网关。

有什么建议吗?

谢谢

答案1

我认为您需要在服务器上启用路由功能(我假设是 Linux),以便它能够路由不发往自身的数据包。请参阅本文如何做到这一点。

答案2

回应 ~quack 的评论,为什么不直接连接路由器并让它们处理路由?特别是如果它们是 NAT 路由器,那么数据包就有更好的机会流动,因为不仅 Computer01 需要知道如何到达互联网,RouterA 也需要知道如何到达 Computer01。

这可能很简单,只需将您的服务器变成 NAT 路由器即可,可以使用 Windows 的接口共享或各种 Linux 配置。虽然我并不反对将服务器用作路由器,但这样做确实会给服务器带来额外的负载。

答案3

我找到了一个使用 iptables 的解决方案(仅两行):

iptables --table nat --append POSTROUTING --out-interface ra0 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT

谢谢你们!

答案4

您可以桥接服务器上的两个接口。

  1. 安装桥接实用程序包。

apt-get 安装 bridge-utils

  1. 创建桥梁。

brctl addbr br0

  1. 从以太网接口删除所有 IP 地址。

ifconfig eth0 0.0.0.0 关闭

ifconfig eth1 0.0.0.0 关闭

  1. 如果需要,启用 STP 支持。

brctl stp bra 开启

  1. 将以太网接口连接至网桥。

brctl addif br0 eth0

brctl addif br0 eth1

  1. 启动网桥和以太网接口。

ifconfig eth0 启动

ifconfig eth1 启动

ifconfig br0 启动

关联更多细节。

相关内容