2004/04/02

2004/04/02

[NETWORK] [LINUX] apache2

linux 2.6でdebianのapache2を使用するとなぜかIPv6アドレスのみにしかアクセスできない。

自分でビルドしたapache2ではIPv4でも可能なので普段IPv6で生活している自分は全然気づかず、家人に指摘され初めて気づきました。両方のバイナリをstraceコマンドで追ってみると。

自分でビルドした方は

...
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(3, SOL_IPV6, 26, [0], 4)     = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
...

とIPV6_V6ONLYされているが、

debianのバイナリだと

etsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0

とされていないためでした。

そのため、今まで

sysctl -w net/ipv6/bindv6only=1

していたのをとりあえず0にして、どうしてdebianのバイナリではIPV6_V6ONLYがsetsockoptされていないかの原因が判明するまでしのぐことにしました。

[BOOK] 日本書紀の読み方

[BOOK] 「知財」で稼ぐ!

[BOOK] 迷宮遡行

[BOOK] 古代東北と王権

[BOOK] 祈りの海

0 件のコメント: