From: Erik Paulson <epaulson@cs...> - 2007-05-31 19:22:24
Is there a good way to extend the uml_switch to run between two machines?
These are both machines that I don't have root on, so TUN/TAP is not
I've been trying to get socat (http://www.dest-unreach.org/socat/ ) to work,
and I've made some progress:
on host swingline, I run a uml_switch and a UML instance set to 192.168.1.1
also on swingline, I run socat, connecting to the switch socket and
a TCP listen socket:
./socat TCP4-LISTEN:5000 UNIX-CLIENT:/tmp/uml.ctl
On host tonic, I run another socat. This time I let socat create the
UNIX domain socket, and it forwards on data via TCP:
./socat UNIX-LISTEN:/tmp/uml.ctl TCP4:swingline.cs.wisc.edu:5000
Note that there is no uml_switch on tonic - only the one on swingline.
This at least does something - when I startup the UML instance on host tonic,
I see in the output from the uml_switch on swingline:
However, when I try to ping from swingline to tonic (after ifconfig'ing them
both up), I get errors like:
send_sock sending to fd 4 Connection refused
I've tried a couple of the other options, including trying to build two
paths (one for tonic to transmit to swingline, and one for swingline to
try to transmit to tonic) but haven't had any luck. This seems like it's a
losing battle - the UML and the switch look like they're exchanging
socket endpoints, but I don't see how I can force some of them to be
pre-generated by socat.