Re: portmap -h 127.0.0.1 vs. 4.8-stable

From: Namenloser <toor(at)despammed.com>
Date: Wed, 13 Aug 2003 11:36:36 +0200

Andreas Braukmann wrote:

> | helium:[~] # portmap -d -v -h 127.0.0.1
> | portmap[83922]: cannot bind udp: Address already in use
>
> Es gibt aber keinen an 127.0.0.1:111 gebundenen Socket. Und
> wenn man portmap ohne -h 127.0.0.1 startet bindet er sich
> auch problemlos an alle Interfaces, inkl. loopback.
> Wenn man -h mit einer anderen einzelnenn IP-Adresse ver-
> wendet, bindet sich portmap an diese IP-Adresse *und* das
> loopback-Interface.
>
> Hat jemand schon aehnliches beobachtet? Irgendwelche Tipps,
> Hinweise? Hat die Hitze etwa mein Gehirn zu sehr geschmort?

Ja. Mit 4.7 sehe ich das auch auf einer multihomed Maschine.
Das Verhalten ist hier (4.7) sogar dokumentiert:

portmap(8):

-h [...] Note that when specifying IP addresses with -h, portmap will
automatically add 127.0.0.1 to the list.

So wie ich das sehe passiert es im Falle von '-h 127.0.0.1', dass der
bind() auf '127.0.0.1' _zwei_ Mal hintereinander versucht wird und der
zweite Versuch schief geht.

socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
bind(3, {sin_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}}, 16) = 0
[...]
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 4
bind(4, {sin_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}}, 16) = -1 EADDRINUSE (Address already in use)

»src/usr.sbin/portmap/portmap.c,v 1.10.2.3 2002/05/06 18:18:21«
bestaetigt das auch. Weshalb das so geloest worden ist und was der
Zweck hiervon sein soll kann ich dir allerdings nicht verraten.

-- 
Namenloser
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 13 Aug 2003 - 11:37:06 CEST

search this site