============================================
Core node group setup
============================================

The following page explains how to set up a group of core nodes.

A node group allows you to treat a group of nodes as if it were a single node.
The most common use case is to set a group as the target of a peer connection,
facilitating quick and seamless failover if one of the nodes in the group goes
down. More information can found in the `node group documentation
<../node-groups/index.html>`__.

.. graphviz::

    graph {
        rankdir=TB;
        newrank=true;
        splines=ortho;
        ranksep=0;
        bgcolor="transparent";

        node [
            fontname="Arial",
            fontsize=12,
            shape=box,
            style="filled,rounded"
        ];

        subgraph cluster_west {
            label="Group: West";
            labelloc="t";
            style="filled,rounded";
            fillcolor="#EAECEE";
            color="#666666";
            fontname="Arial";

            subgraph cluster_dc1 {
                label="Node: dc1";
                labelloc="t";
                style="filled,rounded";
                fillcolor="#E9F7EF";
                color="#1E8449";
                fontname="Arial";

                dc1_eth0 [
                    label=<<b>Interface: eth0</b><br align="left"/>    Aliases: <font color="#333333">public</font><br align="left"/>    VRF: <font color="#333333">Global</font><br align="left"/>    IPv4: <font color="#333333">203.0.113.2/24</font><br align="left"/>    IPv6: <font color="#333333">2001:db8:1::2/64</font><br align="left"/>    Keep on shutdown: <font color="#333333">✔ (IPv4/IPv6)</font><br align="left"/>>,
                    fillcolor="#FFFFFF",
                    color="#666666"
                ];
            }

            subgraph cluster_dc0 {
                label="Node: dc0";
                labelloc="t";
                style="filled,rounded";
                fillcolor="#E9F7EF";
                color="#1E8449";
                fontname="Arial";

                dc0_eth0 [
                    label=<<b>Interface: eth0</b><br align="left"/>    Aliases: <font color="#333333">public</font><br align="left"/>    VRF: <font color="#333333">Global</font><br align="left"/>    IPv4: <font color="#333333">203.0.113.1/24</font><br align="left"/>    IPv6: <font color="#333333">2001:db8:1::1/64</font><br align="left"/>    Keep on shutdown: <font color="#333333">✔ (IPv4/IPv6)</font><br align="left"/>>,
                    fillcolor="#FFFFFF",
                    color="#666666"
                ];
            }

            { rank=same; dc0_eth0 -- dc1_eth0 [style=invis] }
        }
    }

|

Instructions
============

#. `Create a new node group record <../node-groups/managing-node-group-records.html>`__
   on the management server with the name ``West``.

#. `Create a new node record <../nodes/managing-node-records.html>`__  on the
   management server with the name ``dc0`` and the node group ``West``.

#. `Add an interface <../interfaces-and-addressing/managing-interfaces-and-addresses.html>`__
   to the ``dc0`` node record with the following configuration:

   - Name: ``eth0``

      - Aliases: ``public``
      - VRF: ``Global``
      - IPv4: ``203.0.113.1/24``
      - IPv6: ``2001:db8:1::1/64``
      - Keep on shutdown enabled on both addresses

#. Create another node record on the management server with the name ``dc1``
   and the node group ``West``.

#. Add an interface to the ``dc1`` node record with the following configuration:

   - Name: ``eth0``

      - Aliases: ``public``
      - VRF: ``Global``
      - IPv4: ``203.0.113.2/24``
      - IPv6: ``2001:db8:1::2/64``
      - Keep on shutdown enabled on both addresses

#. You now have a valid core node group configuration ready to accept peer link
   connections from other nodes.
