将第二个 IP 添加到 RHEL 8 虚拟机

将第二个 IP 添加到 RHEL 8 虚拟机

我有一个用于运行 httpd 的现有 RHEL8 虚拟机和一个虚拟主机。我需要添加第二个 IP/虚拟主机,但遇到了问题。我的理解是 NetworkManager仍在解析网络脚本。

现有IP配置为:

[user@box]# cat /etc/sysconfig/network-scripts/ifcfg-ens3 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens3
UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DEVICE=ens3
ONBOOT=yes
IPADDR=xxx.xxx.xxx.111
PREFIX=24
GATEWAY=xxx.xxx.xxx.2
DNS1=xxx.xxx.1.1
ZONE=drop

我创建了使用新 IP 设置的第二个脚本:

[user@box]# cat /etc/sysconfig/network-scripts/ifcfg-ens4 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens4
UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DEVICE=ens4
ONBOOT=yes
IPADDR=xxx.xxx.xxx.222
PREFIX=24
GATEWAY=xxx.xxx.xxx.2
DNS1=xxx.xxx.1.1
ZONE=drop

然后我重新启动 NetworkManager

systemctl restart NetworkManager

但我没有看到名为 ens4 的新设备列出,只看到现有的 IP (ens3)

[user@box]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.111/24 brd xxx.xxx.xxx.255 scope global noprefixroute ens3
       valid_lft forever preferred_lft forever

设备 ens3 工作正常。

主机上的现有桥接器可以正常工作,因为设备 ens3 工作正常(我可以查看站点内容、ssh 到机器等)。所以我不太确定这是虚拟机主机设置问题。

在向 RHEL8 添加第二个 IP 时我缺少哪些步骤?当服务器是虚拟的时,过程是否有所不同?

答案1

看来您对 NetworkManager 的工作原理存在误解。在 Networkkanager 中,您可以配置连接配置文件(例如,以 ifcfg 文件的形式)。它们只是用于设置界面的一堆设置。要使配置生效并在系统上配置网络,请激活所需的配置文件。

systemctl 重新启动网络管理器

重新启动 NetworkManager 几乎从来都不是正确的做法。特别是当您想要对 IP 配置进行一些更改时,因为当您重新启动 NetworkManager 时,它会尝试不更改 IP 配置,以便您可以远程重新启动它(尽管,如果出现问题,这可能仍然是一件危险的事情)然后你就切断了自己的联系)。

反正。如果您修改磁盘上的配置文件,请使用nmcli connection reload或重新加载它们nmcli connection load "$FILENAME"。其效果类似于nmcli connection modify(从某种意义上说,两者最终都会修改 NetworkManager 对配置文件的理解,前者通过从磁盘加载它,后者通过将其写入磁盘)。使用nmcli connectionnmcli connection show "$PROFILE"或检查结果nmcli -o connection show "$PROFILE"

请注意,对配置文件的修改只有在下次激活该配置文件后才会生效。我的意思是,“对配置文件的修改”立即对配置文件生效,但运行时配置只能通过(重新)激活配置文件来更改。使用 来查看配置文件nmcli connection并使用 来查看运行时状态nmcli device。使用nmcli connection up$PROFILE"`激活所需的配置文件。


但你的问题的真正答案可能如下:

您的文本标题为“添加第二个 IP 地址”,但随后您继续为ens4接口创建新的配置文件。然后,您检查ip addr输出并没有看到ens4.创建配置文件不会创建网络接口。您需要(虚拟化?)硬件和加载的驱动程序,以便您在NetworkManager 可以使用它执行某些操作之前看到ip link(或)中的接口。nmcli device

从标题来看,我以为您更愿意向现有配置文件中添加第二个 IP 地址。使用 执行此操作nmcli connection modify "$PROFILE" +ipv4.addresses "10.0.0.111/8",使用 检查结果nmcli connection show "$PROFILE"并(重新)激活正确的配置文件。当然,你也可以编辑ifcfg文件并重新加载。

答案2

虽然@thaller 的答案在技术上可能更好,但这就是我所做的,非常快速和简单。

我只是编辑了现有的 ens3 接口来添加:

IPADDR1 xxx.xxx.xxx.222 
PREFIX1 xx 

我将其放在现有 IPADDR 和 PREFIX 行的下方。如果我需要额外的 IP,我会继续 IPADDR2、IPADDR3 等的顺序。

然后我删除了 ens4 文件,因为不再需要它了。

重新启动后,这台计算机的两个 IP 现在均处于活动状态。

相关内容