Networking

網關必須在子網上嗎?

  • February 24, 2022

我正在考慮在 /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 中獲取更多資訊?我在網際網路上看到一篇文章表明它應該可以工作。

解決這個問題的另一種方法是:如果您無法訪問本地網路上的預設網關路由器,您如何通過它發送數據包?您必須通過另一個路由器發送它們。

對於一些背景知識,請記住 IP 數據包通常包含源地址和目標地址:它來自哪裡,以及它想去哪裡。通常由路由器決定它如何到達那裡。

因此,當您通過離線預設網關路由器發送 IP 數據包時,需要發生兩件事之一。

  1. 本地網路路由器知道如何到達預設網關路由器,並且它同意您的想法,即您的數據包應通過預設網關路由器發送以到達其目的地。在這種情況下,為什麼不直接使用本地網路路由器作為預設網關呢?
  2. 本地網路路由器認為(預設情況下)您的數據包應通過其他路由器發送以到達其目的地。在這種情況下,你必須有一些方法來告訴它。這種能力是存在的,被稱為“源路由”……但它被認為是一種安全風險,大多數路由器都被配置為忽略它。

最後,根據我的經驗,ip如果無法通過本地網路介面直接訪問網關,Linux iproute() 工具將不允許您添加路由。

幾個源路由參考:

引用自:https://unix.stackexchange.com/questions/98344