[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:26569] Re: [summary] Re: ssh connection refused
In article <20010124013937.28C785D88@xxxxxxxxxxxxxxxxxxxx> (at Wed, 24 Jan 2001 10:39:37 +0900), SAITO Naohiko <n_saito@xxxxxxxxxxxxx> says:
> > # "ListenAddress 0.0.0.0" を明示すると IPv6 で使えないから消された?
>
> どうもそのようで、IPv4 の方だけ明示すると
> Server listening on :: port 22.
> って IPv6 なカンジのログが出てこないみたいですので IPv4 only で動作して
> るのかな...?
はい。
ListenAddress を指定しないと、getaddrinfo(3) のサポートするすべての
address family の socket を生成して bind(2) しようとします。
(socket(2) の失敗は無視されるので、ipv6 が有効/loadable でなければ
ipv6 は使われません)
で、original linux では ipv6 と ipv4 の socket を同時に同じ port に
bind(2) できず、ipv6 socket だけができて ipv4 通信は ipv4-mapped
address の形で ipv6 socket を通して application に渡されます。
でもその sockaddr_in6{} が小さいので怒られるのです。
一方、ListenAddress 0.0.0.0 だけを指定しておくと
ipv4 socket だけを生成してそれを使って通信するので、
大丈夫、というわけです。
USAGI Linux (linux24, linux22) では ipv6, ipv4 両方の socket を
同一 port に bind(2) できるように改造してありますし(設定可能)、
linux22 では sin6_scope_id をつけられます(設定可能)。
USAGI glibc には sin6_scope_id がない、古い形でも問題ないようになって
います。というわけで、いずれにしろ問題はおこりません。:-)
注意: glibc の入れ替えは危険なため、libinet6 というライブラリを提供する
方向になっています。
相性、というか依存をまとめると、
linux 2.4 + glibc 2.2
linux 2.4 + glibc 2.1
linux 2.2 + glibc 2.1
は ok ですが、
linux 2.2 + glibc 2.2
は ng ということになりますが、ipv6 をお使いになるのであれば
linux 2.4 をおすすめします。
#USAGI Product はほかにもいろいろ改善/機能追加していますのでなおよいです。:-)
--
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@xxxxxxxxxxxxxx>
PGP5i FP: F731 6599 5EB2 BBA7 1515 1323 1806 A96F 5700 6B25