网络配置#

本章介绍 DGX A100 系统的关键网络注意事项和说明。

配置网络代理#

如果您的网络需要使用代理服务器,您需要设置配置文件以确保 DGX A100 系统通过代理进行通信。

对于操作系统和大多数应用程序#

编辑 /etc/environment 文件,并将以下代理地址添加到该文件中的 PATH 行下方。

http_proxy="http://<username>:<password>@<host>:<port>/"
ftp_proxy="ftp://<username>:<password>@<host>:<port>/";
https_proxy="https://<username>:<password>@<host>:<port>/";
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
HTTP_PROXY="http://<username>:<password>@<host>:<port>/"
FTP_PROXY="ftp://<username>:<password>@<host>:<port>/";
HTTPS_PROXY="https://<username>:<password>@<host>:<port>/";
NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

其中用户名和密码是可选的。请参考以下示例

http_proxy="http://myproxy.server.com:8080/"
ftp_proxy="ftp://myproxy.server.com:8080/";
https_proxy="https://myproxy.server.com:8080/";

对于 apt#

编辑(或创建)/etc/apt/apt.conf.d/myproxy 代理文件,并包含以下行

Acquire::http::proxy "http://<username>:<password>@<host>:<port>/";
Acquire::ftp::proxy "ftp://<username>:<password>@<host>:<port>/";
Acquire::https::proxy "https://<username>:<password>@<host>:<port>/";

其中用户名和密码是可选的。请参考以下示例

Acquire::http::proxy "http://myproxy.server.com:8080/";
Acquire::ftp::proxy "ftp://myproxy.server.com:8080>/";
Acquire::https::proxy "https://myproxy.server.com:8080/";

对于 Docker#

为了确保 Docker 可以通过代理访问 NGC 容器注册表,Docker 使用环境变量。有关为 Docker 配置代理环境变量的最佳实践建议,请参阅 https://docs.docker.net.cn/

配置 Docker IP 地址#

为了确保 DGX A100 系统可以访问 Docker 容器的网络接口,应将 Docker 配置为使用与 DGX A100 系统使用的其他网络资源不同的子网。

默认情况下,Docker 使用 172.17.0.0/16 子网。请咨询您的网络管理员以了解您的网络使用的 IP 地址。如果您的网络与默认 Docker IP 地址范围没有冲突,则无需更改,您可以跳过本节。

但是,如果您的网络将此范围内的地址用于 DGX A100 系统,则应更改默认 Docker 网络地址。

您可以通过修改 /etc/docker/ daemon.json 文件或修改 /etc/systemd/system/docker.service.d/docker-override.conf 文件来更改默认 Docker 网络地址。以下说明提供了一个修改 /etc/systemd/system/docker.service.d/docker-override.conf 文件以覆盖默认 Docker 网络地址的示例。

  1. 编辑 docker-override.conf 文件并进行以下更改

    [Service] ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// -s overlay2 LimitMEMLOCK=infinity LimitSTACK=67108864
    
  2. 进行以下以粗体显示的更改,为您的网络设置正确的桥接 IP 地址和 IP 地址范围。

    请咨询您的 IT 管理员以获取正确的地址。

    [Service] ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// -s overlay2 --bip=192.168.127.1/24
           --fixed-cidr=192.168.127.128/25
    LimitMEMLOCK=infinity
    LimitSTACK=67108864
    
  3. 完成后,保存并关闭 /etc/systemd/system/docker.service.d/docker- override.conf 文件。

  4. 重新加载 systemctl 守护程序。

    $ sudo systemctl daemon-reload
    
  5. 重启 Docker。

    $ sudo systemctl restart docker
    

开放端口#

确保下表列出的端口在您的防火墙上对 DGX A100 系统开放且可用。

开放端口#

端口(协议)

方向

用途

22 (TCP)

入站

SSH

53 (UDP)

出站

DNS

80 (TCP)

出站

HTTP,软件包更新

443 (TCP)

出站

用于互联网 (HTTP/HTTPS) 连接到 NVIDIA GPU 云

如果端口 443 通过企业防火墙代理,则必须支持 WebSocket 协议流量。

443 (TCP)

入站

用于 BMC Web 服务、远程控制台服务、cd-media 服务和 Redfish。

如果端口 443 通过企业防火墙代理,则必须支持 WebSocket 协议流量。

NGC 容器的连接要求#

要从 NGC 容器注册表运行 NVIDIA NGC 容器,您的网络必须能够访问以下 URL

要验证与 nvcr.io 的连接,请运行以下命令

$ wget https://nvcr.io/v2

您应该看到连接验证,然后是 401 错误。

--2018-08-01 19:42:58-- https://nvcr.io/v2
Resolving nvcr.io (nvcr.io)... 52.8.131.152, 52.9.8.8
Connecting to nvcr.io (nvcr.io)|52.8.131.152|:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

为 BMC 配置静态 IP 地址#

本节介绍如何为 BMC 设置静态 IP 地址。如果您的网络不支持 DHCP,则需要执行此操作。

使用以下部分中描述的方法之一

通过使用 ipmitool 配置 BMC 静态地址#

本节介绍如何从 Ubuntu 命令行设置 BMC 的静态 IP 地址。

注意

如果您无法远程访问 DGX A100 系统,请将显示器(1440x900 或更低分辨率)和键盘直接连接到 DGX A100 系统。

要查看当前设置,请输入以下命令。

$ sudo ipmitool lan print 1
  1. 将 IP 地址源设置为静态。

    $ sudo ipmitool lan set 1 ipsrc static
    
  2. 设置适当的地址信息。

    • 要设置 IP 地址(BIOS 设置中的“Station IP address”),请输入以下内容,并将斜体文本替换为您的信息。

      $ sudo ipmitool lan set 1 ipaddr <my-ip-address>
      
    • 要设置子网掩码,请输入以下内容,并将斜体文本替换为您的信息。

      $ sudo ipmitool lan set 1 netmask <my-netmask-address>
      
    • 要设置默认网关 IP(BIOS 设置中的“Router IP address”),请输入以下内容,并将斜体文本替换为您的信息。

      $ sudo ipmitool lan set 1 defgw ipaddr <my-default-gateway-ip-address>
      

通过使用系统 BIOS 配置 BMC 静态 IP 地址#

本节介绍当您无法远程访问 DGX A100 系统时,如何设置 BMC 的静态 IP 地址,此过程涉及在系统启动期间设置 BMC IP 地址。

  1. 将键盘和显示器(最大分辨率 1440 x 900)连接到 DGX A100 系统,然后打开 DGX A100 系统。

  2. 当您看到 SBIOS 版本屏幕时,按 Del 或 F2 进入 BIOS 设置实用程序屏幕。

  3. 在 BIOS 设置实用程序屏幕上,导航到顶部菜单上的 Server Mgmt 选项卡,然后滚动到 BMC network configuration 并按 Enter。

  4. 滚动到 Configuration Address Source 并按 Enter,然后在 Configuration Address source 弹出窗口中,选择 Static,然后按 Enter。

  5. 根据需要为 Station IP address、Subnet mask 和 Router IP address 设置地址,对每个地址执行以下操作

    1. 滚动到特定项目并按 Enter。

    2. 在弹出窗口中输入适当的信息,然后按 Enter。

  6. 完成所有更改后,按 F10 保存并退出。

为网络端口配置 BMC 静态 IP 地址#

在 DGX A100 系统的初始启动设置过程中,您有机会为单个网络接口配置静态 IP 地址。如果您当时没有设置,您可以按照以下说明从 Ubuntu 命令行配置静态 IP 地址。

注意

如果您要远程连接到 DGX A100 控制台,请使用 BMC 远程控制台进行连接。如果您使用 SSH 连接,则在执行最后一步时连接将丢失。此外,如果您遇到配置文件问题,BMC 连接将有助于故障排除。

如果您无法远程访问 DGX A100 系统,请将显示器(1440x900 或更低分辨率)和键盘直接连接到 DGX A100 系统。

  1. 根据您连接到网络的物理以太网端口,确定您要配置的端口指定。

    有关要配置的连接的端口指定,请参阅 配置网络代理

  2. 编辑网络配置 yaml 文件。

    注意

    确保您的文件在间距方面与以下示例完全相同;请勿使用制表符!

    $ sudo vi /etc/netplan/01-netcfg.yaml
    
    network:
      version: 2
      renderer: networkd
      ethernets:
    
        <port-designation>:
        dhcp4: no
        dhcp6: no
        addresses: [10.10.10.2/24]
        gateway4: 10.10.10.1
        nameservers:
          search: [<mydomain>, <other-domain>]
          addresses: [10.10.10.1, 1.1.1.1]
    

    请咨询您的网络管理员以获取粗体项目的适当信息,例如网络、网关和域名服务器地址,并使用您在步骤 1 中确定的端口指定。

  3. 完成编辑后,按 ESC 切换到命令模式,然后将文件保存到磁盘并退出编辑器。

  4. 应用更改。

    $ sudo netplan apply
    

注意

如果在一分钟后您没有返回到命令行提示符,请重启系统。

有关更多信息,请参阅 https://help.ubuntu.com/lts/serverguide/network-configuration.html.en

在 InfiniBand 和以太网之间切换#

NVIDIA DGX A100 系统配备最多八个 NVIDIA ConnectX-6 或 ConnectX-7 单端口网卡在 I/O 板上,通常用于集群通信。默认情况下,这些配置为 InfiniBand 端口,但您可以选择将这些端口转换为以太网端口。

为了使这些更改正常工作,配置的端口必须连接到与端口配置匹配的网络交换机。换句话说,如果端口配置设置为 InfiniBand,则外部交换机应为 InfiniBand 交换机,并使用相应的 InfiniBand 电缆。如果端口配置设置为以太网,则交换机也应为以太网。

DGX A100 还配备一个(可选两个)双端口连接,通常用于网络存储,默认配置为以太网。这些也可以配置为 InfiniBand。

注意

在双端口卡上,如果其中一个端口配置为以太网,而另一个端口配置为 InfiniBand,则适用以下限制。

  • InfiniBand 端口(端口 1 或 2)不支持 FDR。

  • 如果端口 1 是 InfiniBand,则端口 2(以太网)不支持 40 GbE/10GbE。

  • 如果端口 1 是以太网,则端口 2(InfiniBand)不支持 EDR。

启动 Mellanox 软件工具并确定当前端口配置#

以下是一些关于如何启动 Mellanox 软件工具并确定当前端口配置的信息。

启动 Mellanox 软件工具服务。

$ sudo mst start

要确定当前端口配置,请输入以下内容

$ sudo mlxconfig -e query | egrep -e Device\|LINK_TYPE

以下示例显示了其中一个端口设备的输出,显示了设备路径以及默认配置、当前配置和下次启动配置。

Device #2:
Device type: ConnectX6
Device: /dev/mst/mt4123_pciconf8
Configurations: Default Current Next Boot
* LINK_TYPE_P1 IB(1) IB(1) IB(1)
  • IB(1) 表示端口配置为 InfiniBand。

  • ETH(2) 表示端口配置为以太网。

确定您要配置的端口的插槽号的设备路径总线号。请参阅 开放端口 中的表格以了解映射。

切换端口配置#

确保您已按照 启动 Mellanox 软件工具并确定当前端口配置 中的描述启动了 Mellanox 软件工具 (MST) 服务,并已确定要更改的正确端口。

为您要配置的每个端口发出 mlxconfig 命令。

$ sudo mlxconfig -y -d <device-path> set LINK_TYPE_P1=<config-number>

其中

  • <device-path> 对应于您要配置的端口。

  • <config-number> 对于 InfiniBand 为 1,对于以太网为 2

以下是将插槽 0 设置为以太网的示例

$ sudo mlxconfig -y -d /dev/mst/mt4123_pciconf2 set LINK_TYPE_P1=2

以下是将插槽 1 设置为 InfiniBand 的示例

$ sudo mlxconfig -y -d /dev/mst/mt4123_pciconf3 set LINK_TYPE_P1=1

要使这些更改生效,请重启系统。