14.3. 网络配置
默认镜像包括 NetworkManager
动态网络控制和配置系统,bootc 会尝试在每个带有电缆插入的接口中使用 DHCP 进行连接。您可以通过设置 /run/NetworkManager/conf.d
目录来应用临时网络配置。
但是,如果您需要使用静态寻址或更复杂的网络,如 VLAN、绑定、网桥、团队等,您可以使用不同的方法。无论您选择配置网络,其结果都是 NetworkManager 的配置,其采用 NetworkManager 密钥 文件格式
。
- 主机网络配置选项
- 复杂的网络配置通常需要每台机器状态。您可以生成包含的静态 IP 寻址的机器特定容器镜像。您还可以通过检查主机的 MAC 地址,包括从镜像内部生成网络配置的代码。
- 可用的网络配置选项
以下是配置静态 IP 的可用选项,以及如何完成配置:
使用 Containerfile :创建带有静态 IP 的容器镜像,或者包含代码来生成基于 MAC 地址的镜像内部的网络配置。
- 使用 设备列表格式中指定的配置 来匹配 MAC 地址或其他地址。
-
要配置网络,您可以使用
nmcli connection 添加
与您对引导系统执行的操作相似。但是,在构建期间,您必须使用 命令和 explicit-offline 参数的命令
。如需了解更多详细信息,请参阅使用 nmcli 配置以太网连接。 确保在 ContainerFile 中的
nmcli
命令前运行以下命令:RUN nmcli --offline connection add
RUN nmcli --offline connection add
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
通过使用 Anaconda:您可以使用 Anaconda Kickstart 来配置网络,包括 Wi-Fi,用于裸机安装。配置默认存储在
/etc/NetworkManager/system-connections/
文件中,并本质上是每个机器的状态。 -
通过使用内核参数:在第一次引导时添加内核参数以定义网络配置。在机器第一次引导时,输入定义网络配置的内核参数。内核参数主要在
dracut.cmdline
man page 中定义。您可以使用不同的方法在第一次引导时应用这些内核参数。使用bootc install
时,您也可以使用每个机器内核参数设置。 -
使用 NetworkManager 密钥文件:
nmcli
或nm-initrd-generator
使用 nmcli
生成 NetworkManager 密钥文件
nmcli
NetworkManager 命令行工具提供了一个离线模式,它不与 NetworkManager 守护进程通信,只是将 keyfile 内容写入标准输出。
为您要创建的每个连接配置文件运行
nmcli
工具:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
有关使用 nmcli
来指定的属性列表,请参阅设置手册页。Bash 自动完成功能可用。
使用 nm-initrd-generator
生成 NetworkManager Keyfiles
NetworkManager 包含 nm-initrd-generator
工具,它可以从 dracut
内核参数语法生成 keyfiles。您可以使用 工具从内核参数转换为 keyfiles,或者快速生成一些密钥文件,给出少量输入,然后修改一些更详细的设置。
使用
nm-initrd-generator
为绑定生成 keyfiles:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
命令为每个接口生成三个密钥文件: bond0
、ens3
和 ens2
。您可以使用生成的输出,添加更多设置或修改现有的设置,然后将这些文件提交到容器镜像中。
配置静态 IP
您可以使用以下
dracut
内核参数:template:
ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver}
ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver}
Example:
ip=10.10.10.10::10.10.10.1:255.255.255.0:myhostname:ens2:none:8.8.8.8
ip=10.10.10.10::10.10.10.1:255.255.255.0:myhostname:ens2:none:8.8.8.8
编写嵌入在容器镜像中的配置
将嵌入在容器镜像中的 NetworkManager 配置存储在 /usr/lib/NetworkManager/system-connections/
中,因为这种形式是不可变镜像状态的一部分。您还可以将配置写入 /etc/NetworkManager/system-connections/
作为容器镜像的一部分。默认 OSTree 三向合并,即使用旧的默认配置、活跃的 /etc
系统和新的默认配置,适用于任何特定于机器的配置。
keyfiles 必须具有 600
个 root-only 访问权限,否则 NetworkManager
忽略它们。
禁用以太网设备的自动配置
默认情况下,NetworkManager
会尝试在带有电缆插入的每个接口上使用 DHCP 或 SLAAC 地址进行自动配置。在一些网络环境中,这可能并不是必需的。为此,可以通过添加配置文件来更改 NetworkManager 行为,如 /usr/lib/NetworkManager/conf.d/noauto.conf
。
禁用以太网设备的
NetworkManager
自动配置[main] # Do not do automatic (DHCP or SLAAC) configuration on ethernet devices # with no other matching connections. no-auto-default=*
[main] # Do not do automatic (DHCP or SLAAC) configuration on ethernet devices # with no other matching connections. no-auto-default=*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow