[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されていないかの原因が判明するまでしのぐことにしました。
0 件のコメント:
コメントを投稿