我正在考虑在 /etc/network/interfaces(这是在 debian 上)中创建一个这样的接口,网关位于子网之外:
iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1
Run Code Online (Sandbox Code Playgroud)
但是“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
Run Code Online (Sandbox Code Playgroud)
当然,将网络掩码更改为 255.255.0.0 效果很好。
Jan*_*der 14
解决这个问题的另一种方法是:如果您无法访问本地网络上的默认网关路由器,您如何通过它发送数据包?您必须通过另一个路由器发送它们。
对于某些背景,请记住 IP 数据包通常包含源地址和目标地址:它来自哪里,以及它要去哪里。通常由路由器决定它如何到达那里。
因此,当您通过离网默认网关路由器发送 IP 数据包时,需要发生两件事之一。
本地网络路由器知道如何到达默认网关路由器,并且它同意您的想法,即您的数据包应通过默认网关路由器发送以到达其目的地。在这种情况下,为什么不直接使用本地网络路由器作为您的默认网关呢?
本地网络路由器认为(默认情况下)您的数据包应该通过其他路由器发送才能到达目的地。在这种情况下,您必须有其他方式告诉它。这种能力存在,被称为“源路由”……但它被认为是一种安全风险,大多数路由器都配置为忽略它。
最后,根据我的经验,ip如果无法通过本地网络接口直接到达网关,Linux iproute( ) 工具不会让您添加路由。
几个源路由参考:
默认网关必须与设备的 IP 地址位于同一子网。它通常是您要连接的网络的路由器 IP 地址。来自默认路由的维基百科页面:
在计算机网络中,网关是 TCP/IP 网络上的一个节点(路由器),充当另一个网络的接入点。默认网关是当 IP 地址与路由表中的任何其他路由不匹配时网络软件使用的计算机网络上的节点。它实际上是您的 PC 网络所连接的路由器的 IP 地址。
在家庭计算配置中,ISP 通常提供物理设备,该设备既可以将本地硬件连接到 Internet,又可以充当网关。此类设备包括 DSL 路由器和有线路由器。
在组织系统中,网关是将流量从工作站路由到另一个网段的节点。默认网关通常连接内部网络和外部网络(Internet)。在这种情况下,网关节点还可以充当代理服务器和防火墙。网关还与路由器和交换机相关联,路由器使用标头和转发表来确定数据包发送到的位置,交换机提供数据包进出网关的实际路径。
换句话说,默认网关提供网络中的入口点和出口点。
| 归档时间: |
|
| 查看次数: |
82854 次 |
| 最近记录: |