Show Table of Contents
2.7. 联网
本小节总结了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 联网、网络协议支持以及相关配置工具的不同。
2.7.1. 推荐的命名方法
主机名可以是任意形式字符串,总长度不得超过 64 个字符。但 Red Hat 建议静态和暂时的名称要符合 DNS 中及其完全限定域名(FQDN),比如
host.example.com。hostnamectl 工具可允许静态和暂时主机名长度在 64 个字符以内,其中只能包含 a-z、A-Z、0-9、- 和 .。技术上现在的规格可以使用下划线。但因为老的规格禁止使用,所以 Red Hat 不建议在主机名中使用下划线。
互联网名称与数字地址分配机构(ICANN)有时会在公共注册中添加之前未注册的顶级域(比如
.yourcompany)。因此 Red Hat 强烈建议您不要使用未委托给您的域名,即便是专用网络也不要使用,因为这样做可能会造成因为网络配置不同而对域名进行不同的解析,结果是导致网络资源不可用。使用非由您委托的域名还会造成 DNSSEC 部署和维护变得更为困难,因为域名冲突会在 DNSSEC 验证中添加手动配置障碍。
有关这个问题的详情请查看 ICANN 有关域名冲突的常见问题:http://www.icann.org/en/help/name-collision/faqs
2.7.2. NetworkManager 更新
Red Hat Enterprise Linux 7 包含 NetworkManager 的更新版本,其中包含大量改进和一些新功能。
- nmcli 工具现在支持使用
nmcli con edit和nmcli con modify命令编辑连接。 - 新的文本用户界面(nmtui)提供流畅的控制台工具进行网络配置编辑以及网络连接控制。它替换了 system-config-network-tui 工具。
- 之前 NetworkManager 会忽略它无法识别的网络接口(以太网、Infiniband、WiFi、Bridge、Bond 和 VLAN 以外的接口)。NetworkManager 现在可以识别所有
ip link使用的网络接口,并将这些接口展现在 D-Bus 接口以及类似 nmcli 的客户端中。这为 NetworkManager 提供更接近类似 ip 工具的功能。 - NetworkManager 现在可非破坏性地获取可本机配置的接口所有权,比如以太网、InfiniBand、Bridge、Bond、VLAN 及 Team 接口。如果这些接口是在 NetworkManager 启动前或者重启时配置,则之前配置的连接就会被中断,就是说不再需要
NM_CONTROLLED选项。 - 支持检察网络连接性、热区以及门户。默认禁用这个行为。
- 支持 team 界面。
- 基本上可提供 GRE、macvlan、macvtap、tun、tap、veth 及 vxlan 设备的非本机支持。
- 新的 NetworkManager-config-server 软件包默认提供服务器适应性,比如忽略容器变化,也不生成默认 DHCP 连接。
NetworkManager.conf的新dns=none配置可防止 NetworkManager 修改resolv.conf文件。- 快速用户切换支持。
- 除接口的 MAC 地址之外,支持将某个连接与接口锁定。
这个更新还改变了配置文件监控行为。NetworkManager 不再监控磁盘中配置文件的变化。反制,用户必须手动使用
nmcli con reload 命令重新载入配置文件的变化。
2.7.3. 新的网络命名方案
Red Hat Enterprise Linux 7 为网络接口提供一致的网络设备命名。这些功能可更改某个系统中的网络接口名称以方便定位和区分接口。
通常 Linux 中的网络接口以
eth[0123...] 方式列举,但这些命名不一定会与底盘实际标签对应。有多个网络适配器的现代服务器平台可遇到这些接口的不确定以及不直观的命名。这会影响主板内嵌网络适配器(板上局域网,LOM)和附加(单一或者多接口)适配器。
在 Red Hat Enterprise Linux 7 中,systemd 和 udevd 支持大量不同的命名方案。默认行为是根据固件、拓扑及位置信息分配固定名称。这个命名方法的优点是完全自动且可预测,即使添加或者删除硬件也不会变化(未发生重新列举),且可以在不产生任何影响的情况下替换破坏的硬件。这个行为的缺点是名称有时比之前使用的名称难读,例如使用
enp5s0 替换 eth0。
目前 udevd 本身就支持下列命名方案。
- 方案 1
- 合并固件或者 BIOS 的名称为板载设备提供索引号的名称,例如:
eno1。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 2 作为备选。 - 方案 2
- 合并固件或者 BIOS 的名称提供 PCI 快捷热插拔插槽索引号的名称,例如
ens1。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 3 作为备选。 - 方案 3
- 合并硬件连接器物理位置的名称,例如:
enp2s0。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 5 作为备选。 - 方案 4
- 合并接口的 MAC 地址名称,例如:
enx78e7d1ea46da。默认情况下 systemd 不会根据这个方案命名接口,但如果需要可以启用这个功能。 - 方案 5
- 传统的不可预测内核属性 ethX 命名,例如:
eth0。如果其他所有方法都失败,systemd 就根据这个方案命名接口。
如果该系统启用了
BIOSDEVNAME,或者用户已添加更改内核设备名称的 udevd 规则,则这些规则将替代默认的 systemd 策略。
有关这个新命名系统的详情请查看《Red Hat Enterprise Linux 7 联网指南》网址 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/。
2.7.4. 新联网程序(ncat)
Red Hat Enterprise Linux 7 使用新的联网程序 ncat 替代 ncat。ncat 是一个可靠的后台工具,可为其他应用程序和用户提供网络连接性。它使用命令行跨网络读取并写入输入数据,同时使用 TCP 和 UDP 进行沟通。
ncat 中的一些命令与最初由 netcat 提供的命令有所不同,或者使用同一选项提供不同的功能。下面的列表中列出了这些不同。
netcat -P选项使用指定的用户名显示需要认证的代理服务器。这个行为的 ncat 选项是--proxy-auth user[:pass]。- 在与代理服务器沟通时,
netcat -X选项与联网程序使用指定的协议。这个行为的 ncat 选项为--proxy-type。 netcat -x选项在联网程序中使用地址和可选端口连接代理服务器。这个行为的 ncat 选项为--proxy,该选项使用 IP 地址和可选端口,比如:--proxy host[:port]。netcat -d选项禁用从 stdin 读取。ncat -d选项允许用户指定读或者写操作之间的等待时间。但 ncat 提供--recv-only选项,其行为与netcat -d类似。netcat -i选项指定发送和接受文本之间,或者到多个端口连接的行之间的间隔。ncat -i选项指定连接超时并终止前可闲置的时间。ncat 中没有与netcat -i对等的选项。netcat -w指定连接超时并被终止前无法建立该连接的时间。ncat -w选项指定超时前尝试连接的时间。
netcat 中的有些选项目前已无法在 ncat 中使用。ncat 目前不执行以下操作。
- 启用在插槽中 debug(之前由
netcat -D提供)。 - 指定 TCP 发送及接受缓存的大小(之前由
netcat -I和netcat -O提供)。 - 指定随机选择的源或者目标端口(之前由
netcat -r提供)。 - 通过 TCP MD5 信号选项、RFC 2385 启用 BGP 会话保护(之前由
netcat -S提供)。 - 指定服务的 IPv4 类型(之前由
netcat -T提供)。 - 指定 UNIX 域插槽使用(之前由
netcat -U提供)。 - 指定要使用的路由表(之前由
netcat -V提供)。 - 不传输数据即进行侦听守护进程扫描。
- 指定发送和接收文本行之间,或者到多个端口的连接之间的间隔。
ncat 程序由 nmap-ncat 软件包提供。有关 ncat 的详情请查看 man page:
$ man ncat
2.7.5. Postfix 的变化
Red Hat Enterprise Linux 7 将 postfix 从版本 2.6 升级为版本 2.10。同时在从 Red Hat Enterprise Linux 6 升级至 7 时,使用 Preupgrade Assistant(预升级助手)处理主要兼容性问题。用户会注意到以下非关键兼容性问题。
- 使用
postscreen守护进程前,确定已执行postfix stop和postfix start命令,以避免pass主要服务问题。 - 不会在
*_tls_CAfile或者*_tls_CApath列表中添加默认由系统提供的 CA 证书。这意味着使用permit_tls_all_clientcerts后,第三方证书不再收到邮件中继权限。如果您的配置要求证书验证,则可设置tls_append_default_CA = yes启用向后兼容行为。 verify服务现在使用默认启用了定期清除的持久缓存。需要提供对删除和顺序运行的支持。要禁用该缓存,请在main.cf中指定空白的address_verify_map参数。要禁用定期清除行为,请将address_verify_cache_cleanup_interval设定为0。- 之前,会在未指定过滤下一个跃点时使用默认的下一个跃点,即
$myhostname。这个默认跃点现在是收件人域。要更改默认下一个跃点,请指定default_filter_nexthop = $myhostname。在使用管道的过滤器中,还会启用 FIFO 传递顺序,而不是鲁棒域选择。 postmulti -e destroy命令不再尝试移除执行postmulti -e create命令后生成的文件。- Postfix 现在要求在使用 Milter
smfi_addrcpt操作添加收件人时提供默认传送状态通知。 - 现在,当所得虚拟别名扩展超过虚拟别名递归或扩展限制后,Postfix 会报告临时传送错误,而不是静默地放弃超出的收件人,并继续传递信息。
- 现在,本地传递代理在向不拥有其自己别名的子别名发送邮件时会保留其父别名的 owner-alias 属性。这样就不会发生向邮件列表重复发送的情况。要启用原有的行为,请指定
reset_owner_alias = yes。 - 查找没有 "
." 的 DNS 名称时,Postfix SMTP 客户端不会再添加本地域。要启用原有的行为,请指定smtp_dns_resolver_options = res_defnames。注:这样可能会有意想不到的结果。 - 已更改
postfix/smtpd[pid]: queueid: client=host[addr]日志文件记录的格式。可用时,before-filter 客户端信息及 before-filter 序列 ID 现在都会添加到该记录的末尾。 - 默认情况下,postfix 不再向没有指定收件人的信息之添加未披露的收件人标头。要启用原有行为,请在
mail.cf中指定以下内容:undisclosed_recipients_header = To: undisclosed-recipients:;
- 现在,SASL 机制列表在每次成功完成
STARTTLS后都会重新计算。 - 现在,
smtpd_starttls_timeout默认值为 stress-dependent。 - 现在,域名中附带 secret 的 DNSBL 查询必须在
postscreenSMTP 回复中隐藏那个 secret。例如:在main.cf中,请指定:postscreen_dnsbl_reply_map = texthash:/etc/postfix/dnsbl_reply
在dnsbl_reply中指定不同的 DNSBL 名称:# Secret DNSBL name Name in postscreen(8) replies secret.zen.spamhaus.org zen.spamhaus.org
- 所有使用 postfix VSTREAMs 的程序必须重新编码,因为 VSTREAM 错误现在使用不同的标签记录读取和写入错误。
- 现在,
smtp_line_length_limit的默认值为999,以保持与 SMTP 标准的统一。 - 现在,Sendmail 将所有以
<CR><LF>结尾的输入行转换为 UNIX 格式(<LF>)。 - 默认情况下,SMTP 客户端不再为
MAIL FROM命令添加AUTH=<>。 - 有些之前分级为
fatal的日志信息现在分级为error。基于警报系统的日志文件可能需要进行相应的更新。要重新启用原有的行为,请将daemon_table_open_error_is_fatal设定yes。 - 对于新支持的长查询文件名,在 Postfix 2.9 以前的版本中不支持此功能。要迁移会 Postfix 2.8 或更早的版本,则必须转换所有长的查询文件名称。方法是首先停止 postfix,将
enable_long_queue_ids设定为no,然后运行postsuper命令,知道不再导出查询文件名称变更。 - 现在,Postfix 记录成功与 TLS 级 0 进行的 TLS 协商。详情请查看
postconfman page 中有关日志等级描述。 - 现在,postfix SMTP 服务器总是检查 smtpd_sender_login_maps 表。
- 现在,默认
inet_protocols值为all(同时使用 IPv4 和 IPv6)。为避免未使用全局 IPv6 连接站点的意外性能损失,目前在没有明确设置的情况下,会在main.cf中添加make upgrade和postfix upgrade-configuration命令。 - 现在,默认
smtp_address_preference值为any(随机选择 IPv4 或者 IPv6)。 - SMTP 服务器不再报告拒绝客户端命令的会话,因为没有可用的查找表。要继续接收此类报告,请在
notify_classes参数中添加data类别。 - 已添加
smtpd_relay_restrictions参数。默认情况下,这样会启用permit_mynetworks、permit_sasl_authenticated和defer_unauth_destination。这样可防止由于错误使用smtpd_recipient_restrictions中垃圾邮件过滤器造成的开源中继问题。但如果您的站点使用smtpd_recipient_restrictions配置了复杂的邮件中继策略,则可能会错误地延迟某些邮件的发送。要纠正这个问题,可以删除smtpd_relay_restrictions配置并使用smtpd_recipient_restrictions中已有的策略,或者将smtpd_recipient_restrictions中已有的策略复制到smtpd_relay_restrictions中。
2.7.6. 网络协议
本小节总结了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 中网络协议的变化。
2.7.6.1. 网络文件系统(NFS)
Red Hat Enterprise Linux 7 提供 NFS 3、NFS 4.0 以及 NFS 4.1 支持。从 Red Hat Enterprise Linux 7 开始不再支持 NFS 2。
NFS 4.1 提供大量性能及安全性加强,其中包括平行 NFS(pNFS)的客户端支持。另外,独立 TCP 连接不再要求回叫,可允许 NFS 服务器在无法联络到客户端的情况下提供授权,例如:NAT 或者防火墙干扰。
该服务器支持 NFS 3、NFS 4.0 以及 NFS 4.1。可在
/etc/sysconfig/nfs 文件中启用或者禁用具体的版本,方法是更改 RPCNFSDARGS 参数值。例如:RPCNFSDARGS="-N4.1 -V3" 启用 NFS 3 支持,禁用 NFS 4.1 支持。详情请查看其 man page:
$ man rpc.nfsd
NFS 客户端默认会使用 NFS 4.0 挂载,如果挂载操作失败则返回使用 NFS 3。编辑
/etc/nfsmount.conf 并使用命令行可更改这个默认行为。详情请查看其 man page:
$ man nfs
$ man nfsmount.conf
2.7.6.1.1. 平行 NFS(pNFS)
Red Hat Enterprise Linux 7 提供平行 NFS(pNFS)支持。pNFS 提高了 NFS 的可扩展性,并有可能提高性能。当 Red Hat Enterprise Linux 7 客户端挂载支持 pNFS 的服务器时,该客户端可同时通过多个服务器访问数据。有关这个协议的详情及其功能请查看《Red Hat Enterprise Linux 7 存储管理指南》,网址 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/。
2.7.6.2. Apache Web 服务器(httpd)
Red Hat Enterprise Linux 7 提供 Apache Web 服务器的更新版本。这个新版本(2.4)中包含一些明显的打包变化以及大量新功能。
- 更改代理服务器配置
- 如果 SSL 证书与配置的主机名不匹配,则使用 SSL 后端的 Apache 网页服务器(
httpd)配置现在必须使用SSLProxyCheckPeerName指令。之前并不验证代理服务器后端 SSL 证书中的主机名。 - 新的控制机制
- 由于 Red Hat Enterprise Linux 不再使用 SysV 初始化脚本,因此用来控制
httpd服务的命令也因此不同。Red Hat 现在建议您使用apachectl和systemctl命令,而不是service命令。例如:如果您之前使用service httpd graceful,Red Hat 现在建议您使用apachectl graceful。 - 更改的默认子命令行为
- httpd 的
systemd单元文件为reload和stop子命令定义不同的行为。特别是reload子命令现在温和地重新载入该服务,同时stop现在也默认温和地停止该服务。 - 硬编码默认配置
- httpd 之前的版本提供详尽的配置文件,列出所有配置设置及其默认值。在默认配置文件中很多常用配置设置已不再特别进行配置,现在默认设置已采用硬编码。现在默认配置文件尽量采用较少的内容,结果是更容易进行管理。手册中给出了所有设置的硬编码默认值,该手册默认是按照在
/usr/share/httpd中。 - 新的多进程模型模块
- Red Hat Enterprise Linux 之前的发行本提供几个多进程模型(
prefork和worker)作为不同的 httpd 二进制库。Red Hat Enterprise Linux 7 使用单一二进制库并将这些多进程模型作为可载入模块提供:worker、prefork(默认)以及event。编辑/etc/httpd/conf.modules.d/00-mpm.conf文件选择要载入的模块。 - 目录变化
- 在这个 httpd 的这个更新后的版本中移走了很多目录,或者以后都不再提供。
- 之前安装在
/var/cache/mod_proxy中的内容已移动到/var/cache/httpd的proxy或者ssl子目录下。 - 之前安装在
/var/www中的内容已移动到/usr/share/httpd中。 - 之前安装在
/var/www/icons中的内容已移动到/usr/share/httpd/icons中。这个目录包含一组用于设定目录索引的图标。 - httpd 手册的 HTML 版面之前安装在
/var/www/manual中,现已移动到/usr/share/httpd/manual中。 - 自定义多语言 HTTP 出错页面之前是安装在
/var/www/error中,现已移动到/usr/share/httpd/error中。
- suexec 的变化
- 不再将
suexec二进制项目的用户标识符在安装时设定为 root,而是使用文件系统功能字节应用更具限制性的权限。这样可提高 httpd 服务的安全性。另外,suexec现在会向 syslog 发送日志信息,而不是使用/var/log/httpd/suexec.log文件记录。默认在/var/log/secure文件中显示发送到 syslog 的信息。 - 模块接口兼容性的变化
- 更改 httpd 模块接口意味着 httpd 的这个更新后的版本与根据 httpd 之前版本(2.2)构建的第三方二进制模块不兼容。此类模块需要为 httpd 2.4 模块接口进行必要的调整,并重新构建。版本 2.4 中的 API 变化详情请查看 Apache 文档。
- apxs 二进制库位置的变化
- 用来使用源构建模块的
apxs二进制库已从/usr/sbin/apxs移动到/usr/bin/apxs。 - 新的以及移走的配置文件
- 载入模块的配置文件现已放在
/etc/httpd/conf.modules.d目录中。为 httpd 提供附加可载入模块的软件包(比如 php 软件包)将文件添加到这个目录中。conf.modules.d目录中的所有配置文件都在httpd.conf正文前进行处理。/etc/httpd/conf.d中的配置文件现在都在httpd.conf正文后进行处理。httpd 软件包提供的附加配置文件:/etc/httpd/conf.d/autoindex.conf配置mod_autoindex目录索引。/etc/httpd/conf.d/userdir.conf配置对用户目录(http://example.com/~username/)的访问。默认情况下处于安全考虑会禁用长个访问。/etc/httpd/conf.d/welcome.conf配置在没有出现任何内容时在http://localhost/显示的“欢迎页面”。
- 配置兼容性变化
- httpd 的这个版本与之前的版本(2.2)的配置语法兼容。配置文件需要在可以与这个更新后的 httpd 版本合用前更新语法。有关版本 2.2 与版本 2.4 之间语法变化的详情请查看 Apache 文档。
2.7.6.3. Samba
Red Hat Enterprise Linux 7 提供 Samba 4,它是一个守护进程、客户端程序以及 Pythong 捆绑的组合,允许使用 SMB1、SMB2 和 SMB3 协议进行沟通。
目前采用的 Kerberos 不支持 Samba 4 Active Diretory Domain Controller 功能。Red Hat Enterprise Linux 7.0 省略了这个功能,但可能在未来的版本中包含此功能。仍保留了其他不依赖 Active Directory DC 的功能。
Red Hat Enterprise Linux 6.4 以及之后的版本提供 Samba 4 作为技术预览,并将其打包在一组 samba4-* 软件包中以避免与稳定的 Samba 3 软件包(samba-*)冲突。因为现在全面支持 Samba 4,并提供大量优于 Samba 3 的功能,Red Hat Enterprise Linux 7 将 Samba 4 作为标准 samba-* 软件包提供。特殊的 samba4-* 软件包已被弃用。
有关 Samba 的详情请查看《Red Hat Enterprise Linux 7 系统管理员指南》 及 《系统管理员参考指南》,网址 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/。
2.7.6.4. BIND
在 Red Hat Enterprise Linux 6 中,安装 bind-chroot 软件包会改变
/etc/sysconfig/named 中的 ROOTDIR 环境变量,使其指向 chroot 环境位置。要运行通常要求的 named 服务(不是在 chroot 环境中),可删除 bind-chroot 软件包,或手动编辑 /etc/sysconfig/named 文件中的 ROOTDIR 环境。
在 Red Hat Enterprise Linux 7 中,安装 bind-chroot 软件包不会改变
named 服务的运行方式。反之,它会安装一个新服务 named-chroot,可使用 systemctl 命令单独启动和停止该服务,如下。
# systemctl start named-chroot.service
# systemctl stop named-chroot.service
named-chroot 服务不能与 named 服务同时运行。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.