Hello,
I am trying to find more information about Proxmox Cluster networking, and specially the use of ports 22, 5404 and 5405 for intra cluster communication. I feel like the PVE admin guide could be updated with more accurate information (some of which I am contributing in this thread).
I hope this is useful to other folks, and I also hope more experienced users or Proxmox developers can answer some things I don't quite understand.
« All nodes must be able to connect to each other via UDP ports 5404 and 5405 for corosync to work. »
This does not seem to be the case. I filtered this port on a cluster node, and it seems to be running just fine.
I successfully migrated vms to and from this vm. I also edited the corosync config file on another node using the instructions from chapter 5.11 Corosync Configuration, and the edits were successfully replicated to every node.
I see the following note in chapter 5.7.1 Network Requirements :
« Corosync used Multicast before version 3.0 (introduced in Proxmox VE 6.0). Modern versions rely on
Kronosnet for cluster communication, which, for now, only supports regular UDP unicast. »
So my guess is ports 5404 and 5405 were used for Corosync traffic before using Kronosnet, but Kronosnet does not use them.
The Kronosnet documentation is supposed to be found at https://kronosnet.org/ but is seriously lacking. The home page and the Github page both point to a Google Drive including presentations, but I could not make sense of these, and I have no idea which ports it uses.
So I am wondering, are ports 5404 and 5405 still used ? How does Kronosnet communication work ?
« SSH tunnel on TCP port 22 between nodes is used. »
I would like to know exactly which processes use SSH. I did a little experiment, and it seems that with SSH access disabled, corosync and Proxmox cluster status are still OK, but commands cannot be sent to other nodes (for example, migrating a vm is not possible).
Chapter 5.9 « Role of SSH in Proxmox VE Clusters » lists some uses of SSH, but I do not feel that this list is complete. When trying to do an offline vm migration to a node with SSH disabled, the migration is aborted (it first tries to establish an SSH connection) even though this does not involve any of the things listed in chapter 5.9.
So maybe I am nitpicking here, but it seems that Proxmox uses SSH as soon as you launch a migration.
By the way, SSH does not have to run on port 22. For fellow sysadmins who want to hide their SSH server on another port, you have to set it in both
You also do not have to set "
Maybe these pieces of information could be added in the admin guide.
When you are logged in the web GUI through one node, you need this as soon as you click another node to view or execute actions on that other node.
I am trying to find more information about Proxmox Cluster networking, and specially the use of ports 22, 5404 and 5405 for intra cluster communication. I feel like the PVE admin guide could be updated with more accurate information (some of which I am contributing in this thread).
I hope this is useful to other folks, and I also hope more experienced users or Proxmox developers can answer some things I don't quite understand.
- Ports 5404 and 5405 :
« All nodes must be able to connect to each other via UDP ports 5404 and 5405 for corosync to work. »
This does not seem to be the case. I filtered this port on a cluster node, and it seems to be running just fine.
I successfully migrated vms to and from this vm. I also edited the corosync config file on another node using the instructions from chapter 5.11 Corosync Configuration, and the edits were successfully replicated to every node.
I see the following note in chapter 5.7.1 Network Requirements :
« Corosync used Multicast before version 3.0 (introduced in Proxmox VE 6.0). Modern versions rely on
Kronosnet for cluster communication, which, for now, only supports regular UDP unicast. »
So my guess is ports 5404 and 5405 were used for Corosync traffic before using Kronosnet, but Kronosnet does not use them.
The Kronosnet documentation is supposed to be found at https://kronosnet.org/ but is seriously lacking. The home page and the Github page both point to a Google Drive including presentations, but I could not make sense of these, and I have no idea which ports it uses.
So I am wondering, are ports 5404 and 5405 still used ? How does Kronosnet communication work ?
- SSH / port 22 (or others) :
« SSH tunnel on TCP port 22 between nodes is used. »
I would like to know exactly which processes use SSH. I did a little experiment, and it seems that with SSH access disabled, corosync and Proxmox cluster status are still OK, but commands cannot be sent to other nodes (for example, migrating a vm is not possible).
Chapter 5.9 « Role of SSH in Proxmox VE Clusters » lists some uses of SSH, but I do not feel that this list is complete. When trying to do an offline vm migration to a node with SSH disabled, the migration is aborted (it first tries to establish an SSH connection) even though this does not involve any of the things listed in chapter 5.9.
So maybe I am nitpicking here, but it seems that Proxmox uses SSH as soon as you launch a migration.
By the way, SSH does not have to run on port 22. For fellow sysadmins who want to hide their SSH server on another port, you have to set it in both
/etc/ssh/ssh_config
and /etc/ssh/sshd_config
, on all nodes.You also do not have to set "
PermitRootLogin yes
" in your ssh_config, you can set it to "without-password
" and use /root/.ssh/authorized_keys
to allow only keys from others nodes, thus improving your cluster security.Maybe these pieces of information could be added in the admin guide.
- Port 8006 :
When you are logged in the web GUI through one node, you need this as soon as you click another node to view or execute actions on that other node.