PPPoE(PPP over Ethernet)は、PPP のフレームをイーサネットで運ぶための仕組みで、RFC 2516 で決められています。ユーザ認証や IP アドレスの割り当てといった PPP の機能をイーサネット上でも使えるので、プロバイダへの接続でよく使われます。
この記事では、FortiGate の wan1 を PPPoE クライアントにして、センタと拠点を PPPoE 網でつなぎます。設定のあと、接続状態とルーティングテーブルを確認し、センタから拠点へ ping を打って疎通を確かめます。検証時の FortiOS は 6.0.9 です。
- FortiGate のインターフェースを PPPoE で接続する設定
- 接続状態と、PPPoE で追加されるルートの読み方
- 拠点側も同じ手順で接続する
- センタと拠点の疎通確認と、デフォルトゲートウェイの役割
検証構成
センタと拠点の FortiGate は、どちらも wan1 で PPPoE 網に接続します。PPPoE 網は Cisco ルータを PPPoE サーバにして再現しています(設定は記事の最後に載せています)。
PPPoE 網では、ユーザ名ごとに割り当てるアドレスを決めています。認証が通ると、次のアドレスが /32 で割り当てられます。
| 機器 | ユーザ名 | 割り当てられるアドレス |
|---|---|---|
| センタ(CENTER) | user@center | 128.1.1.1/32 |
| 拠点 | user@branch | 128.1.1.2/32 |
| PPPoE 網(Cisco ルータ) | ― | 128.128.128.128(PPPoE サーバ側のアドレス) |
PPPoE がつながるまでの流れ
PPPoE の接続は、2つの段階に分かれています。最初の Discovery ステージで、クライアントは PPPoE サーバを探し、通信に使うセッション ID を決めます。次の PPP セッションステージで、ふつうの PPP と同じように、リンクの条件の交渉(LCP)、認証、IP アドレスの割り当て(IPCP)を行います。
| パケット・処理 | 内容 |
|---|---|
| PADI | クライアントが、宛先をブロードキャストにして PPPoE サーバを探します。 |
| PADO | PADI に応答できるサーバが返します。 |
| PADR | クライアントが、選んだサーバに接続を要求します。 |
| PADS | サーバがセッション ID を返し、PPP セッションの準備ができます。 |
| PADT | セッションを終わらせるときに使います。クライアントとサーバのどちらからも送れます。 |
| LCP / CHAP / IPCP | PPP の処理です。今回の PPPoE 網は CHAP で認証し、IPCP で 128.1.1.1 などのアドレスを割り当てます。 |
イーサネットのペイロードは最大 1500 バイトで、そこに PPPoE ヘッダ(6 バイト)と PPP のプロトコル ID(2 バイト)が入るため、PPPoE で運べる PPP の MTU は 1492 バイトまでになります。今回の PPPoE 網では、Cisco ルータの Virtual-Template に mtu 1454 を設定しています。
センタ側の接続
wan1 を PPPoE に設定する
ネットワーク ›› インターフェース で wan1 を選んで編集します。アドレッシングモードを PPPoE にして、センタ用のユーザ名とパスワードを入力します。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 1アドレッシングモード | ○ マニュアル○ DHCP◉ PPPoE |
| 2ユーザ名 | user@center |
| パスワード | ●●●●●● |
| Unnumbered IP接続 | 0.0.0.0 |
| 初期ディスクタイムアウト | 1 |
| 初期PADTタイムアウト | 1 |
| 3サーバからデフォルトゲートウェイを取得 | ON |
| 4ディスタンス | 5 |
| 5内部DNSを上書き | ON |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | アドレッシングモード | PPPoE を選びます。選ぶと、ユーザ名やパスワードなど PPPoE 用の項目が表示されます。 |
| 2 | ユーザ名・パスワード | PPPoE の認証に使うアカウントです。センタは user@center を入力します。PPPoE 網の Cisco ルータに登録したユーザ名・パスワードと一致させます。 |
| 3 | サーバからデフォルトゲートウェイを取得 | PPPoE サーバから受け取ったゲートウェイを、デフォルトルートとしてルーティングテーブルに追加します。今回は有効にしています。 |
| 4 | ディスタンス | 3 で追加されるデフォルトルートのアドミニストレーティブディスタンスです。同じ宛先のルートが複数あるときは、値の小さいほうが使われます。 |
| 5 | 内部DNSを上書き | PPPoE サーバから受け取った DNS サーバで、FortiGate の DNS 設定を置き換えます。 |
Unnumbered IP接続は、プロバイダから固定のアドレスブロックを割り当てられている場合などに、インターフェースのアドレスを指定する項目です。今回は使わないので 0.0.0.0 のままです。初期ディスクタイムアウトは PPPoE の Discovery を再試行するまでの待ち時間、初期PADTタイムアウトは PADT に関するタイムアウト(秒)です。
接続状態とルーティングテーブルを確認する
設定を保存してしばらくすると、同じ画面のステータスが「接続済み」になり、PPPoE サーバから受け取ったアドレスが表示されます。
| アドレッシングモード | ○ マニュアル○ DHCP◉ PPPoE |
| 1ステータス | 接続済み |
| 2取得したIP/ネットマスク | 128.1.1.1 255.255.255.255 更新 |
| 取得したDNS | |
| 3デフォルトゲートウェイ | 128.128.128.128 |
| ユーザ名 | user@center |
| ⋮ (中略) | |
| サーバからデフォルトゲートウェイを取得 | ON |
| ディスタンス | 5 |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | 接続済み(緑) | PPPoE サーバとの接続が完了し、アドレスなどの情報を受け取った状態です。 |
| 2 | 128.1.1.1 255.255.255.255 | IPCP で割り当てられたアドレスです。PPP は1対1のリンクなので、マスクは /32 になっています。取得したDNS は空欄です。今回の PPPoE 網では DNS サーバを配っていないためです。 |
| 3 | 128.128.128.128 | PPPoE サーバ(Cisco ルータの Virtual-Template)のアドレスで、これがデフォルトゲートウェイになります。 |
続けて、ルーティングテーブルを モニタ ›› ルーティングモニタ で確認します。
| タイプ | ネットワーク | ゲートウェイIP | インターフェース |
|---|---|---|---|
| 1スタティック | 0.0.0.0/0 | 128.128.128.128 | ppp1 |
| 2コネクテッド | 128.1.1.1/32 | 0.0.0.0 | ppp1 |
| 3コネクテッド | 128.128.128.128/32 | 0.0.0.0 | ppp1 |
| No. | ルート | 意味 |
|---|---|---|
| 1 | 0.0.0.0/0 → 128.128.128.128 | 「サーバからデフォルトゲートウェイを取得」で追加されたデフォルトルートです。スタティックルートとして登録されます。 |
| 2 | 128.1.1.1/32 | 自分に割り当てられたアドレスです。 |
| 3 | 128.128.128.128/32 | 接続先の PPPoE サーバのアドレスです。デフォルトルートのゲートウェイは、このルートで届きます。 |
インターフェースの列は wan1 ではなく ppp1 と表示されています。PPPoE で受け取ったルートは、この ppp1 に結び付いています。
検証した FortiOS 6.0 では「ルーティングモニタ」で確認しました。FortiOS 7.4 では ダッシュボード ›› ネットワーク の Routing ウィジェットを全画面に広げると、ルーティングテーブルを確認できます。CLI なら get router info routing-table all で確認できます。
拠点側の接続
拠点も同じ手順で接続する
拠点の FortiGate も、センタと同じように wan1 を PPPoE にします。ユーザ名は user@branch で、認証が通ると 128.1.1.2/32 が割り当てられます。
| アドレッシングモード | ○ マニュアル○ DHCP◉ PPPoE |
| ステータス | 接続済み |
| 1取得したIP/ネットマスク | 128.1.1.2 255.255.255.255 更新 |
| 取得したDNS | |
| デフォルトゲートウェイ | 128.128.128.128 |
| 2ユーザ名 | user@branch |
| ⋮ (中略。ほかの項目はセンタと同じ) | |
| タイプ | ネットワーク | ゲートウェイIP | インターフェース |
|---|---|---|---|
| 3スタティック | 0.0.0.0/0 | 128.128.128.128 | ppp1 |
| コネクテッド | 128.1.1.2/32 | 0.0.0.0 | ppp1 |
| コネクテッド | 128.128.128.128/32 | 0.0.0.0 | ppp1 |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | 128.1.1.2 255.255.255.255 | 拠点に割り当てられたアドレスです。デフォルトゲートウェイはセンタと同じ 128.128.128.128 です。 |
| 2 | user@branch | 拠点用のユーザ名です。 |
| 3 | 0.0.0.0/0 → 128.128.128.128 | センタと同じく、PPPoE サーバ向けのデフォルトルートが登録されています。 |
疎通確認
センタから拠点へ ping を打つ
センタの FortiGate から、拠点の FortiGate のアドレス(128.1.1.2)へ ping を実行します。
CENTER
CENTER # execute ping 128.1.1.2 PING 128.1.1.2 (128.1.1.2): 56 data bytes 64 bytes from 128.1.1.2: icmp_seq=0 ttl=254 time=0.3 ms 64 bytes from 128.1.1.2: icmp_seq=1 ttl=254 time=0.2 ms 64 bytes from 128.1.1.2: icmp_seq=2 ttl=254 time=0.2 ms 64 bytes from 128.1.1.2: icmp_seq=3 ttl=254 time=0.2 ms 64 bytes from 128.1.1.2: icmp_seq=4 ttl=254 time=0.3 ms --- 128.1.1.2 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.3 ms
5回とも応答があり、疎通できています。センタから見ると、128.1.1.2 は自分のルーティングテーブルにあるどのネットワークにも含まれません。そのため、デフォルトルート(0.0.0.0/0)に従って PPPoE サーバの 128.128.128.128 へ送られ、PPPoE 網を通って拠点に届きます。
「サーバからデフォルトゲートウェイを取得」を無効にすると、このデフォルトルートが登録されないため、疎通できなくなります。
うまくつながらないとき
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| ステータスが「接続済み」にならない | ユーザ名・パスワードの誤り、ケーブルや接続先の誤り | PPPoE サーバ側に登録したユーザ名・パスワードと一致しているか。wan1 が PPPoE 網側の正しいポートにつながっているか。 |
| 接続済みだが、拠点に ping が通らない | デフォルトルートがない | 「サーバからデフォルトゲートウェイを取得」が有効か。ルーティングテーブルに 0.0.0.0/0(ppp1)があるか。 |
| デフォルトルートが使われない | ほかのデフォルトルートのほうがディスタンスが小さい | 同じ 0.0.0.0/0 のルートが複数ないか。ディスタンスの値を比べる。 |
PPPoE網のCiscoルータ設定
今回の検証で PPPoE サーバとして使った Cisco ルータの設定です。
Cisco ルータ(PPPoE サーバ)
username user@center password 0 center username user@branch password 0 branch bba-group pppoe pppoe-center virtual-template 1 ! bba-group pppoe pppoe-branch virtual-template 2 ! interface FastEthernet0/0 no ip address pppoe enable group pppoe-center ! interface FastEthernet0/1 no ip address pppoe enable group pppoe-branch ! interface Virtual-Template1 mtu 1454 ip address 128.128.128.128 255.255.255.255 peer default ip address pool pool1 ppp authentication chap ! interface Virtual-Template2 mtu 1454 ip address 128.128.128.128 255.255.255.255 peer default ip address pool pool2 ppp authentication chap ! ip local pool pool1 128.1.1.1 ip local pool pool2 128.1.1.2 !
| 設定 | 意味 |
|---|---|
| username | PPP の認証に使うユーザ名とパスワードです。FortiGate に入力した値と一致させます。 |
| bba-group pppoe | PPPoE のグループを作り、接続ごとのインターフェースを作るときに使う Virtual-Template を指定します。センタ用と拠点用で分けています。 |
| pppoe enable group | インターフェースで PPPoE を受け付け、どのグループで処理するかを決めます。Fa0/0 はセンタ用、Fa0/1 は拠点用です。 |
| interface Virtual-Template | 接続ごとに作られるインターフェースのひな形です。ip address 128.128.128.128 が PPPoE サーバ側のアドレスで、FortiGate のデフォルトゲートウェイになります。 |
| peer default ip address pool | 接続してきた相手に割り当てるアドレスを、指定したプールから選びます。 |
| ppp authentication chap | CHAP で認証します。 |
| ip local pool | 割り当てるアドレスのプールです。アドレスを1つだけにしているので、センタには毎回 128.1.1.1、拠点には毎回 128.1.1.2 が割り当てられます。 |
まとめ
| 項目 | センタ | 拠点 |
|---|---|---|
| インターフェース | wan1(アドレッシングモード:PPPoE) | wan1(アドレッシングモード:PPPoE) |
| ユーザ名 | user@center | user@branch |
| 割り当てられたアドレス | 128.1.1.1/32 | 128.1.1.2/32 |
| デフォルトルート | 0.0.0.0/0 → 128.128.128.128(ppp1)。「サーバからデフォルトゲートウェイを取得」で登録される | |
FortiGate の PPPoE は、アドレッシングモードを PPPoE にしてユーザ名とパスワードを入れれば接続できます。対向の拠点と通信するには、PPPoE サーバ向けのデフォルトルートが必要です。接続後はステータスとルーティングテーブルを見て、アドレスとデフォルトルートが入っているかを確かめてください。
コメント