Locked History Actions

Linux/ipv6-trouble

ipv6トラブル

ipv6のサポート

CentOS6.2ではデフォルトでipv6をサポートしているようだが、これが原因でトラブルが起こることがある。 以下では、最初にipv6アドレス「::1」を試し、接続できないとipv4の「127.0.0.1」に接続している。

# telnet localhost 3050
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

telnetの場合は、リトライができるようだが、そうではないプログラムも多々あり、結局「localhostのポートに接続できない」という事態になってしまう。

デフォルトで/etc/hostsには

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

と記述されているが、なぜか二行目のipv6が優先されてしまうようだ。二行目を消すことでも対応できるようだが、ipv6自体を無効化してみる。

hosts設定

さらに、CentOS6.2の場合、マシン名が自動的にhostsファイルに記述されないため、無用なトラブルを起こす。 これを記述する必要がある。

127.0.0.1   localhost localhost.localdomain 
192.168.1.106 sample sample.example.com