我的机器连接到交换机(使用以太网电缆)。除了调制解调器(带有内置路由器)之外,该交换机还连接到其他几个路由器。使用标准 netctl 配置文件(接口=eth0,连接=以太网,IP=dhcp),我通常连接到调制解调器/路由器(192.168.100.1)。然而,今天出了点问题——我连接到了其他路由器之一(192.168.0.1)。
我现在想知道设置 netctl 配置文件以始终连接到 192.168.100.1 调制解调器/路由器的正确方法。一种选择可能是设置IP=静态并使用类似的东西地址=('192.168.100.42/24'),网关='192.168.100.1'。然而,当我尝试一些随机的东西时,比如地址=('123.123.123.42/24'),网关='123.123.123.1'netctl 没有抱怨。的输出ip addr
也显示123.123.123.42/24,即使没有123.123.123.1路由器连接到交换机。
基本上我的问题是如何强制 netctl 连接到某个路由器,使用IP = DHCP或者IP=静态。
答案1
首先,听起来您在同一个第 2 层域中有多个路由器(到目前为止没有问题)运行不同的竞争 DHCP 服务器(问题)。一般来说,每个子网应该只有一个 DHCP 服务器。可以有其他路由器(通往其他内部网络的网关等),但它们不应该运行自己的 DHCP 服务器,当然也不应该在不同的子网中。
您是对的,面对这种错误配置,使用静态地址是一个很好的解决方法。您可以手动配置客户端以使用可用的竞争子网之一和可用的竞争路由器之一。为此,您将需要:
- 正在使用的子网。在本例中,它似乎是 192.168.100.0/24。
- 可用的 IP 地址是不是在 DHCP 服务器给出的地址范围内,并且不会静态分配给其他节点,因此您不会选择实际或可能已在使用的地址。检查 DHCP 服务器配置以了解其分发的 IP 地址范围,然后选择不在该范围内的 IP 地址。
- 路由器 IP 地址。在您的情况下,这似乎是 192.168.100.1。
- DNS 解析器。这些通常由 DHCP 服务器分发,但是当您不使用 DHCP 服务器时,您必须手动设置它们。
真正的解决方案是不要在您的网络中配置多个冲突的 DHCP 服务器,并且最好不要在同一第 2 层域上配置多个冲突的 IP 子网。
但是,当我尝试像 Address=('123.123.123.42/24'), Gateway='123.123.123.1' 这样的随机内容时,netctl 并没有抱怨。 ip addr 的输出也显示 123.123.123.42/24,即使没有 123.123.123.1 路由器连接到交换机。
我不确定你在这一段中的观点是什么。 123.123.123.0/24 不是您网络的正确 IP 地址,是吗?你希望这能起作用吗?