> This page is for version 11 (default).
> For other versions, use one of these documentation indexes:
> - 11 (default): https://docs.nvidia.com/base-command-manager/product-manuals/11/llms.txt
> - 10: https://docs.nvidia.com/base-command-manager/product-manuals/10/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/base-command-manager/product-manuals/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/base-command-manager/product-manuals/_mcp/server.

# Changing The Network Parameters Of The Head Node

## 6.1  Introduction

After a cluster physically arrives at its site, the administrator often has to change the network settings to suit the site. Details on this are given in [section 3.2.1 of the *Administrator Manual*](/admin/configuring#321-configuring-networks). However, it relies on understanding the material leading up to that section.

This chapter is therefore a quickstart document—conveniently a mere 3 pages—explaining how to change basic IPv4 network settings while assuming no prior knowledge of NVIDIA Base Command Manager and its network configuration interface.

## 6.2  Method

A cluster consists of a head node, say `basecm11` and one or more regular nodes. The head node of the cluster is assumed to face the internal network (the network of regular nodes) on one interface, say `eth0`. The external network leading to the internet is then on another interface, say `eth1`. This is referred to as a *type 1* configuration in this manual (section [3.3.9](/installation/installing#339-network-topology)).

Typically, an administrator gives the head node a static external IP address before actually connecting it up to the external network. This requires logging into the physical head node with the vendor-supplied root password. The original network parameters of the head node can then be viewed and set. For example for `eth1`:

```bash
# cmsh -c "device interfaces basecm11; get eth1 dhcp"
yes
```

Here, `yes` means the interface accepts DHCP server-supplied values.

Disabling DHCP acceptance allows a static IP address, for example `192.168.1.176`, to be set:

```bash
# cmsh -c "device interfaces basecm11; set eth1 dhcp no"
# cmsh -c "device interfaces basecm11; set eth1 ip 192.168.1.176; commit"
# cmsh -c "device interfaces basecm11; get eth1 ip"
192.168.1.176
```

Other external network parameters can be viewed and set in a similar way, as shown in table [6.1](#externalnetworkparametersandhowtochangethemontheheadnode). A reboot implements the networking changes.

*Table 6.1: External Network Parameters And How To Change Them On The Head Node*

<table>
  <thead>
    <tr>
      <th>
        **Network Parameter**
      </th>

      <th>
        **Description**
      </th>

      <th>
        **Operation**
      </th>

      <th>
        **Command Used**
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td rowspan="2">
        IP

        \*
      </td>

      <td rowspan="2">
        IP address of head node on eth1 interface
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "device interfaces basecm11; get eth1 ip"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "device interfaces basecm11; set eth1 ip `

        *`address`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        baseaddress

        \*
      </td>

      <td rowspan="2">
        base IP address (network address) of network
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "network get externalnet baseaddress"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "network; set externalnet baseaddress `

        *`address`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        broadcastaddress

        \*
      </td>

      <td rowspan="2">
        broadcast IP address of network
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "network get externalnet broadcastaddress"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "network; set externalnet broadcastaddress `

        *`address`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        netmaskbits
      </td>

      <td rowspan="2">
        netmask in CIDR notation (number after “/”, or prefix length)
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "network get externalnet netmaskbits"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "network; set externalnet netmaskbits `

        *`bitsize`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        gateway

        \*
      </td>

      <td rowspan="2">
        gateway IP address (default route)
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "network get externalnet gateway"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "network; set externalnet gateway `

        *`address`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        nameservers

        *,

         

        \**
      </td>

      <td rowspan="2">
        nameserver IP addresses
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "partition get base nameservers"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "partition; set base nameservers `

        *`address`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        searchdomains

        \**
      </td>

      <td rowspan="2">
        name of search domains
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "partition get base searchdomains"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "partition; set base searchdomains `

        *`hostname`*

        `; commit"`
      </td>
    </tr>

    <tr>
      <td rowspan="2">
        timeservers

        \**
      </td>

      <td rowspan="2">
        name of timeservers
      </td>

      <td>
        view
      </td>

      <td>
        `cmsh -c "partition get base timeservers"`
      </td>
    </tr>

    <tr>
      <td>
        set
      </td>

      <td>
        `cmsh -c "partition; set base timeservers `

        *`address`*

        `; commit"`
      </td>
    </tr>
  </tbody>
</table>

\* If *address* is set to 0.0.0.0 then the value offered by the DHCP server on the external network is accepted\
\*\* Space-separated multiple values are also accepted for these parameters when setting the value for *address* or *hostname*.

## 6.3  Terminology

A reminder about the less well-known terminology in the table:

* `netmaskbits` is the netmask size, or prefix-length, in bits. In IPv4’s 32-bit addressing, this can be up to 31 bits, so it is a number between 1 and 31. For example: networks with 256 (2⁸) addresses (i.e. with host addresses specified with the last 8 bits) have a netmask size of 24 bits. They are written in CIDR notation with a trailing “`/24`”, and are commonly spoken of as “slash 24” networks.

* `baseaddress` is the IP address of the network the head node is on, rather than the IP address of the head node itself. The `baseaddress` is specified by taking `netmaskbits` number of bits from the IP address of the head node. Examples:

  * A network with 256 (2⁸) host addresses: This implies the first 24 bits of the head node’s IP address are the network address, and the remaining 8 bits are zeroed. This is specified by using “0” as the last value in the dotted-quad notation (i.e. zeroing the last 8 bits). For example: 192.168.3.0

  * A network with 128 (2⁷) host addresses: Here `netmaskbits` is 25 bits in size, and only the last 7 bits are zeroed. In dotted-quad notation this implies “128” as the last quad value (i.e. zeroing the last 7 bits). For example: 192.168.3.128.

When in doubt, or if the preceding terminology is not understood, then the values to use can be calculated using the head node’s `sipcalc` utility. To use it, the IP address in CIDR format for the head node must be known.

When run using a CIDR address value of 192.168.3.130/25, the output is (some output removed for clarity):

```bash
# sipcalc 192.168.3.130/25

Host address            - 192.168.3.130
Network address         - 192.168.3.128
Network mask            - 255.255.255.128
Network mask (bits)     - 25
Broadcast address       - 192.168.3.255
Addresses in network    - 128
Network range           - 192.168.3.128 - 192.168.3.255
```

Running it with the `-b` (binary) option may aid comprehension:

```bash
# sipcalc -b 192.168.3.130/25

Host address            - 11000000.10101000.00000011.10000010
Network address         - 11000000.10101000.00000011.10000000
Network mask            - 11111111.11111111.11111111.10000000
Broadcast address       - 11000000.10101000.00000011.11111111
Network range           - 11000000.10101000.00000011.10000000 -
                          11000000.10101000.00000011.11111111
```