Cluster
A SCION AS consists of one or more appliances that form a cluster to synchronize state. The appliances are the shards of the AS cluster and are referred to with a shard identifier. Each shard is an independent unit of the SCION AS and can function and fail independently of the other shards.
Note that this is an Anapaya-specific extension of how a SCION AS is internally implemented while fully adhering to the specification of the SCION protocol.
An appliance can be configured to take part in several ASes for instance to connect to multiple isolation domains. Hence, an appliance can be a member of several AS clusters. In each of the clusters it is identified by a shard id that is unique within the cluster.
The shard ids of the appliance are configured in the scion.ases
section and referenced in the
peer's cluster section.
Appliances synchronize two kinds of state:
- SCION control-plane data Consists of path segments and beacons that are used to construct the ASes path database. The synchronization of control data happens only within an AS and is performed by the SCION control service. The control service synchronizes its path segments and beacons with the control services of all peers whose addresses it learns from the topology information. This happens regardless of whether the topology information is statically configured or synchronized.
- Topology information Consists of addresses of SCION control services, IP-in-SCION tunneling
endpoints and information about SCION links to neighbors. The synchronization of topology
information is configured in the
cluster
section. Topology information can be automatically synchronized or configured statically. In both cases, each cluster member is configured with a list of all of its peers.
The Configuration reference section provides the full configuration reference. The sections following after provide descriptions of most relevant cluster configuration sections with more elaborated examples.
Configuration reference
Anapaya appliance configuration (cluster only)
cluster object
The configuration for the appliance cluster.
features object
The list of feature that are announced to the peers. Note that the actually announced value can depend on whether what features is locally enabled and configured.
Option to enable the announcement of support for the SCION RSS feature to the peers. If the local host does not support the SCION RSS feature, this option does not have any effect.
true
peers object[]
The list of peers in this cluster. This is used to configure the topology or the discovery of the topology of peer appliances in an organization.
Textual description for this peer.
features object
Configures the feature options of the peer. This field can not be set together with the synchronization field.
Option to statically enable the SCION RSS feature. If set to true, the local router enables UDP source port entropy on the underlay for SCION packets forwarded to the peer, such that the peer can leverage RSS for SCION traffic. This can greatly improve throughput performance. This must only be set to true if the peer supports the SCION RSS feature.
false
The name of this peer used to identify the peer. This can be any string but must be unique among all peers.
scion object
The relevant SCION configuration of the peer. This can be used to define the relevant SCION components on the peer appliance so that paths via the peer appliance can also be used.
ases object[]
The list of SCION ASes on the peer.
control object
Configuration and state data for the control service in the peer.
The address of the control service. The address must be specified as host:port.
192.168.1.1:30100
ISD-AS number of the AS.
1-ff00:0:110
neighbors object[]
The neighbors for the SCION AS in the peer.
interfaces object[]
The list of interfaces on the peer for this neighbor AS.
SCION interface identifier. It must be unique in the SCION AS.
Possible values: >= 1
and <= 65535
Internal address of the peer router that owns the interface.
169.254.0.1:30100
The maximum transmission unit in bytes for SCION packets. This represents the protocol data unit (PDU) of the SCION layer on this interface and is usually calculated as maximum Ethernet payload - IP Header - UDP Header.
1472
1472
ISD-AS number of the neighbor AS.
2-ff00:0:210
The relationship to the neighbor AS. If the local AS is core, this value must either be CORE or CHILD. If the local is non-core, this value must either be PARENT, CHILD or PEER.
Possible values: [CORE
, CHILD
, PARENT
, PEER
]
The shard ID of the peers in the AS.
scion_tunneling object
The relevant SCION tunneling configuration of the peer. This is used so that all appliances can announce the full list of SCION tunneling endpoints in the AS to other ASes.
endpoint object
The SCION tunneling endpoint on the peer appliance.
allowed_interfaces object[]
The SCION interfaces for each SCION AS that is configured on the peer, that are allowed to be used by this IP-in-SCION tunneling endpoint. This can be used to control incoming traffic, e.g., if a tunnel endpoint should only be reachable via SCION interfaces 1 and 2, allowed-interfaces should list them explicitly. Remote tunnel endpoints will then only choose paths entering the respective local AS via SCION interface 1 or 2. If the IP-in-SCION tunneling endpoint on the peer appliance should be reachable via a SCION interface of another appliance, the allowed-interfaces list must be configured with the respective SCION interfaces. By default the list is empty, in this case the appliance will automatically configure the SCION interfaces that are configured on the peer as allowed-interfaces. Automatic configuration can be disabled by setting disable_auto_allowed_interfaces.
List of allowed interfaces for this SCION AS
[2,3]
The SCION AS where the list of allowed interfaces applies. Packets to this IP-in-SCION tunnel endpoint in this SCION AS will only arrive on the listed interfaces.
Port number for control traffic. The control address is constructed from the IP address and this control port. The control address is used to exchange IP routing information as part of SGRP. If not set, or zero, the control port will be dynamically allocated.
40201
Port number for data traffic. The data address is constructed from the IP address and this control port. The data address is used for the IP-in-SCION encapsulated traffic stream. If not set, or zero, the data port will be dynamically allocated.
40200
Whether the automatic configuration of allowed interfaces should be disabled. When disabled, the IP-in-SCION tunneling endpoint of the peer will be reached by remote endpoints on all SCION interfaces of the locally configured AS. When enabled (default), the peer IP-in-SCION tunneling endpoint will only be reached by remote endpoints on the SCION interfaces that are configured on the peer appliance.
IP address of the peer IP-in-SCION endpoint.
192.168.1.100
Port number for probing traffic. The probe address is constructed from the IP address and this probe port. The probe address is used by remote tunnel endpoints in their health probing. If not set, or zero, the probe port will be dynamically allocated.
40202
synchronization object
The synchronization configuration for this peer. This can be used to configure the automatic synchronization of topology information and supported features. Automatic synchronization of topology and supported features is not recommended for EDGE deployments. Instead static configuration is recommended. This field can not be set together with the scion, scion-tunneling, and features field.
The gRPC address of this peer, used for synchronization of appliance information
192.168.1.1:30100
synchronization object
The configuration data necessary for the anapaya cluster synchronization. This determines how frequently this appliance synchronizes its local data with its peers, if synchronization is enabled.
The address where peers can fetch topology information. If this is not set, topology information is not exposed to peers and should be statically configured on the peers.
192.0.2.3:40000
The interval between two consecutive topology synchronizations attempts to the cluster peers. Must only be set if dynamic topology discovery is enabled. It requires a unit suffix out of ['d', 'h', 'm', 's']. The encoding consists of a decimal number concatenated with a suffix; for example, '5s', '10m', '12h', and '1d'.
1m
SCION control-plane data synchronization
SCION control-plane data is synchronized by the control services. The local control service
addresses are configured in the scion.ases
section. Refer to the documentation of the SCION
section for a detailed description of this section. The addresses of remote
control services are configured or synchronized through topology synchronization and no additional
configuration is required.
Even if topology synchronization is disabled, the control service still dynamically synchronizes its SCION control-plane data (beacons and path segments) with all control services that are configured as peers in the same AS.
Peers
The decision to configure topology information statically or to enable synchronization should be the same for all peers. In static configuration, all the topology information about peers must be explicitly stated in the configuration, and thus, the information must be known at the configuration time. In this mode, changing the topology information about peers requires changing the configuration. On the contrary, in the automatic mode, the peering appliances exchange their topology information using a protocol. Thus, only the synchronization endpoints must be configured in the configuration.
Static topology configuration
Statically configuring the topology information is recommended for Anapaya EDGE appliances, where the configuration overhead is small and the topology does not change frequently.
Automatic topology synchronization
Automatic topology synchronization is recommended for Anapaya CORE appliances. This way the configuration does not need to be updated when the topology changes for instance if a new SCION link is added.
To configure a peer for topology synchronization only the endpoint needs to be
configured through the synchronization.address
.
This field needs to match the cluster.synchronization.address
configured in
the peer's appliance configuration.