redhat8中nmcli日常使用
第 2 章 配置以太网连接
Red Hat Enterprise Linux 为管理员提供不同的选项来配置以太网连接。例如:
- 在命令行中使用
nmcli
配置连接。 - 使用
nmtui
在基于文本的用户界面中配置连接。 - 使用 RHEL 系统角色在一个或多个主机上自动配置连接。
- 使用 GNOME Settings 菜单或
nm-connection-editor
应用程序在图形界面中配置连接。 - 使用
nmstatectl
通过 Nmstate API 配置连接。
2.1. 使用 nmcli 配置静态以太网连接
要在命令行中配置以太网连接,请使用 nmcli
实用程序。
例如,以下步骤使用以下设置为 enp7s0
设备创建 NetworkManager 连接配置集:
- 静态 IPv4 地址 -
192.0.2.1
和/24
子网掩码 - 静态 IPv6 地址 -
2001:db8:1::1
和/64
子网掩码 - IPv4 默认网关 -
192.0.2.254
- IPv6 默认网关 -
2001:db8:1::fffe
- IPv4 DNS 服务器 -
192.0.2.200
- IPv6 DNS 服务器 -
2001:db8:1::ffbb
- DNS 搜索域 -
example.com
流程
-
为以太网连接添加新的 NetworkManager 连接配置集:
# nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet
可以进一步修改您创建的
Example-Connection
连接配置集。 -
设置 IPv4 地址:
# nmcli connection modify Example-Connection ipv4.addresses 192.0.2.1/24
-
设置 IPv6 地址:
# nmcli connection modify Example-Connection ipv6.addresses 2001:db8:1::1/64
-
将 IPv4 和 IPv6 连接方法设置为
manual
:# nmcli connection modify Example-Connection ipv4.method manual # nmcli connection modify Example-Connection ipv6.method manual
-
设置 IPv4 和 IPv6 默认网关:
# nmcli connection modify Example-Connection ipv4.gateway 192.0.2.254 # nmcli connection modify Example-Connection ipv6.gateway 2001:db8:1::fffe
-
设置 IPv4 和 IPv6 DNS 服务器地址:
# nmcli connection modify Example-Connection ipv4.dns "192.0.2.200" # nmcli connection modify Example-Connection ipv6.dns "2001:db8:1::ffbb"
要设置多个 DNS 服务器,以空格分隔并用引号括起来。
-
为 IPv4 和 IPv6 连接设置 DNS 搜索域:
# nmcli connection modify Example-Connection ipv4.dns-search example.com # nmcli connection modify Example-Connection ipv6.dns-search example.com
-
激活连接配置集:
# nmcli connection up Example-Connection Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
2.2. 使用 nmcli 互动编辑器配置静态以太网连接
您可以使用 nmcli
工具的交互模式在命令行中配置以太网连接。
例如,以下步骤使用以下设置为 enp7s0
设备创建 NetworkManager 连接配置集:
- 静态 IPv4 地址 -
192.0.2.1
和/24
子网掩码 - 静态 IPv6 地址 -
2001:db8:1::1
和/64
子网掩码 - IPv4 默认网关 -
192.0.2.254
- IPv6 默认网关 -
2001:db8:1::fffe
- IPv4 DNS 服务器 -
192.0.2.200
- IPv6 DNS 服务器 -
2001:db8:1::ffbb
- DNS 搜索域 -
example.com
步骤
-
要为以太网连接添加新的 NetworkManager 连接配置集并启动互动模式,请输入:
# nmcli connection edit type ethernet con-name Example-Connection
-
设置网络接口:
nmcli> set connection.interface-name enp7s0
-
设置 IPv4 地址:
nmcli> set ipv4.addresses 192.0.2.1/24
-
设置 IPv6 地址:
nmcli> set ipv6.addresses 2001:db8:1::1/64
-
将 IPv4 和 IPv6 连接方法设置为
manual
:nmcli> set ipv4.method manual nmcli> set ipv6.method manual
-
设置 IPv4 和 IPv6 默认网关:
nmcli> set ipv4.gateway 192.0.2.254 nmcli> set ipv6.gateway 2001:db8:1::fffe
-
设置 IPv4 和 IPv6 DNS 服务器地址:
nmcli> set ipv4.dns 192.0.2.200 nmcli> set ipv6.dns 2001:db8:1::ffbb
要设置多个 DNS 服务器,请指定它们以空格分隔并用引号括起。
-
为 IPv4 和 IPv6 连接设置 DNS 搜索域:
nmcli> set ipv4.dns-search example.com nmcli> set ipv6.dns-search example.com
-
保存并激活连接:
nmcli> save persistent Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (yes/no) [yes] yes
-
保留为互动模式:
nmcli> quit
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
2.3. 使用 nmtui 配置静态以太网连接
nmtui
应用程序为 NetworkManager 提供了一个基于文本的用户界面。您可以使用 nmtui
在没有图形界面的主机上配置具有静态 IP 地址的以太网连接。
注意
在 nmtui
中:
- 使用光标键导航。
- 选择一个按钮并按 Enter 键。
- 使用 Space 选择并取消选择复选框。
流程
-
如果您不知道要在连接中使用的网络设备名称,显示可用的设备:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet unavailable -- ...
-
启动
nmtui
:# nmtui
-
选择
Edit a connection
,并按 Enter。 -
按
Add
按钮。 -
从网络类型列表中选择
Ethernet
,然后按 Enter 。 -
可选:为要创建的 NetworkManager 配置文件输入一个名称。
-
在
Device
字段中输入网络设备名称。 -
在
IPv4 configuration
和IPv6 configuration
区中配置 IPv4和 IPv6 地址设置:-
按
Automatic
按钮,然后从显示的列表中选择Manual
。 -
按您要配置的协议旁边的
Show
按钮来显示其他字段。 -
按
Addresses
旁边的Add
按钮,然后输入 IP 地址和无类别域间路由(CIDR)格式的子网掩码。如果没有指定子网掩码,NetworkManager 会为 IPv4 地址设置
/32
子网掩码,为 IPv6 地址设置/64
子网掩码。 -
输入默认网关的地址。
-
按
DNS servers
旁边的Add
按钮,并输入 DNS 服务器地址。 -
按
Search domains
旁边的Add
按钮,并输入 DNS 搜索域。
图 2.1. 具有静态 IP 地址设置的以太网连接示例
-
-
按
OK
按钮来创建并自动激活新连接。 -
按
Back
按钮返回到主菜单。 -
选择
Quit
,然后按 Enter 来关闭nmtui
应用程序。
验证
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
2.4. 使用 nmstatectl 配置静态以太网连接
要使用 Nmstate API 配置以太网连接,请使用 nmstatectl
工具。
例如,以下步骤使用以下设置为 enp7s0
设备创建 NetworkManager 连接配置集:
- 静态 IPv4 地址 -
192.0.2.1
,子网掩码为/24
- 静态 IPv6 地址 -
2001:db8:1::1
,子网掩码为/64
- IPv4 默认网关 -
192.0.2.254
- IPv6 默认网关 -
2001:db8:1::fffe
- IPv4 DNS 服务器 -
192.0.2.200
- IPv6 DNS 服务器 -
2001:db8:1::ffbb
- DNS 搜索域 -
example.com
nmstatectl
工具确保设置配置后,结果与配置文件匹配。如果有任何失败,nmstatectl
会自动回滚更改以避免系统处于不正确的状态。
该流程以 YAML 格式定义接口配置。或者,您也可以以 JSON 格式指定配置:
先决条件
nmstate
软件包已安装。
步骤
- 创建一个 YAML 文件,例如,包含以下内容的
~/create-ethernet-profile.yml
:
---
interfaces:
- name: enp7s0
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.0.2.1
prefix-length: 24
dhcp: false
ipv6:
enabled: true
address:
- ip: 2001:db8:1::1
prefix-length: 64
autoconf: false
dhcp: false
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.0.2.254
next-hop-interface: enp7s0
- destination: ::/0
next-hop-address: 2001:db8:1::fffe
next-hop-interface: enp7s0
dns-resolver:
config:
search:
- example.com
server:
- 192.0.2.200
- 2001:db8:1::ffbb
-
将设置应用到系统:
# nmstatectl apply ~/create-ethernet-profile.yml
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected enp7s0
-
显示连接配置集的所有设置:
# nmcli connection show enp7s0 connection.id: enp7s0 connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
-
以 YAML 格式显示连接设置:
# nmstatectl show enp7s0
2.5. 使用 RHEL 系统角色,配置带有接口名称的静态以太网连接
您可以使用 network
RHEL 系统角色远程配置以太网连接。
例如,以下步骤使用以下设置为 enp7s0
设备创建 NetworkManager 连接配置集:
- 静态 IPv4 地址 -
192.0.2.1
和/24
子网掩码 - 静态 IPv6 地址 -
2001:db8:1::1
和/64
子网掩码 - IPv4 默认网关 -
192.0.2.254
- IPv6 默认网关 -
2001:db8:1::fffe
- IPv4 DNS 服务器 -
192.0.2.200
- IPv6 DNS 服务器 -
2001:db8:1::ffbb
- DNS 搜索域 -
example.com
在 Ansible 控制节点上执行此步骤。
前提条件
-
您已准备了控制节点和受管节点
-
以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接受管节点的帐户具有
sudo
权限。 -
运行此 playbook 的主机或主机组列在 Ansible 清单文件中。
-
受管节点使用 NetworkManager 配置网络。
步骤
- 创建包含以下内容的 playbook 文件,如
*~/ethernet-static-IP.yml*
:
---
- name: Configure the network
hosts: managed-node-01.example.com
tasks:
- name: Configure an Ethernet connection with static IP
include_role:
name: rhel-system-roles.network
vars:
network_connections:
- name: enp7s0
interface_name: enp7s0
type: ethernet
autoconnect: yes
ip:
address:
- 192.0.2.1/24
- 2001:db8:1::1/64
gateway4: 192.0.2.254
gateway6: 2001:db8:1::fffe
dns:
- 192.0.2.200
- 2001:db8:1::ffbb
dns_search:
- example.com
state: up
- 运行 playbook:
ansible-playbook ~/ethernet-static-IP.yml
其他资源
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件
2.6. 使用 RHEL 系统角色,配置带有设备路径的静态以太网连接
您可以使用 network
RHEL 系统角色远程配置以太网连接。
您可以使用以下命令识别设备路径:
# udevadm info /sys/class/net/<device_name> | grep ID_PATH=
例如,以下步骤会为与 PCI ID 0000:00:0[1-3].0
表达式匹配的设备创建 NetworkManager 连接配置集,但没有 0000:00:02.0
:
- 静态 IPv4 地址 -
192.0.2.1
和/24
子网掩码 - 静态 IPv6 地址 -
2001:db8:1::1
和/64
子网掩码 - IPv4 默认网关 -
192.0.2.254
- IPv6 默认网关 -
2001:db8:1::fffe
- IPv4 DNS 服务器 -
192.0.2.200
- IPv6 DNS 服务器 -
2001:db8:1::ffbb
- DNS 搜索域 -
example.com
在 Ansible 控制节点上执行此步骤。
前提条件
-
您已准备了控制节点和受管节点
-
以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接受管节点的帐户具有
sudo
权限。 -
运行此 playbook 的主机或主机组列在 Ansible 清单文件中。
-
受管节点使用 NetworkManager 配置网络。
步骤
-
创建包含以下内容的 playbook 文件,如
*~/ethernet-static-IP.yml*
:Expand
--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: Configure an Ethernet connection with dynamic IP include_role: name: rhel-system-roles.network vars: network_connections: - name: example match: path: - pci-0000:00:0[1-3].0 - &!pci-0000:00:02.0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com state: up
本例中的
match
参数定义了 Ansible 将剧本应用到与 PCI ID0000:00:0[1-3].0
匹配的设备,但没有0000:00:02.0
设备。有关可以使用的特殊修饰符和通配符的详情,请查看/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件中的match
参数描述。 -
运行 playbook:
# ansible-playbook ~/ethernet-static-IP.yml
其他资源
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件
2.7. 使用 nmcli 配置动态以太网连接
要在命令行中配置以太网连接,请使用 nmcli
实用程序。对于具有动态 IP 地址设置的连接,NetworkManager 会从 DHCP 服务器请求 IP 设置。
先决条件
- 网络中有 DHCP 服务器。
流程
-
为以太网连接添加新的 NetworkManager 连接配置集:
# nmcli connection add con-name Example-Connection ifname enp7s0 type ethernet
-
(可选)在使用
Example-Connection
配置文件时,更改 NetworkManager 发送给 DHCP 服务器的主机名:# nmcli connection modify Example-Connection ipv4.dhcp-hostname Example ipv6.dhcp-hostname Example
-
(可选)在使用
Example-Connection
配置文件时,更改 NetworkManager 发送给 IPv4 DHCP 服务器的客户端 ID:# nmcli connection modify Example-Connection ipv4.dhcp-client-id client-ID
请注意,对于 IPv6 ,没有
dhcp-client-id
参数。要为 IPv6 创建一个标识符,请配置dhclient
服务。
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
其他资源
dhclient(8)
手册页nm-settings(5)
nmcli(1)
手册页- 配置 NetworkManager 以避免使用特定配置集提供默认网关
2.8. 使用 nmcli 互动编辑器配置动态以太网连接
您可以使用 nmcli
工具的交互模式在命令行中配置以太网连接。对于具有动态 IP 地址设置的连接,NetworkManager 会从 DHCP 服务器请求 IP 设置。
先决条件
- 网络中有 DHCP 服务器。
流程
-
要为以太网连接添加新的 NetworkManager 连接配置集并启动互动模式,请输入:
# nmcli connection edit type ethernet con-name Example-Connection
-
设置网络接口:
nmcli> set connection.interface-name enp7s0
-
(可选)在使用
Example-Connection
配置文件时,更改 NetworkManager 发送给 DHCP 服务器的主机名:nmcli> set ipv4.dhcp-hostname Example nmcli> set ipv6.dhcp-hostname Example
-
(可选)在使用
Example-Connection
配置文件时,更改 NetworkManager 发送给 IPv4 DHCP 服务器的客户端 ID:nmcli> set ipv4.dhcp-client-id client-ID
请注意,对于 IPv6 ,没有
dhcp-client-id
参数。要为 IPv6 创建一个标识符,请配置dhclient
服务。 -
保存并激活连接:
nmcli> save persistent Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (yes/no) [yes] yes
-
保留为互动模式:
nmcli> quit
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
其他资源
nm-settings(5)
手册页nmcli(1)
手册页- 配置 NetworkManager 以避免使用特定配置集提供默认网关
2.9. 使用 nmtui 配置动态以太网连接
nmtui
应用程序为 NetworkManager 提供了一个基于文本的用户界面。您可以使用 nmtui
在没有图形界面的主机上配置具有动态 IP 地址的以太网连接。
注意
在 nmtui
中:
- 使用光标键导航。
- 选择一个按钮并按 Enter 键。
- 使用 Space 选择并取消选择复选框。
流程
-
如果您不知道要在连接中使用的网络设备名称,显示可用的设备:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet unavailable -- ...
-
启动
nmtui
:# nmtui
-
选择
Edit a connection
,并按 Enter。 -
按
Add
按钮。 -
从网络类型列表中选择
Ethernet
,然后按 Enter 。 -
可选:为要创建的 NetworkManager 配置文件输入一个名称。
-
在
Device
字段中输入网络设备名称。 -
按
OK
按钮来创建并自动激活新连接。 -
按
Back
按钮返回到主菜单。 -
选择
Quit
,然后按 Enter 来关闭nmtui
应用程序。
验证
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
其他资源
- 配置 NetworkManager 以避免使用特定配置集提供默认网关
2.10. 使用 nmstatectl 配置动态以太网连接
要使用 Nmstate API 配置以太网连接,请使用 nmstatectl
工具。对于具有动态 IP 地址设置的连接,NetworkManager 会从 DHCP 服务器请求 IP 设置。
nmstatectl
工具确保设置配置后,结果与配置文件匹配。如果有任何失败,nmstatectl
会自动回滚更改以避免系统处于不正确的状态。
该流程以 YAML 格式定义接口配置。或者,您也可以以 JSON 格式指定配置:
先决条件
nmstate
软件包已安装。
步骤
-
创建一个 YAML 文件,例如,包含以下内容的
~/create-ethernet-profile.yml
:--- interfaces: - name: enp7s0 type: ethernet state: up ipv4: enabled: true auto-dns: true auto-gateway: true auto-routes: true dhcp: true ipv6: enabled: true auto-dns: true auto-gateway: true auto-routes: true autoconf: true dhcp: true
-
将设置应用到系统:
# nmstatectl apply ~/create-ethernet-profile.yml
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected enp7s0
-
显示连接配置集的所有设置:
# nmcli connection show enp7s0 connection.id: enp7s0_ connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
-
以 YAML 格式显示连接设置:
# nmstatectl show enp7s0
其他资源
nmstatectl(8)
手册页/usr/share/doc/nmstate/examples/
目录
2.10. 使用 nmstatectl 配置动态以太网连接
要使用 Nmstate API 配置以太网连接,请使用 nmstatectl
工具。对于具有动态 IP 地址设置的连接,NetworkManager 会从 DHCP 服务器请求 IP 设置。
nmstatectl
工具确保设置配置后,结果与配置文件匹配。如果有任何失败,nmstatectl
会自动回滚更改以避免系统处于不正确的状态。
该流程以 YAML 格式定义接口配置。或者,您也可以以 JSON 格式指定配置:
先决条件
nmstate
软件包已安装。
步骤
-
创建一个 YAML 文件,例如,包含以下内容的
~/create-ethernet-profile.yml
:--- interfaces: - name: enp7s0 type: ethernet state: up ipv4: enabled: true auto-dns: true auto-gateway: true auto-routes: true dhcp: true ipv6: enabled: true auto-dns: true auto-gateway: true auto-routes: true autoconf: true dhcp: true
-
将设置应用到系统:
# nmstatectl apply ~/create-ethernet-profile.yml
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected enp7s0
-
显示连接配置集的所有设置:
# nmcli connection show enp7s0 connection.id: enp7s0_ connection.uuid: b6cdfa1c-e4ad-46e5-af8b-a75f06b79f76 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp7s0 ...
-
以 YAML 格式显示连接设置:
# nmstatectl show enp7s0
其他资源
nmstatectl(8)
手册页/usr/share/doc/nmstate/examples/
目录
2.11. 使用带有接口名称的 RHEL 系统角色配置动态以太网连接
您可以使用 network
RHEL 系统角色远程配置以太网连接。对于具有动态 IP 地址设置的连接,NetworkManager 会从 DHCP 服务器请求 IP 设置。
在 Ansible 控制节点上执行此步骤。
先决条件
-
您已准备了控制节点和受管节点
-
以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接受管节点的帐户具有
sudo
权限。 -
运行此 playbook 的主机或主机组列在 Ansible 清单文件中。
-
网络中有 DHCP 服务器
-
受管节点使用 NetworkManager 配置网络。
步骤
-
创建包含以下内容的 playbook 文件,如
*~/ethernet-dynamic-IP.yml*
:--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: Configure an Ethernet connection with dynamic IP include_role: name: rhel-system-roles.network vars: network_connections: - name: enp7s0 interface_name: enp7s0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up
-
运行 playbook:
# ansible-playbook ~/ethernet-dynamic-IP.yml
其他资源
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件
2.12. 使用带有设备路径的 RHEL 系统角色配置动态以太网连接
您可以使用 network
RHEL 系统角色远程配置以太网连接。对于具有动态 IP 地址设置的连接,NetworkManager 会从 DHCP 服务器请求 IP 设置。
您可以使用以下命令识别设备路径:
# udevadm info /sys/class/net/<device_name> | grep ID_PATH=
在 Ansible 控制节点上执行此步骤。
先决条件
-
您已准备了控制节点和受管节点
-
以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接受管节点的帐户具有
sudo
权限。 -
运行此 playbook 的主机或主机组列在 Ansible 清单文件中。
-
网络中有 DHCP 服务器。
-
受管主机使用 NetworkManager 配置网络。
步骤
-
创建包含以下内容的 playbook 文件,如
*~/ethernet-dynamic-IP.yml*
:--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: Configure an Ethernet connection with dynamic IP include_role: name: rhel-system-roles.network vars: network_connections: - name: example match: path: - pci-0000:00:0[1-3].0 - &!pci-0000:00:02.0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up
本例中的
match
参数定义了 Ansible 将剧本应用到与 PCI ID0000:00:0[1-3].0
匹配的设备,但没有0000:00:02.0
设备。有关可以使用的特殊修饰符和通配符的详情,请查看/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件中的match
参数描述。 -
运行 playbook:
# ansible-playbook ~/ethernet-dynamic-IP.yml
其他资源
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件
2.13. 使用 control-center 配置以太网连接
以太网连接是在物理机或虚拟机中最常用的连接类型。如果您将 Red Hat Enterprise Linux 与图形界面搭配使用,您可以在 GNOME control-center
中配置此连接类型。
请注意,control-center
不支持与 nm-connection-editor
应用程序或 nmcli
实用程序一样多的配置选项。
先决条件
- 服务器配置中有一个物理或者虚拟以太网设备。
- 已安装了 GNOME。
步骤
-
按 Super 键,输入
Settings
,然后按 Enter 键。 -
在左侧导航中选择
Network
。 -
点击
Wired
条目旁边的 + 按钮来创建新配置文件。 -
可选:在
Identity
选项卡中为连接设置名称。 -
在
IPv4
选项卡中,配置 IPv4 设置。例如,选择方法Manual
,设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器: -
在
IPv6
选项卡中,配置 IPv6 设置。例如,选择方法Manual
,设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器: -
点 Add 按钮保存连接。GNOME
control-center
会自动激活连接。
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
故障排除步骤
- 确保网络电缆插入到主机和交换机。
- 检查链路失败是否只存在于此主机上,或者其它连接到同一交换机的主机上。
- 验证网络电缆和网络接口是否如预期工作。执行硬件诊断步骤并替换有缺陷的电缆和网络接口卡。
- 如果磁盘中的配置与设备中的配置不匹配,则启动或重启 NetworkManager 会创建一个代表该设备的配置的内存连接。有关详情以及如何避免此问题,请参阅 NetworkManager 服务重启后复制连接。
其它资源
- 配置 NetworkManager 以避免使用特定配置集提供默认网关
2.14. 使用 nm-connection-editor 配置以太网连接
以太网连接是在物理或者虚拟服务器中最常用的连接类型。如果您将 Red Hat Enterprise Linux 与图形界面搭配使用,您可以使用 nm-connection-editor
应用程序配置此连接类型。
先决条件
- 服务器配置中有一个物理或者虚拟以太网设备。
- 已安装了 GNOME。
流程
-
打开终端窗口,输入:
$ nm-connection-editor
-
点 + 按钮添加新连接。
-
选择
Ethernet
类型,然后单击 Create。 -
在
General
选项卡中:-
要在系统启动时或者重启
NetworkManager
服务时自动启用此连接:-
选择
Connect automatically with priority
。 -
可选:更改
Connect automatically with priority
旁边的优先级值。如果同一设备有多个连接配置集,NetworkManager 只启用一个配置集。默认情况下,NetworkManager 激活启用了自动连接的最后使用的配置集。但是,如果您在配置集中设置了优先级值,NetworkManager 会以最高优先级激活配置集。
-
-
如果配置文件应该只对创建连接配置文件的用户可用,请清除
All users may connect to this network
复选框。
-
-
在
Ethernet
选项卡中,选择一个设备,还可以选择与以太网相关的其他设置。 -
在
IPv4 Settings
选项卡中,配置 IPv4 设置。例如,设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器: -
在
IPv6 设置
选项卡上,配置 IPv6 设置。例如,设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器: -
保存连接。
-
关闭
nm-connection-editor
。
验证步骤
-
显示设备和连接的状态:
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet connected Example-Connection
-
使用
ping
程序验证这个主机是否可以向其他主机发送数据包:# ping host_name_or_IP_address
其它资源
- 配置 NetworkManager 以避免使用特定配置集提供默认网关
2.15. 更改 NetworkManager 的 DHCP 客户端
默认情况下,NetworkManager 使用其内部的 DHCP 客户端。但是,如果您需要不提供内置客户端的 DHCP 客户端,您也可以将 NetworkManager 配置为使用 dhclient
。
请注意,RHEL 不提供 dhcpcd
,因此 NetworkManager 无法使用这个客户端。
流程
-
使用以下内容创建
/etc/NetworkManager/conf.d/dhcp-client.conf
文件:[main] dhcp=dhclient
您可以对
internal
(默认)或dhclient
设置dhcp
参数。 -
如果对
dhclient
设置dhcp
参数,请安装dhcp-client
软件包:# yum install dhcp-client
-
重启 NetworkManager:
# systemctl restart NetworkManager
请注意,重启会临时中断所有网络连接。
验证
-
在
/var/log/messages
日志文件中搜索类似于如下的条目:Apr 26 09:54:19 server NetworkManager[27748]: <info> [1650959659.8483] dhcp-init: Using DHCP client 'dhclient'
此日志条目确认 NetworkManager 使用
dhclient
作为 DHCP 客户端。
其他资源
NetworkManager.conf(5)
man page
2.16. 配置 NetworkManager 连接的 DHCP 行为
DHCP 客户端在每次连接到网络时都从 DHCP 服务器请求动态 IP 地址和对应配置信息。
当您将连接配置为从 DHCP 服务器检索 IP 地址时,网络管理器(NetworkManager)从 DHCP 服务器请求 IP 地址。默认情况下,客户端会等待 45 秒时间完成此请求。当 DHCP
连接启动时,dhcp 客户端会从 DHCP
服务器请求 IP 地址。
先决条件
- 在主机上配置了使用 DHCP 的连接。
步骤
-
设置
ipv4.dhcp-timeout
和ipv6.dhcp-timeout
属性。例如,要将这两个选项都设为30
秒,请输入:# nmcli connection modify connection_name ipv4.dhcp-timeout 30 ipv6.dhcp-timeout 30
另外,将参数设置为
infinity
以配置网络管理器(NetworkManager)不会停止尝试请求和续订 IP 地址,直到成功为止。 -
可选:配置如果网络管理器(NetworkManager)在超时前没有接收 IPv4 地址时的行为:
# nmcli connection modify connection_name ipv4.may-fail value
如果将
ipv4.may-fail
选项设为:yes
,连接的状态取决于 IPv6 配置:- 如果启用了 IPv6 配置并成功,NetworkManager 会激活 IPv6 连接,不再尝试激活 IPv4 连接。
- 如果禁用或未配置 IPv6 配置,连接会失败。
no
,连接会被停止。在这种情况下:- 如果启用了连接的
autoconnect
属性,NetworkManager 会根据autoconnect-retries
属性中设置的值尝试多次激活连接。默认值为4
。 - 如果连接仍然无法获得 DHCP 地址,则自动激活会失败。请注意,5 分钟后,自动连接过程会再次启动,从 DHCP 服务器获取 IP 地址。
- 如果启用了连接的
-
可选:配置如果网络管理器(NetworkManager)在超时前没有接收 IPv6 地址时的行为:
# nmcli connection modify connection_name ipv6.may-fail value
其他资源
nm-settings(5)
手册页
2.17. 按接口名称使用单一连接配置文件配置多个以太网接口
在大多数情况下,一个连接配置文件包含一个网络设备的设置。但是,当您在连接配置文件中设置接口名称时,NetworkManager 也支持通配符。如果主机在具有动态 IP 地址分配的以太网之间漫游,则您可以使用此功能创建可用于多个以太网接口的单一连接配置文件。
前提条件
- DHCP 在网络中可用
- 主机有多个以太网适配器
- 主机上不存在连接配置文件
流程
-
添加可应用于以
enp
开头的所有接口名称的连接配置文件:# nmcli connection add con-name Example connection.multi-connect multiple match.interface-name enp* type ethernet
验证步骤
-
显示单个连接配置文件的所有设置:
# nmcli connection show Example connection.id: Example ... connection.multi-connect: 3 (multiple) match.interface-name: enp* ...
3
表示同时在连接配置集上活跃的接口数量,而不是连接配置文件中的网络接口数量。连接配置文件使用与match.interface-name
参数中的模式匹配的所有设备,因此连接配置文件具有相同的通用唯一识别符(UUID)。 -
显示连接的状态:
# nmcli connection show NAME UUID TYPE DEVICE ... Example 6f22402e-c0cc-49cf-b702-eaf0cd5ea7d1 ethernet enp7s0 Example 6f22402e-c0cc-49cf-b702-eaf0cd5ea7d1 ethernet enp8s0 Example 6f22402e-c0cc-49cf-b702-eaf0cd5ea7d1 ethernet enp9s0
其他资源
nmcli(1)
手册页nm-settings(5)
手册页
2.18. 使用 PCI ID 为多个以太网接口配置一个连接配置文件
PCI ID 是连接到系统的设备的唯一标识符。连接配置文件根据 PCI ID 列表按匹配的接口来添加多个设备。您可以使用这个流程将多个设备 PCI ID 连接到一个连接配置文件。
前提条件
- DHCP 服务器在网络中可用
- 主机有多个以太网适配器
- 系统上不存在连接配置文件
流程
-
识别设备路径。例如,要显示以
enp
开头的所有接口的设备路径,请输入:# udevadm info /sys/class/net/enp* | grep ID_PATH= ... E: ID_PATH=pci-0000:07:00.0 E: ID_PATH=pci-0000:08:00.0
-
添加可应用于匹配
0000:00:0[7-8].0
表达式的所有 PCI ID 的连接配置文件:# nmcli connection add type ethernet connection.multi-connect multiple match.path "pci-0000:07:00.0 pci-0000:08:00.0" con-name Example
验证步骤
-
显示连接的状态:
# nmcli connection show NAME UUID TYPE DEVICE Example 9cee0958-512f-4203-9d3d-b57af1d88466 ethernet enp7s0 Example 9cee0958-512f-4203-9d3d-b57af1d88466 ethernet enp8s0 ...
-
显示连接配置集的所有设置:
# nmcli connection show Example connection.id: Example ... connection.multi-connect: 3 (multiple) match.path: pci-0000:07:00.0,pci-0000:08:00.0 ...
此连接配置文件使用 PCI ID 与
match.path
参数中的模式匹配的所有设备,因此连接配置文件具有相同的全局唯一标识符(UUID)。
其他资源
nmcli(1)
手册页nm-settings(5)
手册页
官网链接为:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/index