IP : IP バージョン 6(IPv6)

IPv6 インターネット接続設定例(IPv6 PPPoE 方式)

2013 年 1 月 7 日 - 日本オリジナル版
その他のバージョン: PDFpdf | フィードバック

2013 年 1 月 更新
2012 年 6 月 初版

目次

概要
ネットワーク構成図
システムの前提条件
想定される環境
必要なハードウェア/ソフトウェア要件
サンプル コンフィグレーション
キーとなるコマンドの解説
設定に際しての注意点

概要

本ドキュメントでは、IPv4 インターネットを PPPoE にて接続している GW ルータで、PPPoE より IPv6 インターネットの接続を実現します。

ネットワーク構成図

システムの前提条件

オフィスや家庭において、GW ルータが PPPoE でサービスプロバイダーとブロードバンド回線接続しており、さらに IPv6 インターネットの接続を追加する環境を前提とします。

想定される環境

IPv4 インターネットのために、ISP と PPPoE 接続をし、IPv6 インターネットのためにさらに PPPoE 接続をおこないます。IPv6 プレフィックスはから DHCP-PD (DHCP-Prefex Delegation) によって委譲 (Delegate) されます。GW ルータが委譲された Prefix の一部を LAN 側に Stateless DHCP で払い出します。
本構成では ISR892J を PPPoE 終端ルータとして使用しています。

必要なハードウェア/ソフトウェア要件

ISR G2 はすべてオンボードにて、2FE(または GE)を具備します。また 800 シリーズはデフォルトでスイッチモジュールが装備されています。ISR G2 シリーズにて本構成が実現可能なハードウェア/ソフトウェアの組み合わせは以下になります。

プラットホーム IOS
800 シリーズ*1
(867VAE/881/892J)
15.0(1)M 以降*2
1900 シリーズ
(1921/1941)
2900 シリーズ
(2901/2911/2921/2951)
3900 シリーズ
(3925/3925E/3945/3945E)

*1 C861 では IPv6 をサポートしません。
CSCud84860 C861 should remove any IPv6 feature
*2 DHCP-pd を最適化するために以下の修正をおこなっています。最新の IOS を使用する事を推奨致します。
CSCts28315 DHCP-pd reflect the Advertised prefix in Request message

サンプル コンフィグレーション

hostname 892-PPPoE-v4v6-Client
  !
  ip cef
  ipv6 unicast-routing
  ipv6 cef
  ipv6 dhcp pool STATELESS
  import dns-server
  import domain-name
  !!
  interface BRI0
  no ip address
  encapsulation hdlc
  shutdown
  isdn termination multidrop
  !
  interface FastEthernet0
  no ip address
  !
  # (Fa0-7 は同一設定のため、以下省略)
  !
  interface GigabitEthernet0
  no ip address
  duplex auto
  speed auto
  pppoe enable group global
  pppoe-client dial-pool-number 100
  pppoe-client dial-pool-number 1
  !
  interface Vlan1
  ip address 192.168.1.254 255.255.255.0
  ip nat inside
  ip virtual-reassembly in
  ipv6 address PREFIX ::101:0:0:0:1/64
  ipv6 enable
  ipv6 nd other-config-flag
  ipv6 dhcp server STATELESS
  !
  interface Dialer1
  ip address negotiated
  ip mtu 1454
  encapsulation ppp
  ip tcp adjust-mss 1414
  dialer pool 1
  dialer-group 1
  ppp authentication chap callin
  ppp chap hostname ipv4@example.com
  ppp chap password 0 ipv4
  !
  interface Dialer100
  no ip address
  ipv6 mtu 1280
  encapsulation ppp
  dialer pool 100
  dialer-group 100
  ipv6 enable
  no ipv6 nd ra suppress
  ipv6 dhcp client pd PREFIX
  ppp authentication chap callin
  ppp chap hostname ipv6@example.net
  ppp chap password 0 ipv6
  !
  no ip http server
  no ip http secure-server
  ip forward-protocol nd
  !
  ip nat inside source list 1 interface Dialer1 overload
  ip route 0.0.0.0 0.0.0.0 Dialer1
  !
  access-list 1 permit 192.168.1.0 0.0.0.255
  !
  !
  ipv6 route ::/0 Dialer100
  !
  dialer-list 1 protocol ip permit
  dialer-list 100 protocol ipv6 permit
  
  !

キーとなるコマンドの解説

"ipv6 unicast-routing"

<コマンド種別>

グローバルコンフィグレーションコマンド

<コマンドの機能>

IPv6 フォワーディングを有効にします。

"ipv6 dhcp pool STATELESS"

<コマンド種別>

グローバルコンフィグレーションコマンド

<コマンドの機能>

IPv6 の DHCP プール名を定義し、DHCP プール コンフィギュレーションモードに入ります。

"import dns-server"
"import domain-name"

<コマンド種別>

DHCP プール コンフィギュレーション コマンド

<コマンドの機能>

DHCPv6 クライアントに DNS サーバとドメイン名をインポートします。

"pppoe-client dial-pool-number 1"
"pppoe-client dial-pool-number 100"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

このコマンドにより、論理インタフェース Dialer1 と Dialer100 をそれぞれ使って、PPPoE を 2セッション確立するように設定します。
Dialer1 インタフェースに設定されている"dialer pool 1"と"pppoe-client dial-pool-number 1"コマンドの番号 1 が対応します。
Dialer100 インタフェースの場合も同様に"dialer pool 100"と"pppoe-client dial-pool-number 100"コマンドの番号 100 が対応します。

" ipv6 address PREFIX ::101:0:0:0:1/64 " 

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

DHCP-pd サーバーによって払い出されたされた "PREFIX" から委譲し、::1:0:0:0:1/64 となる Prefix を LAN 用に設定し IPv6 アドレスを LAN 側に設定します。

例: DHCP-pd が 2001:db8:1200::/48 で委譲された場合は、IPv6 アドレス 2001:db8:1200:1::1/64 を LAN 側に設定します。

"ipv6 enable"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

IPv6 プロセスが有効にします。リンクローカルアドレスを自動生成されます。

"ipv6 nd other-config-flag"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

RA に O フラグ (Other Configuration Flag) をたてることで RA(ルータアドバタイズメント)のアドレス以外の情報を LAN に伝達します。

"interface Dialer1"
"interface Dialer100"

<コマンド種別>

グローバルコンフィグレーションコマンド

<コマンドの機能>

Dialer1 と Dialer100 論理インタフェースを定義します。PPPoE セッションはそれぞれ、この Dialer インタフェースにより終端されます。また、PPPoE セッションはダイアラの動作により確立要求されます。

"ip address negotiated"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

PPP セッション確立時に IP アドレスがダイナミックにインタフェースに対してアサインされます。

"ip mtu 1454"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

パケットの最大送信サイズを定義します。この事例では、Dialer1 インタフェースから送信されるパケットの最大サイズは 1454 バイトに調整されます。

"encapsulation ppp"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

このインタフェースは PPP カプセル化によりパケットの入出力をします。

"ip tcp adjust-mss 1414"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

このインタフェースを通過する TCP セッションは、TCP の最大セグメントサイズが 1414 バイトでネゴシエーションがおこなわれるようになります。指定できる最大セグメントサイズは、500 バイトから 1460 バイトの間になります。

"dialer pool 1"
"dialer pool 100"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

Dialer1 論理インタフェースと実際に PPPoE 接続する物理インタフェースが紐付けられます。
"dialer pool 1"と"pppoe-client dial-pool-number 1"コマンドの番号 1 が対応します。
dialer pool 100"の場合も同様で"dialer pool 100"と"pppoe-client dial-pool-number 100"コマンドの番号 100 が対応します。

"dialer-group 1"
"dialer-group 100"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

"dialer-list 1"で定義されたトラフィックパターンを本 Dialer インタフェースに適用します。
このトラフィックがダイアル対象として認識され本 Dialer インタフェースから出て行くときに、PPPoE セッションの確立要求を起動します。

"ppp authentication chap callin"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

ISP にアクセスする際の認証方法を CHAP に指定します。"callin"パラメータにより、認証は ISP によるユーザー認証の片方向のみ、おこなわれます。

"ppp chap hostname ipv4@example.com "
"ppp chap hostname ipv6@example.net "

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

PPP の CHAP または PAP 認証(本事例では CHAP) をおこなう際に必要なユーザー名を設定します。
このユーザー名の @ 以下 (ispid) により、接続先 ISP を判別します。IPv4 PPPoE と IPv6 PPPoE でそれぞれの値を設定します。

"ppp chap password 0 ipv4"
"ppp chap password 0 ipv6"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

PPP の CHAP または PAP 認証(本事例では CHAP)をおこなう際に必要なパスワードを設定します。本事例では、IPv4 PPPoE と IPv6 PPPoE それぞれのダイアラで "ipv4" "ipv6" というパスワードを設定しています。

"ip route 0.0.0.0 0.0.0.0 Dialer1"
"ipv6 route ::/0 Dialer100"

<コマンド種別>

グローバルコンフィグレーションコマンド

<コマンドの機能>

スタティックデフォルトルートとして IPv4 で Dialer1、IPv6 で Dialer100 がそれぞれ指定されます。

"ipv6 mtu 1280"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

IPv6 MTU サイズを最小値である 1280 に設定します。

"no ipv6 nd ra suppress"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

無効化されている RA を有効にします。

"ipv6 dhcp client pd PREFIX"

<コマンド種別>

インタフェースコンフィグレーションコマンド

<コマンドの機能>

このインタフェースを DHCPv6 クライアントに設定し、Prefix Delegation を要求します。

"dialer-list 1 protocol ip permit"
"dialer-list 100 protocol ipv6 permit"

<コマンド種別>

グローバルコンフィグレーションコマンド

<コマンドの機能>

dialer-list に適用させるトラフィックを指定します。

設定に際しての注意点

PPPoE 使用時の MTU サイズは、通常時よりも小さくなります。(フレッツでは、1454 バイトを推奨)そのため、MTU サイズを変更すると共に、TCP の MSS(最大セグメントサイズ)の値をそれに合わせて調整することが必要となる点に注意してください。

IPv6 では、MTU サイズを規格上の最小である 1280 に設定しています。

PPP MTU/MRU は PPP セッション確立においての必須項目ではありませんが、LCP ネゴシエーションで通知される MRU に合致していないと受け入れる事ができないサービスが存在します。Dialer interface にて以下のコマンドを追記し、通知される MRU に合わす事が可能になります。

ppp mtu adaptive

実際に導入し、運用される際には障害解析などの観点により以下のようなコマンドも追加する事を推奨します。

service timestamps debug datetime localtime msec
service timestamps log datetime localtime msec
clock timezone JST 9
!
logging buffered 512000 debugging
!
clock calendar-valid