将 Linux Mint 配置为网关

将 Linux Mint 配置为网关

我值得信赖的 Slackware 盒子坏了,我不得不用已经构建的 Linux Mint v18 替换它。我原本希望这将是一个直接替代品,但是这些年来 iproute2 的路由已经发生了变化。我希望只添加“route add default gw 1​​92.168.1.1 eth1”就能工作 - 确实如此 - 但问题是我的网关计算机无法与 eth0 上的任何内容建立连接。

简化布局:

|192.168.0.0/24|---|网关|---|192.168.1.0/24|
                                     |
                                     ---|路由器 192.168.1.1|---|互联网|

网关有 eth0 和 eth1,并且是 192.168.0.0/24 上所有内容的防火墙。路由器通常处理 192.168.1.0/24 上的 WiFi 设备。

当前配置,我让 KDE 网络管理器调出接口,然后添加了 gw 命令,如上所述:

# 路由-n
内核IP路由表
目标网关 Genmask 标记度量参考使用 Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1

这是有效的; 192.168.0.0/24 上的所有设备均已正确路由,我可以毫无问题地从 192.168.1.0/24 连接到网关和互联网。

但是,我无法从网关发起 ping 到 192.168.0.0/24 上的任何内容。我运行tcpdump,发现源IP已更改为192.168.1.2(eth1)。因此,这告诉我数据包从错误的接口发出,即使我将网关线路的指标设置为高于其他线路,因此不首先考虑。

我读过很多 stackexchange 帖子,以及一些网站,例如策略路由, 和linux-ip,但我似乎找不到解决方案。

我对 iproute2 不太熟悉,但为了让 192.168.0.0/24 正常工作,我所能够做到的就是:

echo "1 admin" >> /etc/iproute2/rt_tables
ip 规则从 192.168.0.0/24 添加优先级 1 表管理
ip规则添加到192.168.0.0/24优先级1表管理
ip 路由添加 192.168.0.0/24 表 admin dev eth0
ip 路由缓存刷新

这对我来说是有道理的;创建一个比默认优先级更高的表,创建一个从/到的规则,然后在同一个表上添加一条路由以通过 eth0 发送它。但是,这不起作用。

好像有什么东西我失踪了,但我找不到它。

# uname -a
Linux neXuss2 3.13.0-37-generic #64-Ubuntu SMP 周一 9 月 22 日 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

答案1

您不应该需要iproute2这样一个简单的案例。

但是,您应该检查 IP 路由的主交换机是否已打开:确保您的/etc/sysctl.conf包括线路

net.ipv4.ip_forward=1

然后运行sudo sysctl -p使其立即生效。

sysctl的默认值为net.ipv4.ip_forward0,这会完全禁用所有 IPv4 路由功能。

另外,您应该检查基础知识:验证 eth0 接口是否确实有链接并且不会产生错误。ethtool eth0验证链接状态并ethtool -S eth0查看 NIC 驱动程序中的统计计数器。

相关内容