Herbert Poetzl wrote:
On Fri, Jun 30, 2006 at 01:12:50PM +0200, dmanye wrote:
hi,

i've a debian etch host with kernel 2.6.16-2-vserver-686 original from debian. util-vserver version is 0.30.210-10 original from debian also.

i've created some vservers (debian sarge) with no problems but now i want to build a rembo [v]server on a debian sarge guest. rembo is a comercial/closed-source (sorry) pxe server from www.rembo.com. all went fine until i tried to start the daemon:

# ./rembo Rembo Server 2.0 Toolkit (build 058.2)
(c) 1999-2003 Rembo Technology SaRL, Geneva, Switzerland
Error on interface 10.20.102.239
# strace ./rembo -d 2>&1 | tail -n 25
open("./rembo", O_RDONLY)               = 3
lseek(3, 0, SEEK_END)                   = 1238692
lseek(3, 0, SEEK_SET)                   = 0
mmap2(NULL, 1241088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cd6000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\2\0\3\0\1\0\0\0\0\241\4"..., 1238692) = 1238692
open("rembo.conf", O_RDONLY)            = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=91, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f87000
fstat64(4, {st_mode=S_IFREG|0644, st_size=91, ...}) = 0
_llseek(4, 0, [0], SEEK_SET)            = 0
read(4, "\n        BaseDir \"/rembo\"\n      "..., 91) = 91
_llseek(4, 91, [91], SEEK_SET)          = 0
close(4)                                = 0
munmap(0xb7f87000, 4096)                = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 4
bind(4, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 getsockname(4, {sa_family=AF_INET, sin_port=htons(33007),

it looks like it is looking up 'lo' inside the guest,
you might try to add 127.0.0.1 as a separate 'nodev'
entry to the guest, or to disable the hide_netif flag
this is what i have on the host:

# cd /etc/vservers/alf/interfaces/
mosques:/etc/vservers/alf/interfaces# ls
0 1
mosques:/etc/vservers/alf/interfaces# ls 1/
dev ip mask nodev
mosques:/etc/vservers/alf/interfaces# cat 1/*
lo
127.0.0.1
8

i can ping localhost and 127.0.0.1 inside the vserver but this does not work: the rembo daemon does not start. also, i've added CAP_NET_ADMIN and got the same result.

what i think may bring some light is the following:
if i try to execute the server (it is statically linked) on the host it works!
so i've compared the output of strace and i get:

alf (vserver):
...
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 4
bind(4, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 getsockname(4, {sa_family=AF_INET, sin_port=htons(33018), sin_addr=inet_addr("10.20.102.239")}, [16]) = 0
futex(0xb7f5b1f0, FUTEX_WAKE, 2147483647) = 0
write(2, "Error on interface 10.20.102.239"..., 33Error on interface 10.20.102.239

and it dies.

mosques(host):
...
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 4
bind(4, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 getsockname(4, {sa_family=AF_INET, sin_port=htons(33018), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0
close(4) = 0
uname({sys="Linux", node="mosques", ...}) = 0
... and continue ahead.


after the 'bind' call, why does alf execute a getsockname with 10.20.102.239 (just before die) while mosques pass 127.0.0.1 and continues successfully? is it due to chbind?

once more is clear that not having the source code is like selling your soul, but we have no other viable alternative.

sin_addr=inet_addr("10.20.102.239")}, [16]) = 0
futex(0xb7f3a1f0, FUTEX_WAKE, 2147483647) = 0
write(2, "Error on interface 10.20.102.239"..., 33Error on interface 10.20.102.239) = 33 write(1, "Rembo Server 2.0 Toolkit (build "..., 96Rembo Server 2.0 Toolkit (build 058.2)
(c) 1999-2003 Rembo Technology SaRL, Geneva, Switzerland) = 96
munmap(0xb7f88000, 4096)                = 0
exit_group(0)                           = ?

i've have a couple of non-vserver servers with sarge+rembo running perfectly so i think is a rembo-vserver compatibility issue.

you might also try to 'change' the configuration of
that pxe server to _not_ use 127.0.0.1 (and use localhost
or the first assigned ip instead)

don't know why that code looks for 127.0.0.1. on the other 'real' rembo servers i have there's nothing in the config about the 'lo' interface.
the vserver has a couple of bcapabilities in order to run also a dhcp server: CAP_NET_RAW and CAP_NET_BROADCAST.

CAP_NET_BROADCAST is not used, so it's unlikely you need
that one ... but it doesn't hurt either :)
i need it because i run a dhcpd server on the same vserser (as i do in the 'real' other rembo servers).
thanks in advance.

HTH,
Herbert

begin:vcard
fn;quoted-printable:david many=C3=A9
n;quoted-printable:many=C3=A9;david
org;quoted-printable:Universitat Rovira i Virgili;Departament d'Enginyeria 
Inform=C3=A0tica i Matem=C3=A0tiques
adr;quoted-printable;dom:;;Av. dels Pa=C3=AFsos Catalans, 26;Tarragona;;43007
email;internet:[EMAIL PROTECTED]
tel;work:977559706
version:2.1
end:vcard


_______________________________________________
Vserver mailing list
Vserver@list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver


begin:vcard
fn;quoted-printable:david many=C3=A9
n;quoted-printable:many=C3=A9;david
org;quoted-printable:Universitat Rovira i Virgili;Departament d'Enginyeria Inform=C3=A0tica i Matem=C3=A0tiques
adr;quoted-printable;dom:;;Av. dels Pa=C3=AFsos Catalans, 26;Tarragona;;43007
email;internet:[EMAIL PROTECTED]
tel;work:977559706
version:2.1
end:vcard

_______________________________________________
Vserver mailing list
Vserver@list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver

Reply via email to