You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a conceptual description of the control plane and a reference manual
for the control service.
The control plane description is mostly based on the IETF SCION control
plane specification draft (https://www.ietf.org/archive/id/draft-dekater-scion-controlplane-00html).
The reference manual for the control service describes the many command
line flags, environment variables, configuration files and APIs. This
documentation highlights a variety of usability shortcomings,
redundancies and inconsistencies that should be addressed eventually.
Copy file name to clipboardExpand all lines: doc/control-plane.rst
+291-3Lines changed: 291 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -10,11 +10,299 @@ Control Plane
10
10
hidden-paths
11
11
beacon-metadata
12
12
13
+
14
+
Introduction
15
+
============
16
+
13
17
The SCION control plane is responsible for discovering path segments and making them available to
14
18
endpoints. This includes path-segment exploration (also called "beaconing"), registration, lookup,
15
19
and finally the combination of path-segments to end-to-end paths.
16
20
17
-
.. admonition:: TODO
21
+
.. Note: content based on (extracts from) IETF draft draft-dekater-scion-controlplane-00.
22
+
23
+
The **control service** is responsible for the path exploration and registration processes in the
24
+
control plane.
25
+
It is the main control-plane infrastructure component within each SCION :term:`AS`.
26
+
The control service of an AS has the following tasks:
27
+
28
+
- Generating, receiving, and propagating :term:`Path Construction Beacons (PCBs) <PCB>`.
29
+
Periodically, the control service of a core AS generates a set of PCBs, which are forwarded to the
30
+
child ASes or neighboring core ASes.
31
+
In the latter case, the PCBs are sent over policy-compliant paths to discover multiple paths
32
+
between any pair of core ASes.
33
+
- Selecting and registering the set of path segments via which the AS wants to be reached.
34
+
- Managing certificates and keys to secure inter-AS communication.
35
+
Each PCB contains signatures of all on-path ASes.
36
+
Every time the control service of an AS receives a PCB, it validates the PCB's authenticity.
37
+
When the control service lacks an intermediate certificate, it can query the control service of
38
+
the neighboring AS that sent the PCB.
39
+
40
+
Path Segments
41
+
-------------
42
+
43
+
As described previously, the main goal of SCION's control plane is to create and manage path
44
+
segments, which can then be combined into forwarding paths to transmit packets in the data plane.
45
+
SCION distinguishes the following types of path segments:
46
+
47
+
- A path segment from a non-core AS to a core AS is an *up-segment*.
48
+
- A path segment from a core AS to a non-core AS is a *down-segment*.
49
+
- A path segment between core ASes is a *core-segment*.
50
+
51
+
So each path segment either ends at a core AS, or starts at a core AS, or both.
52
+
53
+
.. note::
54
+
55
+
There are no SCION path segments that start and end at a non-core AS. However, when combining
56
+
path segments into an end-to-end SCION path, shortcuts and peering-links can be used.
57
+
58
+
All path segments are reversible: A core-segment can be used bidirectionally, and an up-segment can
59
+
be converted into a down-segment, or vice versa, depending on the direction of the end-to-end path.
60
+
This means that all path segments can be used to send data traffic in both directions.
61
+
62
+
.. _control-plane-beaconing:
63
+
64
+
Path Exploration (Beaconing)
65
+
============================
66
+
67
+
**Path exploration** is the process where an AS discovers paths to other ASes. In SCION, this
68
+
process is referred to as *beaconing*.
69
+
70
+
In SCION, the *control service* of each AS is responsible for the beaconing process.
71
+
The control service generates, receives, and propagates *path-segment construction beacons (PCBs)*
72
+
on a regular basis, to iteratively construct path segments.
73
+
PCBs contain topology and authentication information, and can also include additional metadata that
74
+
helps with path management and selection.
75
+
The beaconing process itself is divided into routing processes on two levels, where *inter-ISD* or
76
+
core beaconing is based on the (selective) sending of PCBs without a defined direction, and
77
+
*intra-ISD* beaconing on top-to-bottom propagation.
78
+
This division of routing levels is a key architectural decision of SCION and important for achieving
79
+
a better scalability.
80
+
81
+
- *Inter-ISD or core beaconing* is the process of constructing path segments between core ASes in
82
+
the same or in different ISDs. During core beaconing, the control service of a core AS either
83
+
initiates PCBs or propagates PCBs received from neighboring core ASes to other neighboring core
84
+
ASes. Core beaconing is periodic; PCBs are sent over policy-compliant paths to discover multiple
85
+
paths between any pair of core ASes.
86
+
- *Intra-ISD beaconing* creates path segments from core ASes to non-core ASes. For this, the control
87
+
service of a core AS creates PCBs and sends them to the non-core child ASes (typically customer
88
+
ASes). The control service of a non-core child AS receives these PCBs and forwards them to its
89
+
child ASes, and so on. This procedure continues until the PCB reaches an AS without any customer
90
+
(leaf AS). As a result, all ASes within an ISD receive path segments to reach the core ASes of
91
+
their ISD.
92
+
93
+
On its way, a PCB accumulates cryptographically protected path- and forwarding information per
94
+
traversed AS. At every AS, metadata as well as information about the AS's ingress and egress
95
+
interfaces are added to the PCB.
96
+
97
+
Origination of PCBs
98
+
-------------------
99
+
100
+
Every core AS originates PCBs at regular intervals, and sends these to all egress interfaces to
101
+
connected neighbor ASes.
102
+
An originated PCB sent to a neighboring core ASes initiates an inter-ISD beacon, ultimately
103
+
resulting in a core-segment.
104
+
An originated PCB sent to a child AS initiates the intra-ISD beacon creating an up/down segment.
105
+
106
+
Propagation of PCBs
107
+
-------------------
108
+
109
+
PCBs are propgated at regular intervals at each AS.
110
+
When PCBs are received, they are not propagated immediately, but put into temporary storage
111
+
until the next propagation event.
112
+
The selection and propagation of PCBs differs between the inter-ISD and intra-ISD beacon schemes.
113
+
114
+
Core ASes implement the inter-ISD / core beaconing scheme.
115
+
For every interface connecting to a neighboring core AS:
116
+
117
+
1. Select the best :math:`N` PCBs for each origin core AS.
118
+
This can take into account both the available PCBs as well as local policies and information
119
+
about the link to the neighbor.
120
+
2. Extend the selected PCBs by adding an *AS entry*
121
+
3. Send the extended PCBs over the interface
122
+
123
+
Non-core ASes implement the intra-ISD / non-core beaconing scheme.
124
+
For every interface connecting to a child AS:
125
+
126
+
1. Select the best :math:`N` PCBs.
127
+
This can take into account both the available PCBs as well as local policies and information
128
+
about the link to the child AS.
129
+
2. Extend the selected PCBs by adding an *AS entry*
130
+
3. Send the extended PCBs over the interface
131
+
132
+
AS Entries
133
+
----------
134
+
135
+
Every AS adds a signed *AS entry* to the PCBs it originates, propagates or :ref:`registers <control-plane-registration>`.
136
+
137
+
This AS entry includes the relevant network topology information for this AS-hop
138
+
defined by the ingress and egress :term:`interface IDs <Interface ID>` of the beacon.
139
+
The so-called *hop field* includes a MAC that authorizes the use of this hop in the path
140
+
segment defined by the PCB, until it expires.
141
+
See the description of the :ref:`SCION Path <path-type-scion>` in the data plane section for more
142
+
details on the hop field format and the MAC chaining mechanism.
143
+
144
+
Additionally, an AS entry can contain :doc:`metadata <beacon-metadata>` such as the link MTU,
145
+
geographic locations of the AS routers, latencies, etc.
146
+
147
+
For illustration, the following code blocks show the definition of the protobuf message definitions
148
+
for the AS entry "body" and the contained hop field information.
149
+
This is just a small excerpt of the relevant definitions.
150
+
See the `SCION Control Plane IETF draft (section "Components of a PCB") <https://www.ietf.org/archive/id/draft-dekater-scion-controlplane-00.html#name-components-of-a-pcb-in-mess>`_
151
+
for a more complete discussion of the message formats and signature inputs,
152
+
or :file-ref:`proto/control_plane/v1/seg.proto` for the raw protocol definitions used in this project.
0 commit comments