[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] very odd behaviour using 4.00.1+mirage-unix
hi all; i am seeing very odd behaviour using the unix direct networking stack on linux via eg., mirage-www. on osx, using "opam switch 4.00.1+mirage-unix", when i "sudo make run" in mirage-www, all is fine -- the webserver runs, i can browse to 10.0.0.2:80, retrieve pages, etc. no problems. similarly using "opam switch 4.00.1" and browsing to localhost:80. when i do the same thing on linux, everything is fine under "opam switch 4.00.1" -- i can browse to localhost:80 without problems. but if i "opam switch 4.00.1+mirage-unix", browsing fails -- nothing listening on 10.0.0.2:80 (i get a TCP RST). this occurs with ubuntu 12.04 running linux 3.2.0-23 on top of virtualbox on a mac or on windows; and on ubuntu 10.04 running linux 2.6.32 as a dom0 on xen 4.1 pvops. investigating so far, it seems that the tap0 interface is created and given the ip address 10.0.0.2; and an appropriate route table entry is created: Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 * 255.255.255.0 U 0 0 0 tap0 ...but when i examine the route cache, it seems to have mapped 10.0.0.2 to lo rather than tap0: vagrant@precise64:~$ ip route show cache | grep -A1 10.0.0.2 local 10.0.0.2 from 10.0.0.2 tos lowdelay dev lo cache <local> -- 10.0.0.2 from 10.0.0.2 tos lowdelay dev lo cache <local> local 10.0.0.2 tos lowdelay dev lo src 10.0.0.2 cache <local> tcpdump bears this out -- the SYN is visible on lo not on tap0. i have also tried this with linux 3.7 on virtualbox/osx as that kernel rev removed the route cache, but see the same brokenness. looking at all routing tables, everything seems in order: vagrant@precise64:~$ ip route list table all | grep 10.0.0.2 10.0.0.0/24 dev tap0 proto kernel scope link src 10.0.0.2 broadcast 10.0.0.0 dev tap0 table local proto kernel scope link src 10.0.0.2 local 10.0.0.2 dev tap0 table local proto kernel scope host src 10.0.0.2 broadcast 10.0.0.255 dev tap0 table local proto kernel scope link src 10.0.0.2 however tcpdump shows the same results as before -- the TCP SYN is visible on lo not on tap0, and gets a RST in response as a result. pinging 10.0.0.2 in all cases works just fine, presumably because that's being dealt with in-kernel and isn't hitting whichever part of the network stack that is confused. all-- has anyone else seen any problems like this using mirage-unix on linux, or does it all just work for you? i don't have a box that's just running vanilla linux on the metal without some form of virtualisation to test that -- any chance someone else does? is it possible it's specifically a tuntap/virtualisation problem? vincent-- i understand you're working on ocaml tuntap bindings? any chance they might have some unit tests and are available yet -- i think that would really help me try to debug this... -- Cheers, R. -- Scanned by iCritical.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |