Skip to content

Configuration example: WAN with dynamic ipaddresses and dyndns (optional SSL/TLS) #256

Closed

Description

@mockbot

Hi,
is there a real world internet wan configuration for home labs available ?

  1. both local networks (192.168.1.0/24 and 192.168.2.0/24) are connected to the internet via provider router, using NAT and dynamic router ip addresses
  2. both endpoint are reachable by using dyndns FQDN (dds1.dyndns.org and dds2.dyndns.org)

rviz2-manager<--->dds-gw1--->router1(dds1.dyndns.org)<---internet--->router2(dds2.dyndns.org)<---dds-gw2<--->rover

How is this possible ?
What are the keywords for using this scenario ?
Is SSL/TLS secure communication between both dds-routers available (self signed certificates) ?

I guess, such wan-home-example.yaml is very useful for all homeworkers and students.

Activity

  1. jparisu commented on Aug 12, 2022

    @jparisu
    Contributor

    Hi @mockbot

    I am not sure what do you mean about "real world internet wan configuration for home labs", could you be more precise?
    In the documentation, this example is a "real world internet wan configuration" and explains how to set-up an standard internet router so the communication could be established from home by port-forwarding: https://eprosima-dds-router.readthedocs.io/en/latest/rst/user_manual/wan_configuration.html
    This configuration could be found here in the repository: https://github.com/eProsima/DDS-Router/blob/0.4.0/resources/configurations/examples/wan_client.yaml

    Attention be careful if using main branch, as we are updating the configuration (it will add a new configuration version v3.0 so old executions work as they used to.

    We have also tested dyndns and it works properly. It is possible to set a "Domain Name (DNS)" rather than an IP easily in the configuration. Check this documentation: https://eprosima-dds-router.readthedocs.io/en/latest/rst/user_manual/configuration.html#network-address

  2. mockbot commented on Aug 13, 2022

    @mockbot
    Author

    ReHi,
    thanks for the friendly reply...
    I try to explain, where my problems are located.
    "real world internet wan configuration for home labs"...
    Oh yes, I'm a networking guy and I have problems to understand the usage of your keywords...
    e.g.
    ip means internet protocol, but you should use ipaddress. Next issue, you use the domain keywords for an identifier of a domain and as ipaddress when using a FQDN and TCP layer 3 protocol instead of a dotted ip address number...
    Why do you have 2 different keywords for the partner ipaddress ? Confusing...
    ipaddress should handle dotted ipaddress numbers and FQDN. The standard resolver libs getHostByName will handle it since the beginning ;-)

    What is "real world internet wan configuration for home labs" ?

    1. both ends are using dyndns and NAT, no hardcoded ipaddresses numbers.
    2. communication protocol between both partners TCP/SSL

    I've tried it with version from June 2022, but I've failed. Topics were not visible and I was not able to see open sockets. I guess, I need to go deeper into the traffic with wireshark tools.
    Next week, I will give it a try again. I guess, we should talk about these scenario by using config files for both ends of the communication.

    "Attention be careful if using main branch, as we are updating the configuration (it will add a new configuration version v3.0 so old executions work as they used to."
    Maybe this will give me some hints and open my eye !!! ;-)
    THX4ALL
    Greetings from DE

  3. mockbot commented on Aug 15, 2022

    @mockbot
    Author
  4. jparisu commented on Aug 17, 2022

    @jparisu
    Contributor

    Hi @mockbot
    Thank you for the detail explanation.

    IP and Domain

    We separated ip from domain tag because we thought it would be easier to understand for a user. It seems is not though, so we may change it in future releases.
    We appreciate a lot the users feedback so we can improve the user experience of the DDS Router.

    Your Scenario

    From your scenario, we assume the students and the teacher must be able to communicate with the Lab, but not between themselves.
    The Lab will work as TCP server, and will need a ´listening-addressesconfiguration, while the TCP servers (students) only need to set theconnection-addresses` targeting this same address.

    Answers

    does each communication partner need a public dns registered FQDN or is it enough for the central lab side ?

    No, it does not. Only one of the points needs to be accessible (ports forwarded and FQDN). The others will connect to it and the communication will be established.

    Example for central side (lab). How to handle listen ?

    The DDS Router is thought to forward every data that arrives from one side (WAN in this case) to the other (LAN). So the TurtleSim in the Lab will work as if the edge devices (Students) were in its local network.
    No configurations or changes are required in the ROS2 sides, the Router will handle it.

    Repeater Scenario

    If this scenario implies the students to communicate with each other as well as with the Lab, you can use the new feature Repeater.
    This is a feature that we are working on, and will be released in next version (it is already in main), and it allows to deploy a TURN server to communicate multiple points of the internet within each other (including the own server, that could communicate its own network: LAB).
    Here it is the documentation available for the Repeater so far: https://eprosima-dds-router.readthedocs.io/en/latest/rst/use_cases/repeater.html
    Handling the FQDN, ports and TCP is as easy as using a configuration like this one:
    https://eprosima-dds-router.readthedocs.io/en/latest/rst/examples/repeater_example.html#client-participants

    This is also achievable by Discovery Server, but the students would need a public FQDN and open ports in their routers.

    Configuration files

    Please, feel free to share configuration files with us if you need help or feedback about any of them.

  5. self-assigned this
    on Aug 17, 2022
  6. locked and limited conversation to collaborators on Aug 17, 2022
  7. converted this issue into a discussion #279 on Aug 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions