实践

实践

我正在考虑在 /etc/network/interfaces 中建立一个像这样的接口(这是在 debian 上),带有网关外部子网:

iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1

但“ifup --verbose eth0”只给我这个错误消息:

ifconfig eth0 10.100.10.99 netmask 255.255.255.0
 route add default gw 10.100.0.1  eth0
SIOCADDRT: No such process
Failed to bring up eth0

当然,将网络掩码更改为 255.255.0.0 就可以了。

这可能吗,或者还有其他问题吗?有没有办法从 ifup 获取更多信息?我懂了互联网上的一篇文章这表明它应该有效。

答案1

解决这个问题的另一种方法是:如果您无法到达本地网络上的默认网关路由器,如何通过它发送数据包?您必须通过另一个路由器发送它们。

对于一些背景知识,请记住 IP 数据包通常包含源地址和目标地址:它来自哪里,以及它要去哪里。通常由路由器决定它如何到达那里。

因此,当您通过离网默认网关路由器发送 IP 数据包时,需要发生以下两件事之一。

  1. 本地网络路由器知道如何到达默认网关路由器,并且它同意您的想法,即您的数据包应通过默认网关路由器发送以到达其目的地。在这种情况下,为什么不直接使用本地网络路由器作为默认网关呢?

  2. 本地网络路由器认为(默认情况下)您的数据包应该通过其他路由器发送才能到达目的地。在这种情况下,你必须有某种方式来告诉它否则。此功能存在,称为“源路由”...但它被认为是安全风险,并且大多数路由器都配置为忽略它。

最后,根据我的经验,如果无法通过本地网络接口直接到达网关,Linux iproute ( ip) 工具将不允许您添加路由。

一些源路由参考:

答案2

默认网关必须与设备的 IP 地址位于同一子网。它通常是您要连接的网络的路由器 IP 地址。来自默认路由的维基百科页面:

在计算机网络中,网关是 TCP/IP 网络上的一个节点(路由器),充当另一个网络的访问点。默认网关是当 IP 地址与路由表中的任何其他路由不匹配时网络软件使用的计算机网络上的节点。它实际上是您的 PC 网络所连接的路由器的 IP 地址。

在家庭计算配置中,ISP 通常提供物理设备,该设备既可以将本地硬件连接到 Internet,又可以充当网关。此类设备包括 DSL 路由器和有线路由器。

在组织系统中,网关是将流量从工作站路由到另一个网段的节点。默认网关通常连接内部网络和外部网络(Internet)。在这种情况下,网关节点还可以充当代理服务器和防火墙。网关还与路由器和交换机相关联,路由器使用标头和转发表来确定数据包发送到的位置,交换机提供数据包进出网关的实际路径。

换句话说,默认网关提供网络中的入口点和出口点。

答案3

OP询问是否有任何方法可以从不同的子网设置网关。我不会深入讨论最佳实践,但是我已经多次看到这种实践,并且此页面仍然显示为我搜索的第一个结果,但没有明确的信息。

这个概念

您可以通过首先路由到不同子网的主机将其设置为默认网关。请记住,虽然有“安全锁”防止您随意使用网络,但数据包只不过是二进制流,可以具有任何源地址和任何目标地址。网络设备将接收该信息并决定如何处理它们所拥有的信息。路由器可以接收任何数据包,并通过转换或其他方式将其转发到它决定的任何地方。

另请考虑,当您将第 3 层标头上带有外部目标的 IP 数据包发送到路由器的 MAC 地址时,就会发生路由。第 2 层设备(简单的交换机)不会检查 IP 标头,只会检查它将数据包转发到的 MAC。只要它将数据包发送到正确的端口,它最终就会以某种方式到达路由器。然后路由器将能够进一步转发它。

假设网络已相应设置,您所需要做的就是确保数据包从正确的接口离开您的计算机。您可以通过首先通过其中一个接口创建一条到网关网络的路由,然后将您想要的任何内容路由到该网关来完成此操作。

实践

下面的ip命令应该可以为你做到这一点(对不起unix伙计们,我仍然主要只使用linux,甚至忘记了一些东西ifconfig):

ip route add 10.100.0.1/32 dev eth0 src 10.100.10.99
ip route add default via 10.100.0.1

免责声明

只是让我强制执行,我严格不参与这里的最佳实践讨论。我不是网络工程师,并且不太愿意讨论这个问题,分享我所知道的实现方式似乎对其他人很有用。

答案4

我在多个使用 Verizon ADSL 服务的地点都遇到了同样的问题。 “默认网关”位于不同的子网上。在我们的例子中,我们需要公共 IP 地址才能使用 ipsec 站点到站点 VPN。为此,我们需要将 DSL 网关置于桥接模式,以便公共 IP 地址位于我们的路由器而不是 DSL 网关上。

大多数提供商都能够相当轻松地做到这一点,但 Verizon 似乎有困难。使用 D-Link 2750B DSL 网关,将其置于桥接模式,Verizon 技术人员告诉我在单独的子网上使用默认网关。我使用 Windows 7 笔记本电脑对其进行了测试,尽管 Windows 给出了一条错误消息,大意是“你是个白痴,这是一个坏主意 - 你仍然想保存此配置吗?是/否”,但它确实可以运行。

然而,具有更严格健全性检查的软件似乎可以保护您免受自己的伤害......

尽管如此,我还是忍不住认为必须有一种方法可以伪造它......

相关内容