好的,首先我有一个双启动系统。Linux Mint 18 (Sarah) Cinnamon 和 Windows 7 SP1。幸好我这样做了,因为我是 Linux 新手。
我第一次安装 Windows 和 Linux 时,将 LAN1 设置为 192.168.1.1/255.255.255.0。无论使用哪种操作系统,我都可以毫无问题地访问 LAN1 或互联网。
最近我决定划分子网。我将 LAN1 更改为 192.168.64.80/255.255.255.240。这样我就有了 xxx80 作为网关、14 个可用 IP 作为 xxx81-xxx94(这已经足够了)以及 xxx95 作为广播。然后我重新启动了路由器,新的 IP 通过 DHCP 传播。Windows 网络收到了 DHCP 数据,我可以毫无问题地访问 LAN1 和互联网。在 Linux 上尝试了同样的操作,但无法访问 LAN1 或互联网上的任何内容。查看桌面上的网络小程序和通过终端的 ifconfig,很明显 Linux 知道新的 DHCP 数据。所以我很困惑为什么我无法访问任何东西!
是否有人了解 Linux 网络的特性,以便我可以修复那些显然需要修复的东西?
提前致谢。
答案1
我认为您的问题是您试图将网络地址用作网关地址,但您无法做到这一点。网关是网络上的主机,它必须具有主机地址。网关是所有其他主机向其发送发往不同网络的流量的主机,但它仍然是网络上的主机,并且必须使用主机地址。网络地址不可用,它不应作为任何 IPv4 数据包中的源地址或目标地址出现。
举个例子192.168.64.80/28
:
Network = 192.168.64.80
First host = 192.168.64.81
Last host = 192.168.64.94
Broadcast = 192.168.64.95
您必须从主机地址之一中选择网关地址。有些人使用第一个主机地址作为网关的标准地址,有些人使用最后一个主机地址。有些人只是选择任何主机地址。这实际上并不重要,因为网关是网络上的主机。
答案2
Cisco 路由器有一个全局配置命令ip 子网零允许将网络地址用作主机。但是,并非所有 IP 实现都默认支持此功能,这里的情况就是如此。
然而,更高版本的 IOS 似乎已经启用ip 子网零默认情况下,因此,您的路由器让您这样配置它,可能并没有发疯。
但是,您的 Linux 机器可能未配置为使用子网零。可能有一个sysctl
设置;可能有一些额外的ifconfig
或route
标志需要设置才能使用子网零。但是,我没有运行 Linux,所以我无法检查 Google 上搜索到的使用子网零的任何方法是否真的按预期工作。
来自思科网站配置子网零..
使用子网地址 0 进行子网划分是非法的,并且强烈建议不要这样做(如 RFC 791 中所述),因为具有相同地址的网络和子网之间可能会产生混淆。例如,如果网络 131.108.0.0 的子网地址为 255.255.255.0,则子网 0 将被写为 131.108.0.0,这与网络地址相同。
您可以使用全 0 和全 1 子网 (131.108.255.0),尽管我们不建议这样做。明确允许为全 1 子网配置接口。但是,如果您需要为 IP 地址分配整个子网空间...(使用上面粗斜体的命令)
答案3
Linux 对此没有问题。当我遇到此类问题时,通常是以下情况之一:
操作系统上安装了默认防火墙,请检查:
sudo iptables -nvxL
(也请注意政策)
客户端或服务器上的网络配置出现错误
- 配置命令中的拼写错误,例如
ifconfig
- 它可以配置完全虚假的地址,并且某些实现不接受 CIDR(/28
)表示法,您必须将其输入出来,或者使用关键字“netmask”。 重复的 MAC 地址
cat /proc/net/arp
另一个网络接口上同一范围内的 IP 地址
- 路由器感染病毒,检查固件
- 网络交换机端口冻结,请重新启动