Spectre 和 Meltdown 漏洞修复

问题

补丁程序可用于修复这些 Spectre 和 Meltdown 漏洞

环境

  • 此问题仅适用于 Cumulus Linux 3.0.0 - 3.7.12 ESR。Cumulus Linux 4.0.0 及更高版本默认启用 Spectre 和 Meltdown 补丁程序。

已验证平台

NVIDIA 已测试并验证补丁程序可用于以下平台;下面列出的解决方案适用于所有受支持的平台

  • Dell Z9100-ON
  • Dell Z9264F-ON
  • Edgecore AS6712-32X
  • Edgecore  AS5712-54X
  • HPE Altoline 6940
  • HPE Altoline 6920
  • NVIDIA Spectrum

解决方案

NVIDIA 将补丁程序应用于 Cumulus Linux 3.7.4 内核和更高版本,但在 3.7.x 分支中默认禁用它们。NVIDIA 禁用它们的原因是,尽管 NVIDIA 进行了广泛的测试,但此修复程序包含许多内核更改,可能会影响交换机性能。如果您愿意,可以禁用此修复程序。

您可以通过在 GRUB 配置文件中配置一些内核命令行选项、重启交换机,然后更新交换机 BIOS 来启用补丁程序。

命令行选项位于 /etc/default/grub.d/00-spectre-meltdown.cfg 文件中。如果您从二进制安装映像安装了 Cumulus Linux 3.7.4,则命令行选项也会出现在 /etc/default/grub 中。

要应用补丁程序,请执行以下操作

  1. 按如下所示编辑 /etc/default/grub.d/00-spectre-meltdown.cfg 文件

    cumulus@switch:~$ sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT/#GRUB_CMDLINE_LINUX_DEFAULT/" /etc/default/grub.d/00-spectre-meltdown.cfg
    
  2. 如果您对 Cumulus Linux 3.7.4 或更高版本进行了二进制安装,则还必须按如下所示编辑 /etc/default/grub

    cumulus@switch:~$ sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet noibrs noibpb nolfence spectre_v2=off nopti"/#GRUB_CMDLINE_LINUX_DEFAULT="quiet noibrs noibpb nolfence spectre_v2=off nopti"\
    GRUB_CMDLINE_LINUX_DEFAULT="quiet"/' /etc/default/grub
    
  3. 运行 update-grub

    cumulus@switch:~$ update-grub
    
  4. 重启交换机。

  5. 更新交换机上的 BIOS。有关如何执行此操作的信息,请联系您的交换机制造商。

  6. 验证 GRUB 选项是否已成功启用,检查 /proc/cmdline 以确保以下内容不存在

    cumulus@switch:~$ grep "noibrs noibpb nolfence spectre_v2=off nopti" /proc/cmdline
    cumulus@switch:~$ 
    

    您还可以通过检查来验证 GRUB 选项是否已成功启用

    cumulus@switch:~$ rgrep . /sys/devices/system/cpu/vulnerabilities
    /sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: lfence
    /sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: IBRS IBPB
    /sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
    cumulus@switch:~$