2013 年 1 月　更新

2012 年 7 月　初版

目次

概要

ネットワーク構成図

システムの前提条件

想定される環境

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

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

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

設定に際しての注意点

概要

本ドキュメントでは、IPoE（IP over Ethernet）方式を用いて IPv6 接続する方法を紹介します。

ネットワーク構成図

システムの前提条件

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

想定される環境

IPv6 プレフィックスは DHCP-PD（DHCP-Prefex Delegation）によって委譲（Delegate）されます。GW ルータが委譲された Prefix の一部を LAN 側に Stateless DHCP で払い出します。

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

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 Client

!

ip cef

ipv6 unicast-routing

ipv6 cef

ipv6 dhcp pool STATELESS

import dns-server

import domain-name

!（使用していない I/F を省略）

!

interface GigabitEthernet0

no ip address

duplex auto

speed auto

ipv6 address autoconfig default

ipv6 enable

ipv6 dhcp client pd PREFIX

pppoe enable

pppoe-client dial-pool-number 1

!

interface Vlan1

ip address 192.168.0.254 255.255.255.0

ip nat inside

ip virtual-reassembly in

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

ipv6 enable

ipv6 nd other-config-flag

ipv6 dhcp server STATELESS

!

interface Dialer1

ip  address negotiated

ip mtu 1454

ip nat outside

ip virtual-reassembly in

encapsulation ppp

ip  tcp adjust-mss 1414

dialer pool 1

dialer-group 1

ppp authentication chap callin

ppp chap hostname cisco@example.com

ppp chap password 0 cisco

!

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.0.0 0.0.0.255

!

dialer-list 1 protocol ip permit

!

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

"ipv6 cef"

＜コマンド種別＞

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

＜コマンドの機能＞

IPv6 で cef スイッチングを有効にします。

"ipv6 unicast-routing"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ipv6 dhcp pool STATELESS"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"import dns-server"

"import domain-name"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ipv6 address autoconfig default"

＜コマンド種別＞

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

＜コマンドの機能＞

このインターフェースで IPv6 アドレスをステートレス・オードコンフィグレーションします。Default オプションによってデフォルトルートをインストールします。

"ipv6 enable"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ipv6 dhcp client pd PREFIX"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"pppoe-client dial-pool-number 1"

＜コマンド種別＞

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

＜コマンドの機能＞

このコマンドにより、論理インターフェース Dialer1 を使って、PPPoE セッションを確立するように設定します。

Dialer1 インターフェースに設定されている "dialer pool 1" と "pppoe-client dial-pool-number 1" コマンドの番号 1 が対応します。

"interface Vlan1"

＜コマンド種別＞

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

＜コマンドの機能＞

Vlan1 を SVI として設定します。

"ipv6 address PREFIX ::1: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 nd other-config-flag"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ipv6 dhcp server STATELESS"

＜コマンド種別＞

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

＜コマンドの機能＞

DHCPv6 をこのインターフェースで有効にします。

"interface Dialer1"

＜コマンド種別＞

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

＜コマンドの機能＞

Dialer 1 論理インターフェースを定義します。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"

＜コマンド種別＞

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

＜コマンドの機能＞

Dialer1 論理インターフェースと実際に PPPoE 接続する物理インターフェースが紐付けられます。

"dialer pool 1" と GigaEthernet0 インターフェースの "pppoe-client dial-pool-number 1" コマンドの番号 1 が対応します。

"ip address negotiated"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"dialer-group 1"

＜コマンド種別＞

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

＜コマンドの機能＞

"dialer-list 1"で定義されたトラフィックパターンを本 Dialer インターフェースに適用します。

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

"ppp authentication chap callin"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ppp chap hostname cisco@example.com"

＜コマンド種別＞

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

＜コマンドの機能＞

PPP の CHAP または PAP 認証（本事例では CHAP）を行う際に必要なユーザー名を設定します。

このユーザー名の @ 以下（ispid）により、接続先 ISP を判別します。

"ppp chap password 0 cisco"

＜コマンド種別＞

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

＜コマンドの機能＞

PPP の CHAP または PAP 認証（本事例では CHAP）を行う際に必要なパスワードを設定します。本事例では、"cisco" というパスワードを設定しています。

"ip tcp adjust-mss 1414"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ip route 0.0.0.0 0.0.0.0 Dialer1"

＜コマンド種別＞

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

＜コマンドの機能＞

スタティックデフォルトルートとして Dialer1 が指定されます。

"dialer-list 1 protocol ip permit"

＜コマンド種別＞

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

＜コマンドの機能＞

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

設定に際しての注意点

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

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