1
Linux服务器配置与应用
1.7.3.2 4.3.2 NetworkManager配置
4.3.2 NetworkManager配置

NetworkManager将/etc/NetworkManager/dispatcher.d按照字母顺序执行目录或子目录中的脚本以响应网络事件。每个脚本都应该是root拥有的常规可执行文件。此外,它不能被组或其他人写入,也不能被 setuid 写入。

每个脚本接收两个参数,第一个是刚刚发生操作的设备的接口名称,第二个是操作指令。对于设备操作,接口是适合 IP 配置的内核接口的名称。

操作指令如下:

pre-up:该接口已连接到网络,但尚未完全激活。作用于此事件的脚本必须放置或符号链接到/etc/NetworkManager/dispatcher.d/pre-up.d目录中,NetworkMa nag er将等待脚本执行完成,然后向应用程序指示接口已完全激活。

up:接口已激活。

pre-down:该接口将被停用,但尚未与网络断开连接。作用于此事件的脚本必须放置或符号链接到/etc/NetworkManager/dispatcher.d/pre-down.d目录中,Networ kManager将等待脚本执行完成,然后再断开接口与其网络的连接。请注意,对于强制断开连接不会发出此事件,例如当载波丢失或无线信号减弱时。只有在有机会干净地处理网络断开事件时才会发出它。

down:该接口已停用。

vpn-pre-up:VPN已连接到网络,但尚未完全激活。作用于该事件的脚本必须放置或符号链接到/etc/NetworkManager/dispatcher.d/pre-up.d目录中,NetworkM ana ger将等待脚本执行完成,然后向应用程序指示VPN已完全激活。

vpn-up:已激活VPN连接。

vpn-pre-down:VPN 将被停用,但尚未与网络断开连接。作用于该事件的脚本必须放置或符号链接到/etc/NetworkManager/dispatcher.d/pre-down.d目录中,Netwo rkManager 将等待脚本执行完成,然后再断开 VPN 与其网络的连接。请注意,对于强制断开连接不会发出此事件,例如当 VPN 意外终止或常规连接丢失时。它仅在有机会干净地处理 VPN 断开连接事件时发出。

vpn-down:VPN 连接已被停用。

hostname:系统主机名已更新。使用 gethostname(2) 来检索它。接口名称(第一个参数)为空,并且没有为此操作设置环境变量。

dhcp4-change:DHCPv4 租约已更改(续订、恢复等)。

dhcp6-change:DHCPv6 租约已更改(续订、恢复等)。

connectivity-change:网络连接状态已更改(无连接、上线等)。

变量说明如下:

NM_DISPATCHER_ACTION:调度程序操作,如“up”或“dhcp4-change”,与第一个命令行参数相同。从 NetworkManager 1.12.0 开始。

CONNECTION_UUID:连接配置文件的 UUID。

CONNECTION_ID:连接配置文件的名称 (ID)。

CONNECTION_DBUS_PATH:连接的 NetworkManager D-Bus 路径。

CONNECTION_FILENAME:连接配置文件的后备文件名。

CONNECTION_EXTERNAL:如果为“1”,则表示该连接描述了在 NetworkManager 之外创建的网络配置。

DEVICE_IFACE:设备控制接口的接口名称。根据设备类型,这与DEVICE_IP_IFACE。例如,对于 ADSL 设备,这可能是“atm0”,或者对于 WWAN 设备,它可能是“ttyUSB0”。

DEVICE_IP_IFACE:设备的 IP 接口名称。这是将配置 IP 地址和路由的网络接口。IP4_ADDRESS_N:格式为“地址/前缀网关”的 IPv4 地址,其中 N 是从 0 到 (# IPv4地址 - 1) 的数字。此变量中的网关项已弃用,请改用 IP4_GATEWAY。

IP4_NUM_ADDRESSES:该变量包含脚本可能期望的 IPv4 地址数。

IP4_GATEWAY:采用传统数字和点表示网关 IPv4 地址。

IP4_ROUTE_N:格式为“地址/前缀下一跳度量”的 IPv4 路由,其中 N 是从 0 到(#IPv4 路由 - 1) 的数字。

IP4_NUM_ROUTES:该变量包含脚本可能期望的 IPv4 路由数。

IP4_NAMESERVERS:该变量包含一个以空格分隔的 DNS 服务器列表。

IP4_DOMAINS:该变量包含一个以空格分隔的搜索域列表。

DHCP4_<dhcp-option-name>:如果连接使用 DHCP 进行地址配置,则接收到的 DHCP配置将使用标准 DHCP 选项名称在环境中传递,前缀为“DHCP4_”,例如“DHCP4_HOST_NAME=foobar”。

IP6_<name> and DHCP6_<name>:与 IPv4 相同的变量可用于 IPv6,但前缀为 IP6_和 DHCP6_。

CONNECTIVITY_STATE:网络连接状态,可以采用 NMConnectivityState 类型定义的值,来自 org.freedesktop.NetworkManager D-Bus API:unknown、none、portal、limited 或 full。注意:此变量只会为连接更改操作设置。

查看范例文件/etc/NetworkManager/dispatcher.d/01-ifupdown如下:

NetworkManager操作方式:NetworkManager [OPTIONS...]

选项见表4.1。

表4.1 NetworkManager选项

nmcli是用于控制 NetworkManager 和报告网络状态的命令行工具。它可以用作nm-applet或其他图形客户端的替代品。nmcli用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。nmcli操作标准如下:

nmcli [ OPTIONS...] { help | general | networking | radio | connection| device | agent | monitor} [ COMMAND] [ ARGUMENTS...]

表4.2 nmcli选项

总结

本章就Linux网络基础做了初步介绍,带大家了解了TCP/IP协议,并且深入地了解了Linux的网络配置,对dns进行了学习。通过本章的学习,我们能对Linux网络有深刻的认识,在后面的学习中我们将接触更多关于Linux的具体知识。

作业

1.列举TCP/IP协议的四个层次。

2.写出NetworkManager显示版本的操作。

扩展练习

通过本章内容的学习,请你写出你对NetworkManager的理解。