Fun with network rendering

thoromyrthoromyr Posts: 452
edited December 1969 in Carrara Discussion

So Carrara allows using render nodes to distribute the load for batch renders and the default port is 5020. This only works on the local subnet and I'm guessing involves use of a broadcast address -- but I'm guessing. Does anyone know how this actually works?


What I'm trying to do is connect a master to a slave on another subnet (completely different network, actually). SSH can be used to establish a tunnel between two systems, but however Carrara is doing this it appears to not work with something as simple as port forwarding.


My setup is a WinXP box with Carrara, a linux box (that at times has run Carrara and render nodes in Wine or in a Windows VM), and (on a remote network) a linux box with Carrara (and render node) in Wine. So SSH seems natural for trying to (virtually) place the remote system on the local network. Another possibility would be to try and extend my network to the remote (vpn) but I don't presently have a solution that would readily allow that and I really only want the Carrara traffic to be routed.


I know this is a bit of a stretch, but any ideas?

Comments

  • thoromyrthoromyr Posts: 452
    edited December 1969

    Well, wireshark shed some light on the subject. The master uses udp broadcast for discovery (defaulting to port 5020/udp). The payload looks like:

    rnsq {\r\naddr "10.0.1.189"\r\nsnid "10.0.1.0"\r\nsMsk "255.255.255.0"\r\nport 5080\r\n}\r\n\0

    The "addr" is the master's IP address and the port to contact back is specified. The reply port is tcp, in this case 5080/tcp. If the master is not on the same subnet as the render node but packets can route between them this should allow cross-subnet communication IF the broadcast packet were re-broadcast on the render node's subnet or directly delivered to it AND the carrara render node doesn't check to make sure it is in the identified subnet (10.0.1.0 255.255.255.0).


    In my case that is not sufficient (unroutable/non-public addresses), but with ssh and netcat it is almost do-able. I haven't had a chance to verify yet, but I expect that, due to the payload, the render node will uselessly try to connect to 10.0.1.189:5080 (assuming it doesn't check its own address against the provided subnet). Re-writing the broadcast packet may be sufficient to overcome this difficulty. I don't have experience in that realm, but scapy is supposed to be easy to use.

Sign In or Register to comment.