Digital Art Zone

 
     
Fun with network rendering
Posted: 26 July 2012 04:44 PM   [ Ignore ]
Active Member
Avatar
RankRank
Total Posts:  400
Joined  2008-08-29

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?

 Signature 

Swamp Living Never Felt So Good

Profile
 
 
Posted: 27 July 2012 06:53 AM   [ Ignore ]   [ # 1 ]
Active Member
Avatar
RankRank
Total Posts:  400
Joined  2008-08-29

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.

 Signature 

Swamp Living Never Felt So Good

Profile