目次
ネットワーク構成図
※ 画像をクリックすると、大きく表示されます。
システムの前提条件
PPPoE 方式を利用するブロードバンド回線接続を提供するサービスにて、Cisco サービス統合型ルータを使用し、インターネットに接続します。また、IPv6パススルー(IPv6ブリッジ)の設定を行い、IPv6アプリケーションの接続を行います。
想定する環境
ルータを回線終端装置などに接続し、WAN 側の IPv4アドレスを PPPoE にて取得するように設定します。IPv4アドレスの提供方法は、1つのグローバル IPv4アドレスを動的に払い出す、端末型払い出しとします。LAN 側のネットワークに接続された PC-A はルータの PAT 機能により、サービスプロバイダーより配布された WAN 側の IPv4アドレスに変換され、インターネットにアクセスします。IPv6はルータでブリッジされ、PC-A が IPv6アドレスを RA(Router Advertisement)にて取得するように設定します。
必要なハードウェア/ソフトウェア要件
Cisco ISR シリーズにて本構成が実現可能なハードウェア/ソフトウェアの組み合わせは下記になります。オンボードのルーテッドポートを使用する際はこちらを参照してください。
881 |
Onboad |
12.4(20)T 以上 |
15.0 (1) 以上 |
841M |
Onboad |
N/A |
15.5(3)M 以上 |
1941 |
HWIC-4ESW/HWIC-D-9ESW |
N/A |
15.0(1) 以上 |
2900 シリーズ (2901/2911/2921/2951) |
HWIC-4ESW/HWIC-D-9ESW などのスイッチモジュール |
N/A |
15.0(1) 以上 |
3900 シリーズ (3925/3945) |
HWIC-4ESW/HWIC-D-9ESW などのスイッチモジュール |
N/A |
15.0(1) 以上 |
本設定例においては、Cisco861、IOS12.4(24)T1 を使用しています。 |
サンプルコンフィグレーション
hostname 861-A
!
bridge irb
!
interface FastEthernet4
no ip address
duplex auto
speed auto
pppoe enable group global
pppoe-client dial-pool-number 1
bridge-group 1
!
interface Vlan1
no ip address
bridge-group 1
bridge-group 1 input-type-list 200
!
interface Dialer1
ip address negotiated
ip mtu 1454
ip nat outside
ip virtual-reassembly
encapsulation ppp
dialer pool 1
dialer-group 1
ppp authentication chap callin
ppp chap hostname Flet's@cisco.com
ppp chap password 0 cisco
!
interface BVI1
ip address 192.168.0.254 255.255.255.0
ip nat inside
ip virtual-reassembly
ip tcp adjust-mss 1414
!
ip route 0.0.0.0 0.0.0.0 Dialer1
!
ip nat inside source list 1 interface Dialer1 overload
!
access-list 1 permit 192.168.0.0 0.0.0.255
access-list 200 permit 0x86DD 0x0000
access-list 200 permit 0x0800 0x0000
access-list 200 permit 0x0806 0x0000
dialer-list 1 protocol ip permit
!
bridge 1 protocol ieee
bridge 1 route ip
!
キーとなるコマンドの解説
----------------------------
"bridge irb"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
IRB(Integrated Routing and Bridging)を有効にします。
----------------------------
"bridge-group 1"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
"bridge-group 1" がインタフェースに対してアサインされます。
----------------------------
"bridge-group 1 input-type-list 200"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
"access-list 200" で定義されたトラフィックパターンを本インタフェースに適用します。
----------------------------
"interface BVI1"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
ブリッジグループ バーチャルインターフェースを定義します。
----------------------------
"access-list 200 permit 0x86DD 0x0000"
"access-list 200 permit 0x0800 0x0000"
"access-list 200 permit 0x0806 0x0000"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
プロトコルタイプ0x86DD (IPv6)、0x0800 (IPv4)、0x0806 (ARP)のトラフィックがマッチするアクセスリストです。
----------------------------
"bridge 1 protocol ieee"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
ブリッジグループ番号1をアサインし、IEEE 802.1D スパニングツリープロトコルを適用します。
----------------------------
"bridge 1 route ip"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
IP をルーティング対象にします。
----------------------------
"pppoe enable group global"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
インタフェースにおいて PPPoE プロトコルを使用可能にします。
----------------------------
"pppoe-client dial-pool-number 1"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
このコマンドにより、論理インタフェース Dialer1 を使って、PPPoE セッションを確立するように設定します。
Dialer1 インタフェースに設定されている "dialer pool 1" と "pppoe-client dial-pool-number 1" コマンドの番号 1 が対応します。
----------------------------
"interface Dialer 1"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
Dialer 1 論理 インタフェースを定義します。PPPoE セッションは、この Dialer インタフェースにより終端されます。また、PPPoE セッションはダイアラーの動作により確立要求されます。
----------------------------
"ip address negotiated"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
PPP セッション確立時に IP アドレスがダイナミックにインタフェースに対してアサインされます。
----------------------------
"ip mtu 1454"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
パケットの最大送信サイズを定義します。この事例では、Dialer1 インタフェースから送信されるパケットの最大サイズは 1454 バイトに調整されます。
----------------------------
"encapsulation ppp"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
このインタフェースは PPP カプセル化によりパケットの入出力をします。
----------------------------
"dialer pool 1"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
Dialer1 論理インタフェースと実際 に PPPoE 接続する物理インタフェースが紐付けられます。
"dialer pool 1" と FastEthernet0 インタフェースの "pppoe-client dial-pool-number 1" コマンドの番号 1 が対応します。
----------------------------
"dialer-group 1"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
"dialer-list 1" で定義されたトラフィックパターンを本 Dialer インタフェースに適用します。
このトラフィックがダイアル対象として認識され本 Dialer インタフェースから出て行くときに、PPPoE セッションの確立要求を起動します。
----------------------------
"ppp authentication chap callin"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
ISP にアクセスする際の認証方法を CHAP に指定します。"callin" パラメータにより、認証は ISP によるユーザー認証の片方向のみ行われます。
----------------------------
"ppp chap hostname Flet's@cisco.com"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
PPP の CHAP または PAP 認証(本事例では CHAP)を行なう際に必要なユーザー名を設定します。
このユーザー名の@以下(ispid)により、接続先 ISP を判別します。
----------------------------
"ppp chap password 0 cisco"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
PPP の CHAP または PAP 認証(本事例では CHAP)を行なう際に必要なパスワードを設定します。本事例では、"cisco" というパスワードを設定しています。
----------------------------
"ip nat inside source list 1 interface Dialer1 overload"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
アクセスリスト 1 番にマッチするトラフィックは、Dialer1 インタフェースの IP アドレスをグローバルアドレスとして利用して、アドレス変換(PAT)が行われます。
----------------------------
"ip nat inside/outside"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
"ip nat inside" が設定されたインタフェースは、NAT(PAT)における内部(LAN 側、プライベート側)であると定義され、"ip nat outside" が設定されたインタフェースは、NAT(PAT)における外部(WAN 側、グローバル側)であると定義されます。
----------------------------
"access-list 1 permit 192.168.0.0 0.0.0.255"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
ネットワーク 192.168.0.0/255.255.255.0 を送信元とするトラフィックがマッチする標準アクセスリストです。本事例では、アドレス変換(PAT)対象のトラフィックを定義しています。
----------------------------
"ip tcp adjust-mss 1414"
<コマンド種別>
インタフェースコンフィグレーションコマンド
<コマンドの機能>
このインタフェースを通過する TCP セッションは、TCP の最大セグメントサイズが 1414 バイトでネゴシエーションが行われるようになります。
----------------------------
"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(最大セグメントサイズ)の値をそれに合わせて調整することが必要となる点に注意してください。
PPPoE インターフェース上での ip route 0.0.0.0 0.0.0.0 Dialer1 と指定した際にはファーストスイッチとなります。PPPoE にてより高速な CEF スイッチを実現するためにはサービスプロバイダーの BAS アドレスが PPP ネゴシエーション時にルータにインストールされている必要があります。インストールされている様であれば、dialer インターフェースにて ppp ipcp route default を設定し、再度 PPPoE セッション確立してください。PPP ネゴシエーション終了時に BAS アドレスを nexthop としたデフォルトルートが作成されます。
以前 IOS では PPPoE クライアントにおいて、下記のコマンドが必要でしたが、現在の IOS では必要がありません。またこのコマンドを設定する事により PPPoE サーバの機能が有効になり、WAN 側の同一セグメントにおいて、PPPoE クライアントが存在する際には、broadcast で送られる PADI に対し、PADO を返してしまいます。設定は行わないでください。
vpdn enable
vpdn-group 1
request-dialin
protocol pppoe
861 の様な SW 内蔵のプラットホームまたは HWIC-4ESW/HWIC-D-9ESW などのスイッチモジュールを使用し、vlan を使用する際には、vlan コマンドにて追加する vlan を指定する必要があります。
実際に導入し、運用される際には障害解析などの観点により下記の様なコマンドも追加する事を推奨いたします。
service timestamps debug datetime localtime msec
service timestamps log datetime localtime msec
clock timezone JST 9
!
logging buffered 512000 debugging
!
clock calendar-valid