このページの本文へ

使えばわかる!IPv6入門 第11回

仮想ルーターを使ってIPv6接続を試してみよう

IIJ IPv6仮想アクセス(ネットワーク型)を使ってみる(後編)

2011年08月09日 09時00分更新

文● 伊藤玄蕃

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回に続き、インターネットイニシアティブ(IIJ)のIPv6アクセスサービス「IPv6 仮想アクセス(ネットワーク型)」を使ってみる。ただし、今回は複数のPCから、SEIL/x86を経由してIPv6インターネットへ接続するため、少しチューニングを施してみよう。

IIJのサンプル構成を理解する

 最初に、SEIL/x86を仮想ルーターとして利用した、IPv6仮想アクセス(ネットワーク型)の仕組みを復習しよう。図1は、IIJがSEIL/x86のサポートサイト「SEIL/x86でNGN IPv6接続を試す」に掲載された標準的な構成例である。

図1 IIJが公開した標準的な構成例

 図1の下半分(黒の実線の四角形に囲まれた部分で、左上の隅にPCの絵がある)は、VMware PlayerがインストールされたPCである。VMware Playerにより、1台のPCの中にホストOS(ここでは Windows 7)と仮想ルーター(SEIL/x86)の2台分の環境が共存している。

 IPv4でインターネットにアクセスする時には、パケットは赤の実線の経路をたどる。一方、IPv6でインターネットにアクセスする時は、青線の経路となる。すなわち、「ホストOS~SEIL/x86~ブロードバンドルーター~フレッツ網~IPv6インターネット」の経路である。

 この構成では、SEIL/x86を経由してIPv6でインターネットにアクセスできるのは、同じPC内のホストOSだけである。つまり、物理的に別のPCからIPv6インターネットに接続することはできない。なぜなら、SEIL/x86の2つのインターフェイスのうち、IPv6のグローバルアドレスが割り当てられるLAN0は、PCの内部で完結した(Host Only)ネットワーク(VMnet1)側のインターフェイスだからである。このネットワークは、PCの外部へ延長することはできない。

他のPCからもIPv6インターネットへ接続する

 それでは、複数のPCを保有し、どのPCからもIPv6でインターネットにアクセスするにはどうしたらよいのだろう。

 まず、図1の構成により近い方法としては、VMnet1を外部へ延長できるネットワークにする。この場合、2つの物理的なLANインターフェイスをもつPCへSEIL/x86を導入し、VMnet1をVMnet0と同様に、ブリッジとして物理的なLANインターフェイスへ割り当てる。これにより、VMnet1も外部接続が可能なネットワークになる。最近のノートPCの多くは有線LANと無線LANの2つのLANインターフェイスをもつので、この構成を作ることは簡単だ。

 では、SEIL/x86を導入するPCに物理的なLANインターフェイスが1つしかない場合はどうするか。

 これから紹介する方法は、その解決策である。とりあえず、全体構成を示す(図2)。

図2 仮想ルーター(SEIL/x86)を利用した IPv6通信の仕組み

 図1との違いは、IPv6のグローバルアドレスを割り当てるSEIL/x86のインターフェイス(LAN1)が、ブリッジとしてPCの物理的なLANインターフェイスへ割り当てられている点である。すなわち、PCの物理的なLANインターフェイスと同一サブネット内にある別のPCから、SEIL/x86を経由してIPv6でインターネットにアクセスすることが可能になる。

設定手順

 実際にSEIL/x86を試してみようという人は、前述の「SEIL/x86でNGN IPv6接続を試す」を印刷しておいてほしい。この説明文には、SEIL/x86を使った2つのIPv6接続の方法が書いてある。説明の流れは、以下のようになっている。

  • 1. 概要
  • 2. VMware Playerのインストール
  • 3. SEIL/x86のインストール
  • 4. Telnetクライアントのインストール
  • 5. SEIL/x86の設定
  •  5-1. NGN IPv6接続の設定(フレッツ光ネクストを利用)
  •  5-2. L2TP IPv6接続の設定

 このうち、「5-1. NGN IPv6接続の設定(フレッツ光ネクストを利用)」の部分は、今回は不要である。

 SEIL/x86を試すには、IIJの説明文の流れに沿って、

  1. VMware Playerのインストール
  2. SEIL/x86のインストール
  3. Telnetクライアントのインストール
  4. SEIL/x86の設定

と進む。そして、「5-1. NGN IPv6接続の設定(フレッツ光ネクストを利用)」の直前(「ログインアカウントのパスワード設定」)まで実行したら、本記事に戻ってきてほしい。

 なお、IIJの説明文も、本記事も、VMnet0側のインターフェイスのIPv4アドレスは、DHCPで割り当てられることを想定している。ブロードバンドルーターを使ったIPv4の構成では、それがあたり前だからだ。そうでない場合は、SEIL/x86のLAN1インターフェイスのIPv4アドレスを、手動で割り当てる必要がある。つまり、割り当てるIPv4アドレスを先に決めておく必要がある。

 また、IIJの説明文では、Windowsに標準添付のTelnetクライアントを利用している。このTelnetクライアントは、設定コマンドをコピー&ペーストする際の操作性がよくないので、もっと操作性のよいソフトを使ったほうがよい。筆者はフリーソフトのTera Termを愛用している。

設定項目

 それでは、図2の構成を実現するための設定項目を説明しよう(リスト1)。

リスト1 SEIL/x86に投入する設定コマンド(1)
  1. interface lan1 add dhcp
  2. route add default dhcp
  3. resolver enable
  4. resolver address add dhcp

  5. dialup-network l2tp-dn0 connect-to ipv6b.2iij.net
  6. 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
  7. interface ppp0 over l2tp-dn0
  8. interface ppp0 ppp-configuration L2TP

  9. route6 add default ppp0

  10. dhcp6 client enable
  11. dhcp6 client interface ppp0
  12. dhcp6 client prefix-delegation subnet lan1 sla-id 0x1 enable

  13. rtadvd enable
  14. rtadvd interface lan1 enable
  15. rtadvd interface lan1 other-flag on
  16. rtadvd interface lan1 advertise auto
  17. rtadvd interface lan1 advertise add interface-prefix

  18. dns forwarder enable
  19. dns forwarder add dhcp6

 なお、全コマンドは、それぞれ改行せずに1行で入力する。また、6行目のコマンドでは、[ppp account]および[ppp password]の部分を、IIJから指定されたPPPログイン名とPPPパスワードに置き換える。

 コマンドはほとんど、「SEIL/x86でNGN IPv6接続を試す」ページに追記された「L2TP IPv6接続の設定(対象:フレッツ 光ネクスト以外のお客様)」のパートと同じだが、修正されたコマンド(行)が5つある。修正部分は赤字で示しているが(lan1)、LANインターフェイスを変更している。これにより、SEIL/x86のLAN1インターフェイスにIPv6のグローバルアドレスが割り当てられる。

 なお、このようにして接続されたIPv6では、ブロードバンドルーターのNAT機能をパススルーしているので、外部から内部ネットワークへのアクセスが可能になってしまう。そこで、SEIL/x86のパケットフィルタ機能により、NAT相当のセキュリティを実現しておこう。そのためのコマンドがリスト2だ。

リスト2 SEIL/x86 に投入する設定コマンド(2)
  1. filter6 add OUTGOING interface ppp0 direction out action pass state enable
  2. filter6 add BLOCK_IN interface ppp0 direction in action block
  3. filter6 add DHCP6_IN interface ppp0 direction in action pass protocol udp dst self dstport 546 top

 リスト1と同じで、全コマンドはそれぞれ改行せずに1行で入力する。1行目の「OUTGOING」が外向きの通信を許すフィルタ、2行目の「BLOCK_IN」が内向きの通信を禁止するフィルタだ。ただし、内向きの通信をすべて禁止すると、相手と互いに応答を繰り返すTCP通信が成立しないので、OUTGOING には「state enable」パラメータを指定してステートフルインスペクションを有効にしておく。

 これにより、

  • 内部から外部への通信はすべて通る
  • 外部から内部への通信は、事前に内部から外部に向けてコネクションを確立した通信だけが通る

という動作になる。

 3行目のコマンドは、DHCPv6のパケットは受信する(外部から内部の通信を通す)という設定である。

動作確認

 設定が完了したら、動作を確認しよう。まずはSEIL/x86のLAN1インターフェイスの状態を、“show status interface”コマンドを使って表示してみる(画面1)。最後の2行に、IPv6のグローバルアドレスが表示されれば、SEIL/x86は意図通りに動作している。この時、リンクローカルアドレスを控えておこう。

画面1 SEIL/x86 のLAN1の状況

 次に、ホストOSのローカルエリア接続の状態を、コマンドプロンプトから“ipconfig”コマンドを使って表示してみる(画面2)。SEIL/x86と同じプリフィックスのグローバルIPv6アドレスが割り当てられ、かつ、デフォルトゲートウェイにはSEIL/X86のLAN1インターフェイスのリンクローカルアドレスが自動的に設定される。

画面2 ホストOS(Windows 7)でのipconfigの結果

 さらに、SEIL/X86のLAN1インターフェイスと同一サブネット内にある別のPCの、ローカルエリア接続の状態も確認してみる(画面3)。ここでは、Windows XP マシンを使ってみた。こちらも、SEIL/x86と同じプリフィックスのグローバルIPv6アドレスが割り当てられ、かつ、デフォルトゲートウェイにはSEIL/X86のLAN1のリンクローカルアドレスが自動的に設定される。

画面3 別のPC(Windows XPマシン)でのipconfigの結果

 最後に、同一サブネット内にある別のPCから、IPv6対応サイトへtracerouteを実行してみる(画面4)。

画面4 別のPC(Windows XP マシン)から「www.iij.ad.jp」へtracerouteを実行

 この画面4の最初のホップは、SEIL/X86のLAN1のIPv6アドレスだ。なお、ここではWindows XP マシンから実行したため、コマンドは“tracert6”となっているが、Windows 7 であれば、ここは、

tracert -6 www.iij.ad.jp

でよい。

 筆者の手元では、PCの再起動後などにppp0がつながらない(L2TPトンネルの接続に失敗する)ことが時々生じるが、仮想ルーターだけを停止し10~30分ほど待ってから仮想ルーターを再起動すると、とりあえず何事もなかったようにppp0がつながった。それ以外は、すこぶる快調である。

 SEIL/x86のコマンド説明書は、「http://www.seil.jp/download/manual/seilx86/」からダウンロードできるので、手元に保存しておくとよいだろう。そして、「show status」コマンドや「show log」コマンドなどを理解して、動作状態を確認できるようにしておけば、ホビーユースでは十分に使えると思う。

 IIJのユーザーであれば、ぜひ、試してもらいたい。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード