概要

本ドキュメントでは、PPPoE パススルー機能を用いて、GW ルータの PPPoE 接続とは別個に LAN 側の端末でも PPPoE 接続を終端するための設定を紹介します。本構成では LAN 側に SVI を使用します。

ネットワーク構成図

システムの前提条件

オフィスや家庭において、GW ルータがサービスプロバイダーと PPPoE 方式でインターネット接続をしている環境を前提とします。

想定される環境

ルータを ONU や ADSL モデムなどに接続し、PPPoE にてサービスプロバイダーに接続します。一つの IP アドレスを動的に払い出す端末型払い出しとし、LAN 側セグメントは NAT によりインターネットに接続します。

この接続環境において、さらに以下のような要求の端末が同一セグメントにある場合を想定します。

- LAN 側にある端末自身がグローバル IP アドレスを必要とする場合

- アプリケーションに問題があり、LAN 側端末が直接サービスプロバイダーと PPPoE 接続をおこないたい場合

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

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

プラットホーム

必要なハードウェア*1

IOS

800 シリーズ

(861/881/892J)

N/A

15.2(3)T 以降

1900 シリーズ

(1921/1941)

EHWIC-D-8ESG

EHWIC-4ESG

HWIC-D-9ESW

HWIC-4ESW

などの EHWIC/HWIC Ethernet モジュール

2900 シリーズ

(2901/2911/2921/2951)

上記 EHWIC/HWIC

および

SM-D-ES3G-48

SM-ES3G-24

などのサービスモジュール

3900 シリーズ

(3925/3925E/3945/3945E)

*1 詳細は「Interfaces and Modules」を参照下さい

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

!

hostname 892j-PPPoE-BVI

!

!

ip cef

no ipv6 cef

!

bridge irb

!

interface BRI0

no ip address

encapsulation hdlc

shutdown

isdn termination multidrop

!

# (LAN 側ポートの一括設定例。実際の running-config には表示されません。）

!

interface range FastEthernet0-7

switchport access vlan 10

no ip address

!!

!

interface FastEthernet0

switchport access vlan 10

no ip address

!

#（Fa0-7 は同一設定のため、以下省略）

!

interface GigabitEthernet0

no ip address

duplex auto

speed auto

bridge-group 1

!

interface Vlan1

no ip address

!

interface Vlan10

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 in

encapsulation ppp

dialer pool 1

dialer-group 1

ppp authentication chap callin

ppp chap hostname cisco

ppp chap password 0 example@cisco.com

!

interface BVI1

ip address 192.168.1.254 255.255.255.0

ip nat inside

ip virtual-reassembly in

ip tcp adjust-mss 1414

pppoe-client dial-pool-number 1

!

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

access-list 200 permit 0x0800 0x0000

access-list 200 permit 0x0806 0x0000

access-list 200 permit 0x8863 0x0000

access-list 200 permit 0x8864 0x0000

!

dialer-list 1 protocol ip permit

!

bridge 1 protocol ieee

bridge 1 route ip

!

mgcp profile default

!

line con 0

exec-timeout 0 0

logging synchronous

line aux 0

line vty 0 4

transport input all

!

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

"bridge irb"

＜コマンド種別＞

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

＜コマンドの機能＞

IRB をイネーブルにします。トラフィックのブリッジングを有効にします。

"bridge group 1"

＜コマンド種別＞

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

＜コマンドの機能＞

インターフェイスにブリッジグループ番号 1 をアサインします。

"bridge-group 1 input-type-list 200"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"access-list 200 permit 0x0800 0x0000"

"access-list 200 permit 0x0806 0x0000”

“access-list 200 permit 0x8863 0x0000”

“access-list 200 permit 0x8864 0x0000"

＜コマンド種別＞

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

＜コマンドの機能＞

イーサタイプ 0x0800 (IPv4) 、0x0806 (ARP)、イーサタイプ 0x8863 (PPPoE Discovery Stage)、0x8864 (PPPoE Session Stage) のトラフィックがマッチするアクセスリストです。本設定に IPv6 パススルー機能も追加したい場合にはイーサタイプ 0x86DD (IPv6) を追加して下さい。

"interface BVI1

＜コマンド種別＞

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

＜コマンドの機能＞

ブリッジ グループ番号 １に対応する BVI を設定します。各ブリッジ グループに対応させることができる BVI は、1 つだけです。

"pppoe-client dial-pool-number 1"

＜コマンド種別＞

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

＜コマンドの機能＞

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

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

"interface Dialer1"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"ip mtu 1454"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"encapsulation ppp"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"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 example@cisco.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 が指定されます。

"interface Vlan10"

＜コマンド種別＞

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

＜コマンドの機能＞

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

"bridge 1 protocol ieee"

＜コマンド種別＞

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

＜コマンドの機能＞

ブリッジグループ番号 1 をアサインし、IEEE 802.1D スパニングツリープロトコルを適用します。

"bridge 1 route ip"

＜コマンド種別＞

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

＜コマンドの機能＞

IP をルーティング対象にします。

設定に際しての注意点

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

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

ppp mtu adaptive

現在の IOS では VLAN データベースモードによる VLAN の作成をせずに、コンフィグレーションモードでの作成が可能です。以下の様にグローバルコンフィグレーションモードから vlan コマンドを使用し、vlan を作成するか、インターフェースコンフィグレーションモードからアクセスポートに vlan を設定して下さい。指定した vlan が存在しない場合は作成されます。

Router (config) #vlan 10

または

Router (config) #interface FastEthernet1

Router (config-if) #switchport access vlan 10

% Access VLAN does not exist. Creating vlan 10

Router (config-if) #

VLAN の確認にはshow vlan-switchコマンドが有効です。

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

service timestamps debug datetime localtime msec

service timestamps log datetime localtime msec

clock timezone JST 9

!

logging buffered 512000 debugging

!

clock calendar-valid

補足；イメージ図

本設定ではイーサタイプ 0x8863 (PPPoE Discovery Stage)、0x8864 (PPPoE Session Stage) のパケット は入力インターフェース (Vlan10:FE1-7)   より、同一の Bridge-group をもつインターフェース (GE0) にブリッジされます。

また VLAN10 (FE0-7) に入力された IPv4 パケット (0x0800) や ARP パケット (0x0806) は”bridge 1 route ip”があるため、BVI インターフェースへルーティング処理されます。

BVI インターフェースで Dialer インターフェースでとルーティングされるケースではアドレス変換 (NAT) を行います。

その後ダイアラインターフェースにて PPPoE ヘッダーを追加し、WAN インターフェース (GE0) へ出力を行います。

指定されているイーサタイプ以外のプロトコルはフィルタされます。bridge させたいプロトコルがある場合はアクセスリストに追加して下さい。