[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:56570] Re: squeezeで、ポート80及びポート443において、ipv4とipv6との両方のtcpをListenする方法について



楠根様、

丁寧な説明をどうも有り難うございます。

# apache2 -V
..........
Server compiled with....
..........
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
..........
と表示されました。
従って、apache2 の場合は、貴殿の説明のように、
「標準状態では、IPv6でサーバプロセスが待機しているポートへIPv4接続があった場合、
接続元のIPv4アドレスが kernel 内で IPv4-mapped address と呼ばれるIPv6アドレスに
変換され、IPv6処理部でIPv4接続も擬似的なIPv6接続として処理されます。」
ということでしょうか ?

しかしながら、apache2の場合、netstat -an で、
(i) tcp6の80及び443のみが表示される場合のみならず、
(ii) tcp4及びtcp6の80及び443が表示されたり、
(iii) tcp4の80及び443のみが表示されたりします。

現に、昨日も、netstat -an を行うと、
tcp4の80及び443のみが表示されました。そして、都合が悪いことに、
$ wget -4 http://localhost/
では、確かに通信できました (従って /var/log/apache2/access.logへの log が残っていました) が、
$ wget -6 http://localhost/
では、通信できず、従って http://localhost/ をgetできない結果となりました
 (従って $ wget -6 http://localhost/ では、/var/log/apache2/access.logへの log が
ありませんでした)。

そこで疑問です。
(1) 
「# apache2 -V
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)」
が、「起動すると、必ず上記(i)が起きる」という意味ならば、
(ii) tcp4及びtcp6の80及び443が表示されたり、
(iii) tcp4の80及び443のみが表示されたりも
しますので、apache2にはバグがあるということでしょうか ?
(2)
「# apache2 -V
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)」
が、「apache2を起動すると、上記(i)~(iii)のいずれが起きるか分からないが、(i)が起きた場合は、
IPV6 socket で IPv6 address のみならず、IPv4-mapped IPv6 address も扱える」という
意味ならば、
どういう場合に(i)や(ii)が起きるのか
 (例えば、/etc/hosts、/etc/resolv.conf 或いは
/etc/apache2/sites-availableの内容次第で、(i)や(ii)が起きるのか)
を知りたいと思います。

大坪