Alibaba Cloud Linux 2实例修改网络服务的方法及影响说明

概述

本文主要介绍在Alibaba Cloud Linux 2系统的实例中,网络服务使用传统的network-scripts与使用systemd-networkd产生的影响说明,以及进行相关配置变更的方法。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

Alibaba Cloud Linux 2实例使用的网络服务

Alibaba Cloud Linux 2实例从下列镜像开始,默认网络服务从systemd-networkd切换为network-scripts,以符合大多数用户的网络配置习惯,实现更好的兼容性。由于存量实例无法执行自动切换操作,目前存量Alibaba Cloud Linux 2实例仍然保持systemd-networkd的网络配置模式,若您希望将存量实例的网络类型切换为network-scripts,请参见从systemd-networkd切换至network-scripts的方法进行操作。

  • 基础镜像:aliyun_2_1903_x64_20G_alibase_20210208.vhd
  • AMD版镜像:aliyun_2_1903_x64_20G_uefi_alibase_20210218.vhd
  • 本地镜像:aliyun_2_1903_x64_20G_nocloud_alibase_20210218.vhd
  • 可信版镜像:aliyun_2_1903_x64_20G_secured_alibase_20210218.vhd
  • 快速启动版镜像:aliyun_2_1903_x64_20G_qboot_alibase_20210218.vhd
  • 等保2.0三级版镜像:aliyun_2_1903_x64_20G_dengbao_alibase_20210218.vhd

systemd-networkd切换至network-scripts的方法

切换网络服务所产生的影响说明

  • 对原有实例的影响
    如果同时购买了新实例,则新实例和之前实例的网络配置模式将会不一致。因此建议您将存量实例的网络类型从systemd-networkd切换为network-scripts。
  • 开机启动速度的变化
    • 传统的network-scripts网络服务,使用Shell脚本直接进行网络配置,执行效率较低。实例的网卡在无特殊配置的前提下,在整个系统启动过程中,即从实例创建到通过SSH远程连接过程中,相比使用systemd-networkd网络服务的实例多出2~4秒的启动时间。
    • 如果接受不了实例的启动速度变慢,且用户可以接受不兼容network-scripts的网络配置方式,请参见从network-scripts切换至systemd-networkd的方法,切换网络服务为systemd-networkd,若遇到systemd-networkd相关的问题,请参见systemd-networkd常见问题处理进行修复。
  • 网络配置文件路径的更改
    没有切换网络服务之前,原路径为/etc/systemd/network ,现在需要切换回传统的 /etc/sysconfig/network-scripts/路径。若您想了解两个配置文件常见的配置项差异,具体信息请参见network-scripts与systemd-networkd配置项的差异
  • 网络服务重启命令的变化
    • 使用systemd-networkd网络服务,使用以下命令重启网络服务。
      sudo systemctl restart systemd-networkd
    • 切换至network-scripts网络服务后,使用以下命令重启网络服务。
      sudo systemctl restart network

将存量实例的网络服务切换为network-scripts

执行下列操作之前,请确保已知悉切换网络服务所产生的影响,方可执行下列操作。

注意:本次操作涉及网络配置,操作不当可能会导致网络不通。为了避免误操作引发数据安全和网络风险,请为Linux实例的系统盘创建快照。关于如何创建快照,请参见创建普通快照

  1. 根据您是否沿用旧的resolv.conf配置文件,参考以下内容完成配置:
    • 如果沿用旧的resolv.conf配置文件,请参考以下步骤:
      1. 执行以下命令,对resolv.conf软链接文件进行备份。
        mv /etc/resolv.conf /etc/resolv.conf.bak
      2. 执行以下命令,将备份文件的内容写入新的resolv.conf配置文件中。
        cat /etc/resolv.conf.bak > /etc/resolv.conf
      3. 执行以下命令,锁定resolv.conf配置文件,对resolv.conf配置文件进行保护。
        chattr +i /etc/resolv.conf
    • 如果不需要沿用旧的resolv.conf配置文件,请执行以下命令,删除旧的resolv.conf配置文件。
      rm /etc/resolv.conf
      说明
      • 启动network.service服务后,系统会自动生成新的resolv.conf文件。
      • 关于systemd-resolved服务的更多信息, 请参见systemd-resolved域名解析服务
  2. 依次执行以下命令,切换网络管理服务。
    systemctl enable network
    systemctl disable systemd-networkd
    systemctl disable systemd-resolved
  3. 执行以下命令,重启机器。
    reboot
  4. 执行以下命令,确认启动network-scripts网络服务成功。
    systemctl status network

从network-scripts切换至systemd-networkd的方法

如果您比较在意系统的启动速度,并已知悉sytemd-networkd存在的已知问题及风险,您可参见下列步骤,将网络服务从network-scripts切换至systemd-networkd。

注意:本次操作涉及网络配置,操作不当可能会导致网络不通。为了避免误操作引发数据安全和网络风险,请为Linux实例的系统盘创建快照。关于如何创建快照,请参见创建普通快照

  1. 根据您是否沿用旧的resolv.conf配置文件,参考以下内容完成配置:
    • 如果沿用旧的resolv.conf配置文件,请参考以下步骤:
      1. 执行以下命令,对resolv.conf软链接文件进行备份。
        cp /etc/resolv.conf /etc/resolv.conf.bak
      2. 执行以下命令,锁定resolv.conf配置文件,对resolv.conf配置文件进行保护。
        chattr +i /etc/resolv.conf
    • 如果不需要沿用旧的resolv.conf配置文件,请参考以下步骤:
      1. 请执行以下命令,删除旧的resolv.conf配置文件。
        rm /etc/resolv.conf
      2. 执行以下命令,生成resolv.conf配置文件的软链接。
        ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  2. 执行以下命令,确认网络接口配置文件存在且有效。
    cat /etc/systemd/network/10-eth0.network
    系统显示类似如下。
    [Match]
    Name=eth0

    [Network]
    DHCP=yes

    [DHCP]
    UseDNS=yes
  3. 依次执行以下命令,切换网络管理服务。
    systemctl disable network.service
    systemctl enable systemd-networkd
    systemctl enable systemd-resolved
  4. 执行以下命令,重启机器。
    reboot
  5. 执行以下命令,确认启动systemd-networkd网络服务成功。
    systemctl status systemd-networkd

systemd-networkd常见问题及处理

以下内容为使用systemd-networkd网络服务常见的问题及处理方法,请根据现场情况,选择下列对应的步骤。

多网卡默认路由配置

问题描述 解决方法

如果在/etc/systemd/network/XX-ethN.network配置文件中,[Match]区域使用如下通配方式的网络配置,systemd-networkd会自动为所有网卡添加默认路由,从而会覆盖用户指定的路由配置, 导致网络不通等问题。

[Match]
Name=eth*

[Network]
DHCP=yes

[DHCP]
UseDNS=yes
请参见配置弹性网卡中的为Alibaba Cloud Linux 2系统配置弹性网卡章节,按需求为每个网卡单独配置,避免使用通配方式为特定网卡自动配置上默认路由。

systemd-resolved占用5355端口

问题描述 解决方法

默认配置下,systemd-resolved服务会开启DNS服务监听,占用UDP的5355端口。

若需要关闭5355端口,请将/etc/systemd/resolved.conf 配置文件中的LLMNR=yes配置项,更改为LLMNR=no

[Resolve]
#DNS=
#FallbackDNS=XXXXX
LLMNR=yes

说明:

  • LLMNR=yes配置项为注释状态,则删除配置项前面的(#)符号。
  • 如果在该文件中没有LLMNR=yes配置项,请在[Resolve]区域,添加LLMNR=yes配置项。

DNS域名解析间歇超时的问题

问题描述 问题原因 解决方法
  • Alibaba Cloud Linux 2实例或其他实例,例如,CentOS实例,存在DNS域名解析间接超时的问题,,系统会提示Name or service not known报错,该问题是已知问题,并提供了相应的解决方案,解决方案请参见镜像FAQ如何处理CentOS DNS解析超时章节。
  • etc/resolv.conf文件中,添加阿里云options配置options timeout:2 attempts:3 rotate single-request-reopen的方法,在使用systemd-resolved网络服务的Alibaba Cloud Linux 2实例中无法持久化,一旦重启系统,或者重启systemd-resolved服务后,该配置就会失效。

 

  • systemd-networkd网络管理工具依赖systemd-resolved管理DNS域名解析配置,但是systemd-resolved服务无法自动配置上述options参数,只能手动在/etc/resolv.conf文件中配置该参数。
  • 默认/etc/resolv.conf文件是/run/systemd/resolve/resolv.conf文件的软链接文件,无法通过chattr +i命令的方式锁定文件,重启系统或网络服务,会导致写入到/etc/resolv.conf文件中的信息丢失。

 

 

 

 

IP转发配置失效

问题描述 问题原因 解决方法

在系统内sysconfig的网络转发默认配置为default.forwarding==1的情况下,新建网卡的forwarding配置被自动更改为0,导致新增网卡IP转发失效。

systemd-networkd的配置缺少IPForward=no ,导致inetdev_init正常初始化 forwarding=$default 后被设置为 forwarding=0

您可以通过以下步骤新增一条IP转发配置,开启IP转发功能:

  1. 在配置文件 /etc/systemd/network/10-eth0.network 中, [Network] 区域增加 IPForward=yes 配置项,如下所示。
    [Match]
    Name=eth0
    
    [Network]
    DHCP=yes
    IPForward=yes
    
    [DHCP]
    UseDNS=yes
  2. 执行以下命令,重启systemd-networkd服务。
    systemctl restart systemd-networkd

network-scripts与systemd-networkd配置项的差异

配置项

network-scripts

systemd-networkd

备注

IP

配置文件为:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #设备别名
BOOTPROTO=dhcp #IP获取方式:
·    static: 静态IP
·    dhcp: dhcp协议
·    bootp: bootp协议
ONBOOT=yes #系统启动时是否激活此设备

配置文件为:/etc/systemd/network/10-eth0.network

[Match]
·    Name=eth0
[Network]
·    DHCP=yes
[DHCP]
·    UseDNS=yes
  • network-scripts启动网络配置服务后,会自动生成默认配置文件。
  • systemd-networkd需要用户添加默认配置文件。

网关

配置文件为:/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=xxx
GATEWAY=192.168.X.X

配置文件为:/etc/systemd/network/10-eth0.network

[Network]
·    Gateway=192.168.X.X
·    DNS=
N/A

DNS

配置文件为:/etc/resolv.conf

nameserver

配置文件为:/etc/resolv.conf

说明:此文件为指向/run/systemd/resolve/resolv.conf文件的软连接,请参见DNS域名解析超时章节,关注文件持久化的问题。

nameserver

修改DNS的方法,请参见如何在Alibaba Cloud Linux 2实例中通过“/etc/resolv.conf”文件自定义配置DNS

适用于

  • 云服务器ECS