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 フォワーディングを有効にします。
グローバルコンフィグレーションコマンド
IPv6 の DHCP プール名を定義し、DHCP プール コンフィギュレーションモードに入ります。
DHCP プール コンフィギュレーション コマンド
DHCPv6 クライアントに DNS サーバとドメイン名をインポートします。
インタフェースコンフィグレーションコマンド
このコマンドにより、論理インタフェース 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 が対応します。
インタフェースコンフィグレーションコマンド
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 プロセスが有効にします。リンクローカルアドレスを自動生成されます。
インタフェースコンフィグレーションコマンド
RA に O フラグ (Other Configuration Flag) をたてることで RA(ルータアドバタイズメント)のアドレス以外の情報を LAN に伝達します。
グローバルコンフィグレーションコマンド
Dialer1 と Dialer100 論理インタフェースを定義します。PPPoE セッションはそれぞれ、この Dialer インタフェースにより終端されます。また、PPPoE セッションはダイアラの動作により確立要求されます。
インタフェースコンフィグレーションコマンド
PPP セッション確立時に IP アドレスがダイナミックにインタフェースに対してアサインされます。
インタフェースコンフィグレーションコマンド
パケットの最大送信サイズを定義します。この事例では、Dialer1 インタフェースから送信されるパケットの最大サイズは 1454 バイトに調整されます。
インタフェースコンフィグレーションコマンド
このインタフェースは PPP カプセル化によりパケットの入出力をします。
インタフェースコンフィグレーションコマンド
このインタフェースを通過する TCP セッションは、TCP の最大セグメントサイズが 1414 バイトでネゴシエーションがおこなわれるようになります。指定できる最大セグメントサイズは、500 バイトから 1460 バイトの間になります。
インタフェースコンフィグレーションコマンド
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-list 1"で定義されたトラフィックパターンを本 Dialer インタフェースに適用します。
このトラフィックがダイアル対象として認識され本 Dialer インタフェースから出て行くときに、PPPoE セッションの確立要求を起動します。
インタフェースコンフィグレーションコマンド
ISP にアクセスする際の認証方法を CHAP に指定します。"callin"パラメータにより、認証は ISP によるユーザー認証の片方向のみ、おこなわれます。
インタフェースコンフィグレーションコマンド
PPP の CHAP または PAP 認証(本事例では CHAP) をおこなう際に必要なユーザー名を設定します。
このユーザー名の @ 以下 (ispid) により、接続先 ISP を判別します。IPv4 PPPoE と IPv6 PPPoE でそれぞれの値を設定します。
インタフェースコンフィグレーションコマンド
PPP の CHAP または PAP 認証(本事例では CHAP)をおこなう際に必要なパスワードを設定します。本事例では、IPv4 PPPoE と IPv6 PPPoE それぞれのダイアラで "ipv4" "ipv6" というパスワードを設定しています。
グローバルコンフィグレーションコマンド
スタティックデフォルトルートとして IPv4 で Dialer1、IPv6 で Dialer100 がそれぞれ指定されます。
インタフェースコンフィグレーションコマンド
IPv6 MTU サイズを最小値である 1280 に設定します。
インタフェースコンフィグレーションコマンド
無効化されている RA を有効にします。
インタフェースコンフィグレーションコマンド
このインタフェースを DHCPv6 クライアントに設定し、Prefix Delegation を要求します。
グローバルコンフィグレーションコマンド
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