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
Copy file name to clipboardExpand all lines: doc/concepts/configuration/configuration_connections.rst
+78-75Lines changed: 78 additions & 75 deletions
Original file line number
Diff line number
Diff line change
@@ -3,18 +3,18 @@
3
3
Connections
4
4
===========
5
5
6
-
Communicating to Tarantool instances is required for different purposes, for example:
6
+
Configuring connections is required for different purposes, for example:
7
7
8
-
- Communicating between replica set peers or cluster members.
8
+
- Communicating between cluster members.
9
9
- Connecting to cluster members for administration using :ref:`tt <tt-cli>`.
10
10
- Managing clusters using :ref:`Tarantool Cluster Manager <tcm>`.
11
11
- Connecting to an instance using the :ref:`net.box <net_box-module>` module or :ref:`connectors <index-box_connectors>` for different languages.
12
12
13
-
For communication to and between cluster instances, Tarantool uses a binary protocol called :ref:`iproto <box_protocol>`.
13
+
To communicate to and between cluster instances, Tarantool uses a :ref:`binary protocol <box_protocol>` called iproto.
14
14
The corresponding :ref:`iproto <configuration_reference_iproto>` section in :ref:`YAML configuration <configuration>` lets you configure various connection settings:
15
15
16
16
- One or several URIs used to listen for incoming requests.
17
-
- Settings used advertise an instance to other cluster members.
17
+
- An URI used advertise an instance to other cluster members.
18
18
- SSL settings used to secure connections.
19
19
20
20
@@ -72,7 +72,7 @@ In this case, this port is used for all IP addresses the server listens on.
72
72
SSL parameters
73
73
~~~~~~~~~~~~~~
74
74
75
-
You can enable :ref:`traffic encryption <configuration_connections_ssl>` for a connection using the ``params`` section of the specified URI:
75
+
In the Enterprise Edition, you can enable :ref:`traffic encryption <configuration_connections_ssl>` for a connection using the ``params`` section of the specified URI:
@@ -99,18 +99,20 @@ For local development, you can enable communication between cluster members by u
99
99
100
100
.. _configuration_connections_advertise:
101
101
102
-
Advertise settings
103
-
------------------
102
+
Advertise URI
103
+
-------------
104
104
105
-
Advertise settings (:ref:`iproto.advertise.* <configuration_reference_iproto_advertise>`) let other cluster members or clients know how to connect to the current Tarantool instance.
106
-
These settings might include the credentials required to connect to this instance, a URI used to listen for incoming requests, and SSL settings.
105
+
An advertise URI (:ref:`iproto.advertise.* <configuration_reference_iproto_advertise>`) lets other cluster members or clients know how to connect to the current Tarantool instance:
107
106
108
-
If an advertise URI is not specified explicitly, a :ref:`listen URI <configuration_connections_listen_uri>` of this instance is used.
109
-
In this case, you need at least to specify credentials for connecting to this instance.
107
+
- ``iproto.advertise.peer`` specifies how to advertise the instance to other cluster members.
108
+
- ``iproto.advertise.sharding`` specifies how to advertise the instance to a router and rebalancer.
109
+
- ``iproto.advertise.client`` accepts a URI used to advertise the instance to clients.
110
110
111
-
.. NOTE::
111
+
``iproto_advertise.<peer_or_sharding>`` might include the credentials required to connect to this instance, a URI used to listen for incoming requests, and SSL settings.
112
+
113
+
If ``iproto_advertise.<peer_or_sharding>.uri`` is not specified explicitly, a :ref:`listen URI <configuration_connections_listen_uri>` of this instance is used.
114
+
In this case, you need at least to specify credentials for connecting to this instance.
112
115
113
-
If several listen URIs are specified, the first one is used as an advertise URI.
If required, you can specify an advertise URI explicitly by setting up the :ref:`iproto_advertise.\<peer_or_sharding\>.uri <configuration_reference_iproto_advertise.peer_sharding.uri>` option.
143
145
In the example below, ``iproto.listen`` includes two URIs that can be used to connect to ``instance001`` but only the second one is used to advertise this instance to other replica set peers:
@@ -160,55 +162,9 @@ The ``iproto_advertise.<peer_or_sharding>.uri`` option can also accept an FQDN i
160
162
peer:
161
163
uri: 'server001.example.com:3301'
162
164
165
+
To learn about the specifics of configuring an advertise URI’s SSL settings, see :ref:`configuration_connections_ssl_advertise_uri`.
163
166
164
-
.. _configuration_connections_advertise_uri_ssl:
165
167
166
-
SSL parameters
167
-
~~~~~~~~~~~~~~
168
-
169
-
:ref:`SSL parameters <configuration_connections_ssl>` for an advertise URI should be set only if this :ref:`advertise URI is specified explicitly <configuration_connections_advertise_explicitly>`.
170
-
Otherwise, SSL parameters of a listen URI are used and no additional configuration is required.
171
-
172
-
Configuring an advertise URI's SSL options depends on whether a trusted certificate authorities (CA) file is set or not.
173
-
Without the CA file, you only need to set ``iproto_advertise.<peer_or_sharding>.params.transport`` to ``ssl`` as shown below:
174
-
175
-
.. code-block:: yaml
176
-
177
-
instance001:
178
-
iproto:
179
-
listen:
180
-
- uri: '192.168.0.101:3301'
181
-
params:
182
-
transport: 'ssl'
183
-
ssl_cert_file: 'certs/server.crt'
184
-
ssl_key_file: 'certs/server.key'
185
-
advertise:
186
-
peer:
187
-
uri: 'server.example.com:3301'
188
-
params:
189
-
transport: 'ssl'
190
-
191
-
192
-
If the CA file is specified for a listen URI, you also need to configure ``ssl_cert_file`` and ``ssl_key_file`` for this advertise URI:
193
-
194
-
.. code-block:: yaml
195
-
196
-
instance001:
197
-
iproto:
198
-
listen:
199
-
- uri: '192.168.0.101:3301'
200
-
params:
201
-
transport: 'ssl'
202
-
ssl_ca_file: 'certs/root_ca.crt'
203
-
ssl_cert_file: 'certs/instance001/server001.crt'
204
-
ssl_key_file: 'certs/instance001/server001.key'
205
-
advertise:
206
-
peer:
207
-
uri: 'server001.example.com:3301'
208
-
params:
209
-
transport: 'ssl'
210
-
ssl_cert_file: 'certs/instance001/server001.crt'
211
-
ssl_key_file: 'certs/instance001/server001.key'
212
168
213
169
214
170
.. _configuration_connections_ssl:
@@ -226,9 +182,6 @@ Securing connections with SSL
226
182
Tarantool supports the use of SSL connections to encrypt client-server communications for increased security.
227
183
To enable SSL, use the :ref:`<uri>.params.* <configuration_reference_iproto_uri_params>` options, which can be applied to both listen and advertise URIs.
228
184
229
-
This section shows how to configure SSL settings for a listen URI.
230
-
To learn about the specifics of configuring an advertise URI's SSL settings, see :ref:`SSL parameters <configuration_connections_advertise_uri_ssl>`.
231
-
232
185
233
186
.. _configuration_connections_ssl_without_ca:
234
187
@@ -238,12 +191,12 @@ Without CA
238
191
The example below demonstrates how to enable traffic encryption by using a self-signed server certificate.
239
192
The following parameters are specified for each instance:
240
193
241
-
- ``ssl_cert_file``: a path to an SSL certificate file.
242
-
- ``ssl_key_file``: a path to a private SSL key file.
194
+
- :ref:`ssl_cert_file<configuration_reference_iproto_uri_params_ssl_cert_file>`: a path to an SSL certificate file.
195
+
- :ref:`ssl_key_file<configuration_reference_iproto_uri_params_ssl_key_file>`: a path to a private SSL key file.
You can find the full example here: `ssl_without_ca <https://github.com/tarantool/doc/tree/latest/doc/code_snippets/snippets/replication/instances.enabled/ssl_without_ca>`_.
@@ -259,22 +212,72 @@ In this case, all replica set peers verify each other for authenticity.
259
212
260
213
The following parameters are specified for each instance:
261
214
262
-
- ``ssl_ca_file``: a path to a trusted certificate authorities (CA) file.
263
-
- ``ssl_cert_file``: a path to an SSL certificate file.
264
-
- ``ssl_key_file``: a path to a private SSL key file.
265
-
- ``ssl_password`` (``instance001``): a password for an encrypted private SSL key.
266
-
- ``ssl_password_file`` (``instance002`` and ``instance003``): a text file containing passwords for encrypted SSL keys.
267
-
- ``ssl_ciphers``: a colon-separated list of SSL cipher suites the connection can use.
215
+
- :ref:`ssl_ca_file<configuration_reference_iproto_uri_params_ssl_ca_file>`: a path to a trusted certificate authorities (CA) file.
216
+
- :ref:`ssl_cert_file<configuration_reference_iproto_uri_params_ssl_cert_file>`: a path to an SSL certificate file.
217
+
- :ref:`ssl_key_file<configuration_reference_iproto_uri_params_ssl_key_file>`: a path to a private SSL key file.
218
+
- :ref:`ssl_password<configuration_reference_iproto_uri_params_ssl_password>` (``instance001``): a password for an encrypted private SSL key.
219
+
- :ref:`ssl_password_file<configuration_reference_iproto_uri_params_ssl_password_file>` (``instance002`` and ``instance003``): a text file containing passwords for encrypted SSL keys.
220
+
- :ref:`ssl_ciphers<configuration_reference_iproto_uri_params_ssl_ciphers>`: a colon-separated list of SSL cipher suites the connection can use.
You can find the full example here: `ssl_with_ca <https://github.com/tarantool/doc/tree/latest/doc/code_snippets/snippets/replication/instances.enabled/ssl_with_ca>`_.
276
229
277
230
231
+
.. _configuration_connections_ssl_advertise_uri:
232
+
233
+
Advertise URI specifics
234
+
~~~~~~~~~~~~~~~~~~~~~~~
235
+
236
+
SSL parameters for an advertise URI should be set only if this :ref:`advertise URI is specified explicitly <configuration_connections_advertise_explicitly>`.
237
+
Otherwise, SSL parameters of a listen URI are used and no additional configuration is required.
238
+
239
+
Configuring an advertise URI's SSL options depends on whether a trusted certificate authorities (CA) file is set or not.
240
+
Without the CA file, you only need to set ``iproto_advertise.<peer_or_sharding>.params.transport`` to ``ssl`` as shown below:
241
+
242
+
.. code-block:: yaml
243
+
244
+
instance001:
245
+
iproto:
246
+
listen:
247
+
- uri: '192.168.0.101:3301'
248
+
params:
249
+
transport: 'ssl'
250
+
ssl_cert_file: 'certs/server.crt'
251
+
ssl_key_file: 'certs/server.key'
252
+
advertise:
253
+
peer:
254
+
uri: 'server.example.com:3301'
255
+
params:
256
+
transport: 'ssl'
257
+
258
+
259
+
If the CA file is specified for a listen URI, you also need to configure ``ssl_cert_file`` and ``ssl_key_file`` for this advertise URI:
0 commit comments