Hey,
I'm trying to enable multicast transport between two different segments and i need to know which ports i need to enable per domain.
I've seen some kind of formula on the Knowledge Base but i didn't quite understand it. I'd love to have some quick explanation.
Thanks
Hi,
There is detailed explanation on the ports used by DDS in the HOWTO titled Statically configure a Firewall to let OMG DDS Traffic through. You can also take a look at this Spreadsheet to compute the UDP ports used by RTI Connext DDS.
Regards,
Gerardo
Pardon my ignorance, but am I suppose to just enable ports for all possible participant IDs? How can I control which IDs I'm using, and why does unicast discovery require the foreknowledge of a participant's ID at all?
Hi,
You control the DDS
domainId
that the applications use. So you only need to open the ports that correspond to the domainId's you will use. For example if your application will only use the DDSdomainId
zero (which is the default), the only multicast ports that will be used are 7400 and 7401.Keep in mind that for applications to communicate with each other they all need to be in the same DDS
domainId
. The only reason to use different domainIds is if you want to break the DDS Global Data Space and have completely independent applications that are isolated from each other, that is, they do not discover each other and go not communicate even if they use the same Topic name.The DDS
domainId
should not be confused with the DDSparticipantId
. TheparticipantId
is an index that must be unique to each DDSDomainParticipant
that runs on a computer on the samedomainId
. TheparticipantId
is automatically assigned by DDS (unless you overide that). For example if you run 3 applications on the same computer all on domainId=0 the first DomainParticipant created will get participantId=0, the second will get 1, and the third 2.The
participantId
affects the ports used for unicast, but not the ports used for multicast. From your question it appears that your only issue is with the multicast traffic and the unicast packets are already being forwarded. If that is the case and you only need to configure the multicast ports, then you only need to worry about thedomainId
and as I said you can control of that. That said if you do not control the configuration of applications, that is, you are just administering the network for other people to use, then you will need to agree with you users on which DDS domainId's they will be using.Hope this helps,
Gerardo