金鱼哥RHCA回忆录:RH358管理网络服务--配置网络接口
RH358服务管理和自动化–配置网络接口
本章节介绍如何配置网络接口,由于RHEL 8 或者 CentOS 8的系统已经不再使用network服务,所以在8中,配置网络使用NetworkManager进程来进行。(个人还是倾向于使用network服务进行网络配置。)
1. NetworkManager回顾
介绍Red Hat Enterprise Linux 8操作系统的网络接口和连接基本配置。它基于名为NetworkManager的系统守护进程,它监视和管理网络设置,并使用/etc/sysconfig/networkscripts/中的文件来存储它们。
在NetworkManager:
-
device设备是网络接口。
-
connection连接是可以为设备配置的设置集合。
-
对于任何一个设备,同一时间只有一个连接是活动的。可能存在多个连接,以供不同设备使用,或允许为同一设备更改配置。
-
每个连接都有一个标识它的名称或ID。
-
/etc/sysconfig/network-scripts/ifcfg-name文件存储连接的持久配置,其中name是连接的名称。当连接名中包含空格时,文件名中的空格将被替换为下划线。如果需要,这个文件可以手工编辑。
-
nmcli实用程序从shell提示符创建和编辑连接文件。
2. 查看网络信息
使用nmcli dev status命令显示所有网络设备的当前状态。
[user@host ~]$ nmcli dev status
DEVICE TYPE STATE CONNECTION
eno1 ethernet connected static-eno1
eno2 ethernet disconnected --
lo loopback unmanaged --
使用nmcli con show命令显示所有连接列表。添加–active选项只列出活动的连接。
使用ip addr show命令查看系统网口的当前配置。添加一个接口名作为最后一个参数,只显示一个接口:
① 活动接口处于UP状态。
② 链路/以太线指定设备的硬件(MAC)地址。
③ inet行显示了IPv4地址、它的网络前缀长度和范围。
④ inet行显示了IPv6地址、它的网络前缀长度和范围。
3. 添加网络连接
使用nmcli con add命令添加网络连接。新连接的名称必须是唯一的,并且还没有被使用。
这个例子为接口eno1添加了一个名为eno1的新连接。这个连接:
-
从DHCP动态获取IPv4网络信息。
-
从本地链路上的路由器通告获取IPv6网络信息。
[root@host ~]# nmcli con add con-name eno1 type ethernet ifname eno1
本例为接口eno1添加一个名为static-eno1的新连接。这个连接:
-
设置静态IPv4地址192.0.2.7/24,IPv4网关路由器192.0.2.1。
-
设置静态IPv6地址为2001:db8:0:1::c000:207/64, IPv6 qateway路由器为2001:db8:0:1:1。
[root@host ~]# nmcli con add con-name static-eno1 type ethernet ifname eno1 \
ipv6.address 2001:db8:0:1::c000:207/64 ipv6.gateway 2001:db8:0:1::1 \
ipv4.address 192.0.2.7/24 ipv4.gateway 192.0.2.1
4. 控制网络连接
nmcli con up name命令用来激活与名称连接绑定的网口。该命令使用连接名称,而不是网络接口名称。
[root@host ~]# nmcli con up static-eno1
使用nmcli dev disconnect device命令断开设备网口连接,使其down。该命令缩写为nmcli dev dis device:
[root@host ~]# nmcli dev dis eno1
重要:
使用nmcli dev dis device去禁用网络接口。
nmcli con down name命令通常不是禁用网络接口的最佳方法,因为它会导致连接中断。但是,默认情况下,大多数有线系统连接配置为启用autoconnect自动连接。这将在网络接口可用时立即激活连接。因为连接的网络接口仍然可用,nmcli con down name将使该接口关闭,但随后NetworkManager将立即重新启动该接口,除非连接完全断开与该接口的连接。
5. 修改网络连接
NetworkManager连接支持两种设置。
-
静态连接属性存储在/etc/sysconfig/network-scripts/ifcfg-*配置文件中
-
活动连接数据,连接从DHCP服务器获取,且没有持久化存储。
执行nmcli con show name命令显示连接的当前设置小写字母设置是可以更改的静态属性。大写设置是此连接实例临时使用的活动设置。
nmcli con mod name命令用于修改连接设置。这些更改也保存在/etc/sysconfig/network-scripts/ifcfq-name文件中,用于连接。可用的设置记录在nm-settings(5)手册页中。
设置static-ens3连接的IPv4地址为192.0.2.2/24,默认网关为192.0.2.254。
[root@host ~]# nmcli con mod static-ens3 ipv4.address 192.0.2.2/24 \
ipv4.gateway 192.0.2.254
配置static-ens3的IPv6地址为2001:db8:0:1:: a00:1/64,默认网关为2001:db8:0:1::1
[root@host ~]# nmcli con mod static-ens3 ipv6.address 2001:db8:0:1::a00:1/64 \
ipv6.gateway 2001:db8:0:1::1
一些设置可以有多个值。通过在设置名称的开头添加加号(+)或减号(-)符号,可以将特定值添加到设置列表中或从设置列表中删除。
6. 删除网络连接
nmcli con del name命令用来删除指定的连接。它断开与设备的连接,并删除/etc/sysconfig/network-scripts/ifcfg-name文件。
7. 谁可以修改网络设置?
root根用户可以使用nmcli进行任何必要的网络配置更改。
但是,在本地控制台登录的普通用户也可以对系统进行许多网络配置更改。他们必须在系统的本地控制台登录到其中一个基于文本的虚拟控制台或图形桌面环境来获得这种控制。这背后的逻辑是,如果有人在计算机的控制台,它很可能被用作工作站或笔记本电脑,他们可能需要随意配置、激活或关闭无线或有线网络接口。相比之下,如果系统是数据中心中的服务器,那么本地登录到机器本身的用户通常应该是管理员。
使用ssh登录的普通用户在没有成为root的情况下无法更改网络权限。
可以使用nmcli gen permissions命令查看当前的权限。
8. 命令汇总
下表列出了本节讨论的关键命令。
Command | Purpose |
---|---|
nmcli dev status | 显示所有网络接口的NetworkManager状态。 |
nmcli con show | 列出所有NetworkManager连接。 |
nmcli con show name | 列出名称连接的当前设置。 |
nmcli con add con-name name [OPTIONS] | 添加名为name的新连接。 |
nmcli con mod name [OPTIONS] | 修改名称连接。 |
nmcli con reload | 让NetworkManager重新读取配置文件。这在它们被手工编辑之后是有用的。 |
nmcli con up name | 激活名称连接。 |
nmcli dev dis dev | 取消激活并断开dev网络接口上的当前连接。 |
nmcli con del name | 删除名称连接及其配置文件。 |
ip addr show | 显示当前网络接口地址配置 |
9. 课本练习(第18页)
[student@workstation ~]$ lab servicemgmt-netreview start
1. 连接到服务器并更改为root用户。
[student@workstation ~]$ ssh root@servera
[root@servera ~]#
2. 找到服务器上可用但未配置的网口名称,如eth1。
记录这个名称,并在整个练习中用它替换eth1占位符。
[root@servera ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:00:fa:0a brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:01:fa:0a brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:02:fa:0a brd ff:ff:ff:ff:ff:ff
3. 确定哪些接口当前由NetworkManager管理。
使用nmcli命令列出NetworkManager管理的网络接口。
[root@servera ~]# nmcli con show
NAME UUID TYPE DEVICE
Wired connection 1 4ae4bb9e-8f2d-3774-95f8-868d74edcc3c ethernet eth0
Wired connection 2 c0e6d328-fcb8-3715-8d82-f8c37cb42152 ethernet --
Wired connection 3 9b5ac87b-572c-3632-b8a2-ca242f22733d ethernet --
4. 为eth1网口创建一个名为eth1的NetworkManager连接。
重新显示管理接口列表,确认NetworkManager管理eth1。
[root@servera ~]# ll /etc/sysconfig/network-scripts/
total 4
-rw-r--r--. 1 root root 458 May 29 16:09 ifcfg-Wired_connection_1
[root@servera ~]# nmcli con add con-name eth1 type ethernet ifname eth1
[root@servera ~]# ll /etc/sysconfig/network-scripts/
total 8
-rw-r--r--. 1 root root 278 May 30 14:36 ifcfg-eth1
-rw-r--r--. 1 root root 458 May 29 16:09 ifcfg-Wired_connection_1
[root@servera ~]# nmcli con show
NAME UUID TYPE DEVICE
eth1 0416d1fe-3dfe-497b-aedf-418e246d519f ethernet eth1
Wired connection 1 4ae4bb9e-8f2d-3774-95f8-868d74edcc3c ethernet eth0
Wired connection 2 c0e6d328-fcb8-3715-8d82-f8c37cb42152 ethernet --
Wired connection 3 9b5ac87b-572c-3632-b8a2-ca242f22733d ethernet --
5. 显示eth1的当前IP地址信息。
[root@servera ~]# ip addr show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:01:fa:0a brd ff:ff:ff:ff:ff:ff
inet6 fe80::6656:805c:e2a5:dca1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
6. 显示连接的初始、默认NetworkManager IPv4配置设置。
[root@servera ~]# nmcli con show eth1 | grep ipv4
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
# 默认情况下,它被配置为自动获取其IPv4地址。
7. 将eth1配置为静态IPv4地址192.168.0.1/24,没有额外的网关。
[root@servera ~]# nmcli con mod eth1 ipv4.addresses 192.168.0.1/24 \
ipv4.method manual
8. 启动eth1网口并确认配置IPv4地址。
[root@servera ~]# nmcli con up eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/195)
[root@servera ~]# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:01:fa:0a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::6656:805c:e2a5:dca1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
9. Ping eth1的IPv4地址。
[root@servera ~]# ping -c 2 192.168.0.1
10. Ping另一个IPv4主机192.168.0.254,确保eth1可以到达。
[root@servera ~]# ping -c 2 192.168.0.254
11. ip命令用来查看IPv4路由表信息。
# 通过eth1接口的192.168.0.0/24网络路由的流量。
[root@servera ~]# ip route
default via 172.25.250.254 dev eth0 proto static metric 100
172.25.250.0/24 dev eth0 proto kernel scope link src 172.25.250.10 metric 100
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1 metric 107
12. 在“/etc/ sysconfq /network-scripts”中识别eth1网口的接口配置文件。
查看文件内容并注意哪些变量赋值与之前执行的IPv4配置相关。
[root@servera ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-Wired_connection_1
[root@servera ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=2ffa63e0-7e50-462d-b353-7a68faa44138
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.0.1
PREFIX=24
完成实验
[student@workstation ~]$ lab servicemgmt-netreview finish
💡总结
- 介绍了网络服务管理NetworkManager。
- 介绍了NetworkManager常用命令与运用。
- 通过实验了解如何配置系统网络。
以上就是【金鱼哥】对 第一章 管理网络服务–配置网络接口 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!
- 点赞
- 收藏
- 关注作者
评论(0)