World IPv6 Dayに参加してみよう
4ステップでWebサーバをIPv6に対応させる方法

株式会社ユビテック
カスタマーサービスタスク サブチーフ
木村 保博
2011/5/19

サーバのIPv6対応

 OS、httpサーバのIPv6に関する設定をします。

 今回取り上げる「CentOS 5.5」や、Webサーバとして標準的に利用されることの多い「Apache 2.2」などはすでにIPv6に対応しており、yumなどのパッケージ管理コマンドを使って簡単にインストールできます。インストール後は、WebサーバごとにIPv6アドレスなどを設定するだけでIPv6対応が可能です。

 今回は、サーバに割り当てるIPv6アドレスなどを以下のように想定し、設定例を示します。

サーバ
eth0インターフェイス用IPv6アドレス/ネットマスク 2001:200:c10:82::88/64
デフォルトゲートウェイ
2001:200:c10:82::94
WebサーバURL
http://www.ubiteq.co.jp


eth0にIPv6アドレスを設定する

 IPv6を有効にするとともに、ネットワークインターフェイスにIPv6アドレスを設定します。

(1)/etc/sysconfig/networkを以下のように追加、変更する

NETWORKING_IPV6=yes
IPV6_DEFAULTDEV=eth0
IPV6_DEFAULTGW= 2001:200:c10:82::94

(2)/etc/sysconfig/network-sccript/ifcfg-eth0に以下を追加する

IPV6INIT=yes
IPV6ADDR=2001:200:c10:82::88/64

(3)ネットワークを再起動する

 (1)、(2)の設定を有効にするため、ネットワークを再起動します。

# /sbin/service network restart
インターフェース eth0 を終了中:                        [ OK ]
ループバックインターフェースを終了中               [ OK ]
ループバックインターフェイスを呼び込み中         [ OK ]
インターフェース eth0 を活性化中:                    [ OK ]

 この再起動によりIPv6アドレスが設定、有効化されます。

(4)確認

 IPv6での通信が可能か、ping6で確認します。

# ping6 www.kame.net
PING www.kame.net(2001:200:dff:fff1:216:3eff:feb1:44d7) 56 data bytes
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=0 ttl=57 time=15.1 ms
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=1 ttl=57 time=14.8 ms
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=2 ttl=57 time=14.9 ms

--- www.kame.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 14.815/15.001/15.194/0.209 ms, pipe 2

ApacheにIPv6を設定する

(1)httpd.confの設定

 Apacheのdefault設定に近い最も単純な設定の場合、Listenがdefault(*:80)の設定でよければ、そのままでIPv6に対応できます。

 しかし、VirtualHostの設定でIPアドレスを特定した仮想ホストの設定を行う場合は、httpd.confのListenにサーバのIPv6アドレスを追加設定します。その際には、IPv6アドレスを以下のように角括弧[ ]でくくらなければならない点に注意してください。

Listen [2001:200:c10:82::88]:80

(2)httpdの再起動

 Apacheの設定を修正した場合は、httpdを再起動します。

# /sbin/service httpd restart

(3)確認

 httpdがIPv6アドレスで立ち上がっていることを確認します。

# netstat -an|grep 80
tcp     0     0       211.14.19.88:80        0.0.0.0:*                 LISTEN
tcp     0     0       2001:200:c10:82::88:::80       :::*              LISTEN

 設定したIPv6アドレスでLISTENしていればOKです。

(4)Webサーバの応答確認

 設定したIPv6アドレスでWebサーバの応答を確認しましょう。telnetコマンドでWebサーバに接続し、HTTPのHEADコマンドでトップページのヘッダ情報を確認します。コマンドとして打ち込む部分は太字の部分です。

# telnet 2001:200:c10:82::88 80
Trying 2001:200:c10:82::88
Connected to 2001:200:c10:82::88
Escape character is '^]'.
HEAD / HTTP/1.0

Date: Thu, 14 Apr 2011 07:43:25 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 10329
Connection: close
Content-Type: text/html

Connection closed by foreign host.

 telnetコマンドだけでなく、wgetなどのテキスト型のhttpクライアントもIPv6に対応しています。

# wget --server-response -O /dev/null 'http://[::1]:80/'
--2011-04-14 13:53:38-- http://[::1]/
::1:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
  HTTP/1.1 200 OK
  Date: Thu, 14 Apr 2011 04:53:38 GMT
  Server: Apache
  Accept-Ranges: bytes
  Content-Length: 10329
  Keep-Alive: timeout=5, max=100
  Connection: Keep-Alive
  Content-Type: text/html
長さ: 10329 (10K) [text/html]
`/dev/null' に保存中

100%[======================================>] 10,329      --.-K/s 時間 0s

2011-04-14 13:53:38 (116 MB/s) - `/dev/null' へ保存完了 [10329/10329]

(5)ip6tablesの設定

 IPv4で使用するiptablesは、IPv4に対してのみ有効なホストファイアウォール機能です。IPv4でiptableを設定し使用している場合は、IPv6でも同じようにホストファイアウォールを設定するのが望ましいでしょう。

 具体的には、IPv6用のアクセス制御設定を作成し、ip6tablesサービスを起動させます。以下のように、Webサーバへのアクセス許可、DNSサーバへのアクセス許可を設定しましょう。

# vi /etc/sysconfig/ip6tables        (IPv6用アクセス制御設定)
# service ip6tables start               (ip6tablesサービスを起動)
# chkconfig ip6tables on               (システム起動時にip6tablesを自動起動させるよう設定)

 設定する際の構文は、IPアドレスの記述が128ビットのIPv6アドレスに変わるだけで、iptablesとすべて同じです。IPv4と同じ方針で設定するのがよいでしょう。


4ステップでWebサーバをIPv6に対応させる方法
  World IPv6 Dayがやってくる
IPv6アドレスの入手
ネットワークのIPv6対応
サーバのIPv6対応
  DNSへの登録
最後に
「Master of IP Network総合インデックス」

@IT Special

- PR -

TechTargetジャパン

Master of IP Network フォーラム 新着記事
  • ガートナーが示す、IoTプラットフォーム導入のためのヒントとは (2017/4/6)
     企業の経営判断の中心はERPからIoTへと移行しようとしている。P&Gと米国の大手機器メーカーの事例とともに、「IoTをどう生かすべきか」のヒントをガートナーのイベントから探る
  • シスコのSD-WANが、分かりにくいのはなぜか (2017/2/27)
     シスコシステムズは、SD-WANに対してどのようなスタンスをとっているのか。結論から言えば、同社の既存技術の適用形態としてSD-WANを捉えており、一方で即座に活用できるソリューションを求める人々には、「Cisco Meraki」を推進するということになる
  • ネットワークの疎通を確認するには?〜ping/traceroute〜 (2017/1/30)
     マシンのネットワーク設定を行い、外部のネットワークやサーバとつながるかどうかを確認する際には、実際にネットワーク・アプリケーションを使う前に、「ping」「traceroute(tracert)」などのコマンドを用いる方法が有効だ
  • ping 〜ネットワークの疎通を確認する (2017/1/23)
     pingは、ネットワーク疎通を確認したいホストに対してIPパケットを発行し、そのパケットが正しく届いて返答が行われるかを確認するためのコマンドだ
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Master of IP Network 記事ランキング

本日 月間
ソリューションFLASH