Moin Peter und Liste,
>> Wenn ich einen Service habe, der IPv6 und dazu auch IPv4 per
>> IPv4-mapped IPv6 Addresses unterstützt, dann zeigt unter Linux (Debian
>> Sarge, Kernel 2.6.8) ein
>> $ netstat [-a|-l]
>> den Service nur für IPv6 an (während FreeBSD und Solaris wie erwartet
>> sowohl für IPv4 als auch IPv6 den Service anzeigen).
>
> Inwiefern (hab hier grad kein *BSD in Reichweite)?
# netstat -a -f inet
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp46 0 0 *.echo *.* LISTEN
tcp4 0 0 localhost.smtp *.* LISTEN
tcp4 0 0 *.ssh *.* LISTEN
udp46 0 0 *.echo *.*
Hier werden also auch für IPv4 die entsprechenden Sockets (hier echo)
als "tcp46" bzw. "udp46" angezeigt und man weiss sofort, dass man da
noch einen Port offen hat.
Solaris zeigt das ganze anscheinend einfach als zwei Sockets an; ich
habe aber im Moment keine Development-Maschine, um es definitiv zu
testen.
> BTW: was passiert eigentlich mit Deinen Beispiel-Linux-Applikationen,
> wenn Du bindv6only auf 1 setzt.
Das ändert nichts; ohne in die Sourcen gesehen zu haben würde ich
stark vermuten, dass da ein explizites setsockopt(...,V6ONLY,0) steht
und immer zu diesem Phänomen führt, auch wenn bindv6only auf 1 gesetzt
ist.
Wenn ich RFC 3493 Sec.5.3 richtig verstehe, sollte das grundsätzlich
auf 1 gesetzt sein---ist es aber de facto nicht. Und ich will auch
ehrlich gesagt gar nicht ausprobieren, was alles plötzlich in die Hose
geht, wenn ich das umstelle.
> Ähnlichen Ärger gibt's übrigens mit den compat-Tunneln, sofern nicht
> per Routing ins Nirvana geleitet.
Ja, auch das macht Freude. Die BSDs bzw. KAME unterstützen wenn ich
mich nicht ganz schwer vertue keine automatischen Tunnel, das erspart
einigen Ärger.
>> Jetzt meine Frage: Gibt es unter Linux ein alternatives Tool, das
>> dieses Verhalten nicht hat und für jede bzw. die gewählte Protocol
>> Family zeigt, welche Ports tatsächlich offen sind? [...]
>
> Nein, gibt's nicht, lsof zeigt auch nur das IPv6-Listening an.
Das hatte ich befürchtet. Und Netcat6 bei Debian kann keinen Port
Scan...
> Immerhin kann iptables das unterscheiden, man muß also nicht
> IPv6-Regeln mit den Compat-IPv4-Adressen erstellen...
Das ist schon ganz hilfreich, aber auf Dauer kann es keine Lösung
sein, auf jedem Rechner einen Paketfilter zu pflegen.
> Liegt wohl an der unterschiedlichen Socket-Implementierung für
> Dual-Listening Sockets
Ja, sicher. Das Verhalten wundert mich ja auch nicht wirklich (aus
Sicht eines Coders *ist* es ein v6-Socket), aber als Sysadmin halte
ich das ganze für eine Zeitbombe.
Viele Grüße,
Benedikt
PS: Du hast beim Linux-Kongress anscheinend einen guten Eindruck
gemacht (in der nächsten GUUG Uptimes wirst Du lobend erwähnt).
Ich wäre gerne dabei gewesen, statt im Bett bleiben zu müssen...
Einen Hinweis noch zu Deinem Vortrag: Du hast da anscheinend
gesagt, dass der sysklogd kein IPv6 unterstützt. Bei SuSE 9.x und
10.0 hat ihn anscheinend jemand soweit aufgebohrt, dass das geht.
Ich hab's nicht weiter verfolgt, aber evtl. lassen sich da Patches
abstauben. (Nein, nicht fragen, was ich mit SuSE mache...)
--
Benedikt Stockebrand, Dipl.-Inform. Freelance IT System Architect
http://www.benedikt-stockebrand.de/ always looking for a contract
Unix (all flavours), TCP/IP, IPv6, IT Security, Unix Operations Training
Performance and High Availability Tuning, Large Scale Systems Design
_______________________________________________
ipv6 mailing list
[email protected]
http://listserv.uni-muenster.de/mailman/listinfo/ipv6