SEIL/x86でNGN IPv6接続を試す

6/1に提供が開始されたフレッツ光ネクスト(NGN) IPv6接続サービスを、SEIL/x86を使って利用する方法をご案内します。加えて、末尾にADSLなどフレッツ光ネクスト以外の方にもIPv6 インターネットをご利用頂ける、L2TPによる接続方法をご案内します。(6/6:L2TPによる設定方法を追記しました)

記事一覧

概要

NGN IPv6接続サービスを利用するためには、NTT東西から提供される有償の「トンネルアダプタ」を購入する必要があります。World IPv6 Day などでさっくりとIPv6を使ってみたい、という人にはお金を出してまではちょっと、、という人も多いかと思います。そこで、SEIL/x86の出番です。SEILは、既にIPv6での接続確認もバッチリ取れていますので、これをルータとして動かすことで、簡単にIPv6の世界を体験することができます。さらに、業務用ルータとして長年動作してきた実績のある品質、高機能なIPv6ファイアウォール機能を組み合わせることで安全なIPv6通信も実現できます。

ということで、早速ですがSEIL/x86をWindows PCにインストールしてIPv6通信を行う場合の論理構成図は以下のようになります。

基本的には、IPv4ベースでインターネットを使っている環境は特に変更する必要はありません。フレッツ回線などで既存のPPPoE接続によるIPv4インターネット通信が行えているものとします。その際、図のようにONU配下に別途ルータを置いているケースなどでは、そのルータがPPPoEパススルー機能を持っているかあらかじめ確認してください。持っていない場合は残念ながら本構成を試すことはできません。(SEILシリーズをご利用の場合は、もちろんPPPoEパススルー可能です)

そして、IPv6通信を試してみたいPC(本記事ではWindows PCを前提としています)を用意し、その上でVMware Playerをインストールし、SEIL/x86をゲストOSとして構築。SEIL/x86はNGN IPv6 PPPoE接続を行いつつ、Windows PC にRAを配り、IPv6での通信を可能とする、という流れです。

ということで、構築に必要なものをまとめると以下の通りです。

必要なもの

ご注意

このページでご紹介する内容は、VMwareを用いて仮想ルータソフトウェアを構築する、といった比較的高度な内容となっています。また、このページの手順は弊社環境にて充分に検証してはおりますが、お客様の環境によっては意図しない挙動を示す可能性があります。あらかじめPCのデータバックアップを取っておくなど、注意して作業していただくことをお勧め致します。

VMware Playerのインストール

SEIL/x86はVMware形式での提供となるため、まず VMware Playerのインストールを行います。こちらからVMware Playerのダウンロードおよびインストールを行ってください。なお、VMware Server, VMware ESXi等の環境をお持ちの場合は、そちらをそのままお使いいただくこともできます。

なお、ダウンロードにはメールアドレスの確認が必要です。ダウンロードページでは、「VMware Player (32 ビットおよび 64 ビット版 Windows 用)」を選択し、ダウンロードしてください。

ダウンロードが完了したら、インストーラを実行します。インストール自体は特別な作業は不要ですので、普通に行ってください。完了したら、「今すぐ再起動」を押し、Windows の再起動を行います。

VMware Player自体のインストールはこれで完了しますが、標準のままですと仮想ネットワークインタフェースが1つしか無いため、これを拡張する必要があります。このため、「vmnetcfg」という仮想ネットワークインタフェースの管理ツールをインストールする必要があります。vmnetcfgは、VMware Playerのインストーラには含まれているのですが、そのままではインストールされないため、以下の手順に従ってインストールしてください。

まず、コマンドプロンプトを開き、VMware Playerインストーラをダウンロードしたフォルダに移動します。そこで、以下のコマンドを実行してください。

c:\Users\seil\Downloads>VMware-player-3.1.4-385536.exe /e c:\tmp\VMwarePlayer3

すると、c:\tmp\VMwarePlayer3 以下にインストーラが展開されます。さらに、その中に含まれるnetwork.cabを展開(ダブルクリック)します。

その中にvmnetcfg.exeがありますので、これをVMware Playerがインストールされたフォルダ(C:\Program Files\VMware\VMware Playerなど)にコピーしてください。

コピーが完了したら、vmnetcfg.exeを起動すると、以下のように仮想ネットワーク設定の画面が開きます。

ここでは、以下のように設定してください。

さらに、Windows端末自身のVMnet1インタフェースのアドレスを変更します。コントロールパネル→ネットワークとインターネット→ネットワークと共有センターを開き、「VMware Network adapter VMnet1」を開きます。

さらに、プロパティ→インターネットプロトコルバージョン4(TCP/IPv4)を開き、IPアドレスを192.168.10.2、サブネットマスクを255.255.255.0に設定します。

設定が完了したらOKを押してください。

さらに、NGN網等からのRAによる、いわゆる「マルチプレフィックス」問題を回避するため、有線LANインタフェースのIPv6を無効にします。

同じく、ネットワークと共有センターの画面から「ローカルエリア接続」を選びます。

プロパティ画面を開き、「インターネットプロトコルバージョン6(TCP/IPv6)」のチェックを外し、OKを押します。

これで、Windows上の設定は完了です。

SEIL/x86のインストール

SEIL/x86をダウンロードし、インストールします。SEIL/x86は、SEIL/x86ダウンロードページにて提供されています。

注意事項等確認の上、「SEIL/x86新規ダウンロード(起動キー付き)」をクリックし、さらにその先の画面で利用許諾を確認し、「SEIL/x86ダウンロードリクエスト」ボタンを押します。すると登録したメールアドレスに起動キーとダウンロードのためのURLが通知されますので、案内に従ってVMware形式をダウンロードしてください。ダウンロードするファイルは「seilx86-180-vmware.zip」のようになります。

zipファイルを展開すると、VMwareの仮想ディスクファイル(seilx86.vmdk)とVMware構成ファイル(seilx86.vmx)が含まれています。このうち、seilx86.vmxファイルを直接エディタ等で開き、ethernetで始まる部分を以下のように編集してください。

ethernet0.present = "true"
ethernet0.connectionType = "custom"
ethernet0.vnet = "VMnet1"
ethernet1.present = "true"
ethernet1.connectionType = "bridged"
ethernet1.vnet = "VMnet0"
ethernet2.present = "true"
ethernet2.connectionType = "custom"
ethernet2.vnet = "VMnet2"

このように直接記述しないと、VMware PlayerのGUI設定画面ではブリッジするインタフェースを固定することができないためです。以上で、VMware Playerの設定は完了です。seilx86.vmxファイルをダブルクリックし、仮想イメージを起動してください。正常に起動が完了すると、以下のように表示されます。

起動が完了したら、telnetでログインするため、lan0インタフェースのアドレスを192.168.10.1に変更します。adminでログイン(パスワードは無しです)し、以下のコマンドを実行してください。

interface lan0 address 192.168.10.1/24

telnetクライアントのインストール

SEIL/x86 の各種操作を行うため、telnetクライアントが必要です。Windows Vista 以降をご利用の場合、標準ではインストール時にtelnetクライアントがインストールされないため、以下の手順でtelnetクライアントをインストールしてください。

まず、コントロールパネルを開き、「プログラム」を選択して開きます。続けて、「Windowsの機能の有効化または無効化」を選択してください。

さらに、その中の「Telnetクライアント」の項目にチェックを入れ、OKを押します。

これでtelnetクライアントがインストールされます。

SEIL/x86の設定

telnetクライアントを用いてSEILにログインし、設定を行っていきます。コマンドプロンプトを開き、

telnet 192.168.10.1

と実行してください。アカウント名はadmin、初期パスワードは無しでログインできます。

起動キーのインストール

こちらを参考に、起動キーのインストールを行ってください。実行例は以下のようになります。

# install-key from stdin
<キーを入力(長いため、コピーペーストをお勧めします)>
OK? [y/N] y
Startup Key:
 Distribution ID : 0001-0000-0000-0086-FFFF-FFFF-0000-0000
 Memo : Distributed via SEIL Community Site.
 Status : VALID and registered. 

なお、Windows標準のtelnetクライアントをお使いの場合、"install-key from stdin" のあと、EnterではなくCTRL+J を押してください。

ログインアカウントのパスワード設定

デフォルトのままでは、ログインアカウントのパスワードが空のため、ここで設定しておきます。

  • admin(管理者)アカウントのパスワードを設定

    # password admin
    New password: (パスワード入力)
    Retype new password: (再度確認入力)
  • # password user

    # password user
    New password: (パスワード入力)
    Retype new password: (再度確認入力)

NGN IPv6接続の設定(フレッツ光ネクストを利用)

さて、ここからが本題です。SEILにNGN IPv6トンネル接続のセットアップを行っていきます。以下に従って設定を行ってください。

  1. PPPoEを設定します。

    ppp add ipv6 keepalive none ipcp disable ipcp-address off ipcp-dns off ipv6cp \
      enable authentication-method chap identifier <ppp account> passphrase \
      <ppp password> tcp-mss auto
     (まとめて1行で入力してください)
    interface pppoe0 ppp-configuration ipv6
    interface pppoe0 over lan1
  2. IPv6デフォルト経路を設定します。

    route6 add default pppoe0
  3. DHCPv6クライアントを設定します。

    dhcp6 client enable
    dhcp6 client interface pppoe0
    dhcp6 client prefix-delegation subnet lan0 sla-id 0x1 enable
  4. DHCPv6サーバを設定します。

    dhcp6 server interface lan0 enable
    dhcp6 server interface lan0 dns add dhcp6
  5. rtadvd(ルータ広告機能)を設定します。

    rtadvd enable
    rtadvd interface lan0 enable
    rtadvd interface lan0 other-flag on
    rtadvd interface lan0 advertise auto
    rtadvd interface lan0 advertise add interface-prefix

上記設定をまとめたコンフィグサンプルはこちらです。

ngn-ipv6-tunnel-config-sample.txt

こちらのファイルのうち、<ppp account>, <ppp password> の部分を適宜変更し、load-from stdin コマンドで設定内容の読み込みを行うことで簡単に適用させることができます。なお、コンフィグサンプルではパスワード設定を空にしていますので、適用後改めてログインアカウントのパスワード設定を行なってください。

L2TP IPv6接続の設定

ここまでは、NGNのIPv6接続サービスを使用する前提で話を進めてきましたが、実はそれ以外のADSLなど、フレッツ光ネクスト以外をお使いの場合、IIJmioとIIJ4uをお使いの方にはL2TPによるIPv6接続サービスを提供しています。

論理構成はPPPoE接続の場合とほとんど同じですが、L2TPを用いて接続を行う点のみが異なります。

設定項目は以下の通りです。

  1. SEILをインターネットに接続します。

    interface lan1 address dhcp
    route add default dhcp
    resolver enable
    resolver address add dhcp
  2. L2TP接続を設定します。

    dialup-network l2tp-dn0 connect-to ipv6b.2iij.net
    ppp add L2TP keepalive none ipcp disable ipcp-address off ipcp-dns off ipv6cp \
      enable authentication-method chap identifier <ppp account> passphrase \
      <ppp password> tcp-mss auto
      (まとめて1行で入力してください)
    interface ppp0 over l2tp-dn0
    interface ppp0 ppp-configuration L2TP
  3. IPv6デフォルト経路を設定します。

    route6 add default ppp0
  4. DHCPv6クライアントを設定します。

    dhcp6 client enable
    dhcp6 client interface ppp0
    dhcp6 client prefix-delegation subnet lan0 sla-id 0x1 enable
  5. DHCPv6サーバを設定します。

    dhcp6 server interface lan0 enable
    dhcp6 server interface lan0 dns add dhcp6
  6. rtadvd(ルータ広告機能)を設定します。

    rtadvd enable
    rtadvd interface lan0 enable
    rtadvd interface lan0 other-flag on
    rtadvd interface lan0 advertise auto
    rtadvd interface lan0 advertise add interface-prefix

上記設定をまとめたコンフィグサンプルはこちらです。

other-ipv6-l2tp-config-sample.txt

こちらのファイルのうち、<ppp account>, <ppp password> の部分を適宜変更し、load-from stdin コマンドで設定内容の読み込みを行うことで簡単に適用させることができます。なお、コンフィグサンプルではパスワード設定を空にしていますので、適用後改めてログインアカウントのパスワード設定を行なってください。

動作確認

設定が完了したら、Windows端末からIPv6通信が行えるかどうか確認します。

確認方法はお好みですが、例えば以下のように確認できます。

どんなアドレスがついているか確認する

コマンドプロンプトから ipconfig /all を実行します。(以下は実行例です)

イーサネット アダプター ローカル エリア接続:

   接続固有の DNS サフィックス . . . :
   IPv4 アドレス . . . . . . . . . . : 192.168.0.2
   サブネット マスク . . . . . . . . : 255.255.255.0
   デフォルト ゲートウェイ . . . . . : 192.168.0.1

イーサネット アダプター VMware Network Adapter VMnet1:

   接続固有の DNS サフィックス . . . :
   IPv6 アドレス . . . . . . . . . . . : 2001:240:xxxx:yyyy:3952:9045:fa00:70f1
   一時 IPv6 アドレス. . . . . . . . . : 2001:240:xxxx:yyyy:e849:a813:7e72:e937
   リンクローカル IPv6 アドレス. . . . : fe80::3952:9045:fa00:70f1%16
   IPv4 アドレス . . . . . . . . . . : 192.168.10.2
   サブネット マスク . . . . . . . . : 255.255.255.0
   デフォルト ゲートウェイ . . . . . : fe80::20c:29ff:fed8:cb0f%16

pingコマンドでの確認

実際にIPv6対応サイトにpingを打ってみます。

C:\Users\seil>ping www.iij.ad.jp

www.iij.ad.jp [2001:240:bb42:b000::1:80]に ping を送信しています 32 バイトのデータ:
2001:240:bb42:b000::1:80 からの応答: 時間 =6ms
2001:240:bb42:b000::1:80 からの応答: 時間 =4ms
2001:240:bb42:b000::1:80 からの応答: 時間 =4ms
2001:240:bb42:b000::1:80 からの応答: 時間 =4ms

2001:240:bb42:b000::1:80 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 4ms、最大 = 6ms、平均 = 4ms

Webブラウザでの確認

Webブラウザを起動し、IIJのWebサイトhttp://www.iij.ad.jp/ にアクセスしてみてください。

ページ上部に以下のような表示があれば、IPv6での接続に成功しています。

以上でIPv6の通信が行えるようになりました。是非IPv6の世界を楽しんでください!

うまくつながらないときは

はまりそうなポイントを補足しておきます。

マルチプレフィクス問題が起きているかも

フレッツ光ネクスト(NGN)から配布されるIPv6アドレスとIIJから配布されるIPv6アドレスが競合し、IPv6インターネットにうまく接続できないことがあります。改めて、WindowsPC上の有線LANインタフェース(ローカルエリア接続)でIPv6が無効になっているか、Vmnet1インターフェイスでIPv6が有効になっているか確認をしてください。

IPv4 DNS が優先されてしまうかも

ローカルエリア接続のネットワークインタフェースに設定されたDNSサーバがIPv4を優先してしまう場合、IPv6アドレスを取得しているにも関わらず、IPv4の通信が優先されてしまうかもしれません。その場合、SEIL/x86でdns forwarder(DNSクエリ転送機能)を有効にしておき、ローカエルエリア接続のDNSサーバアドレスをSEIL/x86のlan0アドレスに向けてしまうと改善できるかもしれません。その場合SEIL/x86には以下のように設定しておきます。

dns forwarder enable
dns forwarder add dhcp6