我在系统上配置三个块时遇到问题。我曾经手动添加每个块的地址,但我发现我可以使用命令“ip route add local”添加整个块。当我尝试这个时,它最初工作,但是当我尝试配置最后一个块时,它停止工作。现在,当我尝试重新启动服务时,接口无法启动,并且块在使用接口时不响应 ping 或允许连接,即使在重新启动后也是如此。
尝试的解决方案:
ip addr flush enp1s0f0
- 这会断开我的 SSH 连接。ip addr flush enp1s0f0 && ifup enp1s0f0; echo done && sleep 20 && reboot
- 这只是切断我的连接并重新启动系统,表明“ifup”命令仍然不起作用。
接口文件:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp1s0f0
auto enp1s0f0
iface enp1s0f0 inet static
address 84.x.x.74/29
gateway 84.x.x.73
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
auto enp1s0f0:0
iface enp1s0f0:0 inet static
address 45.x.x.2/22
gateway 45.x.x.1
auto enp1s0f0:1
iface enp1s0f0:1 inet static
address 196.x.x.2/24
gateway 196.x.x.1
auto enp1s0f0:2
iface enp1s0f0:2 inet static
address 196.x.x.2/24
gateway 196.x.x.1
接口“:1”和“:2”指的是两个不同的IP块,例如“196.12.12.1”和“196.13.13.1”。您能否提供有关如何解决配置这些块的问题的指导?
答案1
此问题可能有多个来源:
首先,多个接口上不能有相同的IP
/etc/network/interfaces.d/*
配置文件只能包含一个网关,因为这决定了默认路由。ip addr flush interface-name
这对这种情况很有帮助。所需网络接口的驱动程序必须在内核级别可用,作为模块或直接包含在内。
设置正确的网络掩码
ETC。
网关:
配置文件上设置的网关/etc/network/interfaces.d/*
意味着“默认网关”,因此会生成使用该网关的默认路由(使我们的接口之一充当机器流量的默认接口)
因为我们不能在配置文件上设置多个网关。我们使用路由表来管理流量并设置哪些内容通过哪些网络接口,例如我们可以使用fwmark
一组规则来实现所需的配置。 (这问题详细解释如何做到这一点)