Skip to content

Commit a861962

Browse files
More Networking guide edits
1 parent d8d3dd9 commit a861962

File tree

4 files changed

+91
-83
lines changed

4 files changed

+91
-83
lines changed

docs/cluster-formation.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,8 @@ cluster_formation.classic_config.nodes.2 = [email protected]
244244

245245
:::important
246246

247-
This peer discovery mechanism is sensitive to system configuration that
248-
affects hostname resolution changes.
247+
This peer discovery mechanism is sensitive to OS and RabbitMQ configuration that
248+
[affects hostname resolution](./networking#dns).
249249

250250
For example, a deployment tool that modifies the [local host file](https://en.wikipedia.org/wiki/Hosts_(file))
251251
can affect (break) this peer discovery mechanism.
@@ -495,6 +495,13 @@ In addition, since RabbitMQ nodes [resolve their own and peer hostnames during b
495495
CoreDNS [caching timeout may need to be decreased](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id) from default 30 seconds
496496
to a value in the 5-10 second range.
497497

498+
:::important
499+
500+
CoreDNS [caching timeout may need to be decreased](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id)
501+
from default 30 seconds to a value in the 5-10 second range
502+
503+
:::
504+
498505
If a stateless set is used recreated nodes will not have their persisted data and will start as blank nodes.
499506
This can lead to data loss and higher network traffic volume due to more frequent
500507
data synchronisation of both [quorum queues](./quorum-queues)

docs/networking.md

+36-39
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ There are several areas which can be configured or tuned. Each has a section in
5656
* Kernel TCP settings and limits (e.g. [TCP keepalives](#tcp-keepalives) and [open file handle limit](#open-file-handle-limit))
5757
* How to allow Erlang runtime to accept inbound connections
5858
when [MacOS Application Firewall](#firewalls-mac-os) is enabled
59-
* More [advanced settings](#advanced-settings) related to networking
59+
* [OS-level tuning](#os-tuning) related to networking
6060

6161
This guide also covers a few topics closely related to networking:
6262

@@ -952,41 +952,7 @@ net.ipv4.tcp_keepalive_probes=4
952952
net.ipv4.tcp_tw_reuse = 1
953953
```
954954

955-
## More Advanced Networking Settings {#advanced-settings}
956-
957-
### The inetrc File
958-
959-
The [Erlang runtime](./runtime/) allows for a number of hostname resolution-related settings to be tuned
960-
using a file known as the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html).
961-
962-
The path to the file can be specified by adding an extra runtime argument using the [`RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` environment variable](./configure/):
963-
964-
<Tabs groupId="shell-specific">
965-
<TabItem value="bash" label="bash" default>
966-
```bash
967-
export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-kernel inetrc '/path/to/inetrc.file'"
968-
```
969-
</TabItem>
970-
<TabItem value="PowerShell" label="PowerShell">
971-
```PowerShell
972-
$env:ERL_INETRC = "-kernel inetrc 'c:\path\to\inetrc.file'"
973-
```
974-
</TabItem>
975-
</Tabs>
976-
977-
The file can be used to configure a number of settings related to hostname resolution on the node (not system-wide):
978-
979-
* Hostnames and host addresses (similarly to the [local host file](https://en.wikipedia.org/wiki/Hosts_(file)))
980-
* Local domain name
981-
* Nameservers
982-
* Preferred hostname lookup method (e.g. local host file vs. DNS)
983-
* Hostname caching interval
984-
* Search domains
985-
986-
Please consult the [inetrc file documentation](http://erlang.org/doc/apps/erts/inet_cfg.html) to learn more.
987-
988-
989-
### OS Level Tuning {#os-tuning}
955+
## OS Level Tuning {#os-tuning}
990956

991957
Operating system settings can affect operation of RabbitMQ.
992958
Some are directly related to networking (e.g. TCP settings), others
@@ -1237,9 +1203,9 @@ It should be pointed out that this is only necessary with very constrained
12371203
clients and networks. Handshake timeouts in other circumstances indicate
12381204
a problem elsewhere.
12391205

1240-
### TLS (SSL) Handshake {#tls-handshake}
1206+
### TLS Handshake {#tls-handshake}
12411207

1242-
If TLS/SSL is enabled, it may be necessary to increase also the TLS/SSL
1208+
If [TLS is enabled](./ssl), it may be necessary to increase also the TLS
12431209
handshake timeout. This can be done via
12441210
the `rabbit.ssl_handshake_timeout` (in milliseconds):
12451211

@@ -1300,10 +1266,41 @@ To deactivate reverse DNS lookups:
13001266
reverse_dns_lookups = false
13011267
```
13021268

1269+
### The inetrc File
1270+
1271+
The [Erlang runtime](./runtime/) allows for a number of hostname resolution-related settings to be tuned
1272+
using a file known as the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html).
1273+
1274+
The path to the file can be specified by adding an extra runtime argument using the [`RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` environment variable](./configure/):
1275+
1276+
<Tabs groupId="shell-specific">
1277+
<TabItem value="bash" label="bash" default>
1278+
```bash
1279+
export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-kernel inetrc '/path/to/inetrc.file'"
1280+
```
1281+
</TabItem>
1282+
<TabItem value="PowerShell" label="PowerShell">
1283+
```PowerShell
1284+
$env:ERL_INETRC = "-kernel inetrc 'c:\path\to\inetrc.file'"
1285+
```
1286+
</TabItem>
1287+
</Tabs>
1288+
1289+
The file can be used to configure a number of settings related to hostname resolution on the node (not system-wide):
1290+
1291+
* Hostnames and host addresses (similarly to the [local host file](https://en.wikipedia.org/wiki/Hosts_(file)))
1292+
* Local domain name
1293+
* Nameservers
1294+
* Preferred hostname lookup method (e.g. local host file vs. DNS)
1295+
* Hostname caching interval
1296+
* Search domains
1297+
1298+
Please consult the [inetrc file documentation](http://erlang.org/doc/apps/erts/inet_cfg.html) to learn more.
1299+
13031300
### Verify Hostname Resolution {#dns-verify-resolution}
13041301

13051302
Since hostname resolution is a [prerequisite for successful inter-node communication](./clustering#hostname-resolution-requirement),
1306-
starting with [RabbitMQ `3.8.6`](/release-information), CLI tools provide two commands that help verify
1303+
CLI tools provide two commands that help verify
13071304
that hostname resolution on a node works as expected. The commands are not meant to replace
13081305
[`dig`](https://en.wikipedia.org/wiki/Dig_(command)) and other specialised DNS tools but rather
13091306
provide a way to perform most basic checks while taking [Erlang runtime hostname resolver features](https://erlang.org/doc/apps/erts/inet_cfg.html)

versioned_docs/version-3.13/cluster-formation.md

+10-3
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,8 @@ cluster_formation.classic_config.nodes.2 = [email protected]
244244

245245
:::important
246246

247-
This peer discovery mechanism is sensitive to system configuration that
248-
affects hostname resolution changes.
247+
This peer discovery mechanism is sensitive to OS and RabbitMQ configuration that
248+
[affects hostname resolution](./networking#dns).
249249

250250
For example, a deployment tool that modifies the [local host file](https://en.wikipedia.org/wiki/Hosts_(file))
251251
can affect (break) this peer discovery mechanism.
@@ -495,10 +495,17 @@ In addition, since RabbitMQ nodes [resolve their own and peer hostnames during b
495495
CoreDNS [caching timeout may need to be decreased](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id) from default 30 seconds
496496
to a value in the 5-10 second range.
497497

498+
:::important
499+
500+
CoreDNS [caching timeout may need to be decreased](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id)
501+
from default 30 seconds to a value in the 5-10 second range
502+
503+
:::
504+
498505
If a stateless set is used recreated nodes will not have their persisted data and will start as blank nodes.
499506
This can lead to data loss and higher network traffic volume due to more frequent
500507
data synchronisation of both [quorum queues](./quorum-queues)
501-
and [classic queue mirrors](./ha) on newly joining nodes.
508+
and [streams](./streams) on newly joining nodes.
502509

503510
#### Use Persistent Volumes
504511

versioned_docs/version-3.13/networking.md

+36-39
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ There are several areas which can be configured or tuned. Each has a section in
5656
* Kernel TCP settings and limits (e.g. [TCP keepalives](#tcp-keepalives) and [open file handle limit](#open-file-handle-limit))
5757
* How to allow Erlang runtime to accept inbound connections
5858
when [MacOS Application Firewall](#firewalls-mac-os) is enabled
59-
* More [advanced settings](#advanced-settings) related to networking
59+
* [OS-level tuning](#os-tuning) related to networking
6060

6161
This guide also covers a few topics closely related to networking:
6262

@@ -952,41 +952,7 @@ net.ipv4.tcp_keepalive_probes=4
952952
net.ipv4.tcp_tw_reuse = 1
953953
```
954954

955-
## More Advanced Networking Settings {#advanced-settings}
956-
957-
### The inetrc File
958-
959-
The [Erlang runtime](./runtime/) allows for a number of hostname resolution-related settings to be tuned
960-
using a file known as the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html).
961-
962-
The path to the file can be specified by adding an extra runtime argument using the [`RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` environment variable](./configure/):
963-
964-
<Tabs groupId="shell-specific">
965-
<TabItem value="bash" label="bash" default>
966-
```bash
967-
export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-kernel inetrc '/path/to/inetrc.file'"
968-
```
969-
</TabItem>
970-
<TabItem value="PowerShell" label="PowerShell">
971-
```PowerShell
972-
$env:ERL_INETRC = "-kernel inetrc 'c:\path\to\inetrc.file'"
973-
```
974-
</TabItem>
975-
</Tabs>
976-
977-
The file can be used to configure a number of settings related to hostname resolution on the node (not system-wide):
978-
979-
* Hostnames and host addresses (similarly to the [local host file](https://en.wikipedia.org/wiki/Hosts_(file)))
980-
* Local domain name
981-
* Nameservers
982-
* Preferred hostname lookup method (e.g. local host file vs. DNS)
983-
* Hostname caching interval
984-
* Search domains
985-
986-
Please consult the [inetrc file documentation](http://erlang.org/doc/apps/erts/inet_cfg.html) to learn more.
987-
988-
989-
### OS Level Tuning {#os-tuning}
955+
## OS Level Tuning {#os-tuning}
990956

991957
Operating system settings can affect operation of RabbitMQ.
992958
Some are directly related to networking (e.g. TCP settings), others
@@ -1237,9 +1203,9 @@ It should be pointed out that this is only necessary with very constrained
12371203
clients and networks. Handshake timeouts in other circumstances indicate
12381204
a problem elsewhere.
12391205

1240-
### TLS (SSL) Handshake {#tls-handshake}
1206+
### TLS Handshake {#tls-handshake}
12411207

1242-
If TLS/SSL is enabled, it may be necessary to increase also the TLS/SSL
1208+
If [TLS is enabled](./ssl), it may be necessary to increase also the TLS
12431209
handshake timeout. This can be done via
12441210
the `rabbit.ssl_handshake_timeout` (in milliseconds):
12451211

@@ -1300,10 +1266,41 @@ To deactivate reverse DNS lookups:
13001266
reverse_dns_lookups = false
13011267
```
13021268

1269+
### The inetrc File
1270+
1271+
The [Erlang runtime](./runtime/) allows for a number of hostname resolution-related settings to be tuned
1272+
using a file known as the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html).
1273+
1274+
The path to the file can be specified by adding an extra runtime argument using the [`RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` environment variable](./configure/):
1275+
1276+
<Tabs groupId="shell-specific">
1277+
<TabItem value="bash" label="bash" default>
1278+
```bash
1279+
export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-kernel inetrc '/path/to/inetrc.file'"
1280+
```
1281+
</TabItem>
1282+
<TabItem value="PowerShell" label="PowerShell">
1283+
```PowerShell
1284+
$env:ERL_INETRC = "-kernel inetrc 'c:\path\to\inetrc.file'"
1285+
```
1286+
</TabItem>
1287+
</Tabs>
1288+
1289+
The file can be used to configure a number of settings related to hostname resolution on the node (not system-wide):
1290+
1291+
* Hostnames and host addresses (similarly to the [local host file](https://en.wikipedia.org/wiki/Hosts_(file)))
1292+
* Local domain name
1293+
* Nameservers
1294+
* Preferred hostname lookup method (e.g. local host file vs. DNS)
1295+
* Hostname caching interval
1296+
* Search domains
1297+
1298+
Please consult the [inetrc file documentation](http://erlang.org/doc/apps/erts/inet_cfg.html) to learn more.
1299+
13031300
### Verify Hostname Resolution {#dns-verify-resolution}
13041301

13051302
Since hostname resolution is a [prerequisite for successful inter-node communication](./clustering#hostname-resolution-requirement),
1306-
starting with [RabbitMQ `3.8.6`](/release-information), CLI tools provide two commands that help verify
1303+
CLI tools provide two commands that help verify
13071304
that hostname resolution on a node works as expected. The commands are not meant to replace
13081305
[`dig`](https://en.wikipedia.org/wiki/Dig_(command)) and other specialised DNS tools but rather
13091306
provide a way to perform most basic checks while taking [Erlang runtime hostname resolver features](https://erlang.org/doc/apps/erts/inet_cfg.html)

0 commit comments

Comments
 (0)