Linux活用レシピ > 会社で活用 > PPPoEサーバー

PPPoEサーバー

このページではNTT東日本NTT西日本の回線業者側のPPPoEサーバーエミュレータLinuxで作る手順を紹介します。

目次

1. はじめに
2. パソコンの準備
3. インストールCDの作成
4. CentOS5.4のセットアップ
5. アップデートと追加パッケージ
6. PPPoEの設定
7. PPPoEサーバの使い方
8. ルーターの設定事例

1. はじめに

1-1. 説明

会社の複数の拠点をネットワーク接続する場合、フレッツ・VPNワイド等のサービスを利用しますが、センターや各拠点に設置するルーターの試験は、サービスの契約をしないと出来ません。

このため、テスト用回線がない場合一発本番となってしまい、万一設定間違いなどあった場合、本番切り替えに時間がかかって、スケジュール遅延となるリスクを抱えることになります。

また、例えばルータの選定を行おうにも、実際の回線なしでは検証環境を作ることが出来ませんので、細かな検証作業を行うことが出来ません。

そこで活用するのが「Linux」。このレシピでは回線契約前に、Linuxサーバで作ったPPPoEサーバを用いて試験を行い、そのままの設定でフレッツ・VPNワイドが利用出来ます。

1-2. ネットワークの構成

ここでは、以下の構成のネットワークを試験する環境を用意します。IPアドレスなどは各環境にあわせ読み替えてください。

    本社側検証ネットワーク

[インターネットルータ]
    |192.168.1.240
    |
*---+----本社側----------+--192.168.1.0/24-*
    |                    |
    | VRRP1:192.168.1.1  |
    | VRRP2:192.168.1.2  |
    |                    |
    |LAN1:192.168.1.252  |LAN1:192.168.1.253
+-----------+       +-----------+
| RTX1200_1 |       | RTX1200_2 |
+-----------+       +-----------+
    |WAN:192.168.1.126    |WAN:192.168.1.254
    |PPPoE 接続の         |PPPoE 接続の
    |パラメータ↓         |パラメータ↓
    |honsya@企業識別子    |honsya@企業識別子
    |eth0                 |eth1
+---|---------------------|-----+
|  ↑ここが本社側ONUに相当↑    |
|                               |
|    PPPoE サーバ               |
|                               |
|  ↓ここが拠点側ONUに相当↓    |
+---|---------------------|-----+
    |eth2                 |eth3
    |PPPoE 接続の         |PPPoE 接続の
    |パラメータ↓         |パラメータ↓
    |shinjyuku@企業識別子 |odaiba@企業識別子
    |WAN: 192.168.2.254   |WAN:192.168.3.254
+-----------+       +-----------+
| RTX810_1  |       | RTX810_2  |
+-----------+       +-----------+
    |LAN1:192.168.2.1     |LAN1:192.168.3.1
    |※通常経路は         |※通常経路は
    |  RTX1200_1側     |  RTX1200_2側
    |                     |
[新宿拠点想定]       [お台場拠点想定]
192.168.2.0/24       192.168.3.0/24
※ポイントは、新宿拠点は通常RTX1200_1側で通信しているが、RTX1200_1が壊れた場合や通信できない時は、RTX1200_2側で通信を再開し、逆にお台場拠点は通常RTX1200_2側で通信しているが、RTX1200_2が壊れた場合や通信できない時は、RTX1200_1側で通信を再開する冗長構成です。

なお、本社側のホストは、デフォルトゲートウェイを[インターネットルータ(192.168.1.240)]に向け、[インターネットルータ]で[新宿拠点想定(192.168.2.0/24)]へはVRRP:192.168.1.1、[お台場拠点想定(192.168.3.0/24)]へはVRRP:192.168.1.2にそれぞれ向け、実IPの192.168.1.252、192.168.1.252は使わないのがポイントです。

今回は事前検証が必要な、あえて難しい構成を事例として選定しています。簡単な構成であれば、わざわざPPPoEサーバで検証する必要はないかもしれませんので。
▲目次

2. パソコンの準備

まずはPPPoEサーバーにするパソコンを準備しましょう。

複数拠点の接続を確認するため、LANカードは拠点数分用意します。

LANカードを複数挿すので、デスクトップ型がお勧めです。

スペックはメモリ512M程度積んでいて、HDD容量は10Gもあればよいです。

CPUはCeleron1GHz以上あればよいので、Windows機として使えなくなったような、古いパソコンで十分です。
▲目次

3. インストールディスクの作成

3-1. ダウンロード

CentOS5.xをダウンロードします。
CentOS公式サイト → downloads → i386 →ダウンロード先選択

以下の6つのファイルが必要です。
  • CentOS5.4-i386-bin-1of6.iso
  • CentOS5.4-i386-bin-2of6.iso
  • CentOS5.4-i386-bin-3of6.iso
  • CentOS5.4-i386-bin-4of6.iso
  • CentOS5.4-i386-bin-5of6.iso
  • CentOS5.4-i386-bin-6of6.iso

3-2. インストールCDの作成

ディスク作成ツールなどを利用して、ダウンロードしたisoイメージをCDに焼きます。

「CDRoxio Creator DE」であれば、「コピー」メニュー → 「イメージを書き込む」で、ダウンロードしたイメージを指定してインストールCDを作成します。
▲目次

4. CentOS5.4のセットアップ

4-1. セットアップの開始

作成したCDからパソコンを起動し、CentOS5.4のセットアップを開始します。

4-2. パーティション設定

「Japanese」を選択します。

4-3. 言語の指定

既存のパーティションがある場合、すべて削除します。
削除後、新しくパーティションを作成します。

設定例
ディスク容量:80GBの場合
マウントポイントサイズ開始終了
/boot100M113
/75163M149595
swap1024M95969726

4-4. ネットワークの設定

動的IP設定を使用しません。
IPv6 サポートは無効にします。
IPアドレス等の設定を行います。yumコマンドでインターネットからパッケージをインストールしますので、インターネットに接続できるよう設定します。

設定例
皆さんのネットワーク環境にあわせ、読み替えてください。
IP172.16.0.237
MASK255.255.255.0
ドメイン名linux-memo.net
ゲートウェイ172.16.0.1
DNS172.16.0.1
DNS2なし

4-5. パッケージグループの選択

「Desktop - Gnome」のチェックをはずす
「今すぐカスタマイズする」を選択して「次」

「デスクトップ環境」パッケージグループのインストールパッケージ選択
全てのチェックをはずす

「開発」パッケージグループのインストールパッケージ選択
「開発ツール」のみ選択して他は全てチェックをはずす。

「仮想化」パッケージグループのインストールパッケージ選択
全てのチェックをはずす。

「クラスタストレージ」パッケージグループのインストールパッケージ選択
全てのチェックをはずす

「言語」パッケージグループのインストールパッケージ選択
「日本語のサポート」のみ選択して他は全てチェックをはずして「次」

ここからインストールが開始されます。

4-6. 初回起動時

  [Firewall Configuration]
でSecurity Level をDisableにしてFirewall無効
また、SELinuxも「Disabled」を選択して無効化します。

以上でCentOSが起動しますので、rootでログインします。
▲目次

5. アップデートと追加パッケージ

5-1. yumアップデート

一旦すべてのパッケージを最新にします。
# yum update
※質問は「y」で回答
# reboot
※アップデート完了後リブートします。

5-2. pppとrp-pppoeのインストール

追加パッケージでpppとrp-pppoeをインストールします。
# yum install ppp
※以下の通りすでに最新であればOK
 Package ppp-xxx already installed      
                    and latest version
# yum install rp-pppoe
※以下の通りすでに最新であればOK
 Package rp-pppoe-xxxx already installed
                    and latest version
▲目次

6. PPPoEの設定

6-1. PPPoEサーバの設定

以下の通りオプションファイルを修正します。
# vi /etc/ppp/pppoe-server-options
----------------------------------------
# PPP options for the PPPoE server
# LIC: GPL
require-pap
login
lcp-echo-interval 10
lcp-echo-failure 2

↓loginの項目はUNIX認証のため無効化
# PPP options for the PPPoE server
# LIC: GPL
require-pap
#login
lcp-echo-interval 10
lcp-echo-failure 2
----------------------------------------

6-2. papの登録

pap認証のユーザ名、パスワード、払い出しIPアドレスを登録します。
# vi /etc/ppp/pap-secrets
----------------------------------------
"honsya" * "パスワード" 192.168.1.126
"honsya2" * "パスワード" 192.168.1.254
"shinjyuku" * "パスワード" 192.168.2.254
"odaiba" * "パスワード" 192.168.3.254
----------------------------------------
"ユーザID"、「*」、"パスワード"そして、払い出すIPアドレスを半角スペースで区切って拠点数分登録します。

実際の回線では、フレッツ・VPNワイド等のカスタマコントロールで登録する内容です。

ちなみにpppoeのサーバ名を入力する項目ですが、使用しませんので「*」としています。

6-3. IPフォワードON

各拠点同士をルーティングするため、IPフォワードを「ON」にします。
# vi /etc/sysctl.conf
----------------------------------------
以下変更
net.ipv4.ip_forward = 0

net.ipv4.ip_forward = 1
----------------------------------------

6-4. インターフェイス準備

PPPoEサーバを起動されるインタフェースにはIPアドレスを割当ててはいけないため、以下の通りIPアドレスを削除します。
例)eth0の場合
# cd /etc/sysconfig/network-scripts/
# vi ifcfg-eth0
----------------------------------------
DEVICE=eth0
BOOTPROTO=static
HWADDR=99:99:99:99:99:99
ONBOOT=yes
※HWADDRはMACアドレスでそのまま残す。
----------------------------------------
この事例では4拠点なのでeth1,eth2,eth3も同様に設定する。

6-5. 再起動

ネットワーク設定反映のため再起動します。
# reboot

6-6. LAN型払い出し用スクリプト追加

通信が確立したら、LAN型払い出しのルーティングが実施されるようスクリプトを追加します。
# vi /etc/ppp/ip-up.local
----------------------------------------
#!/bin/bash
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"

PPP_RT_FILE="/etc/ppp/ppp-routing-list"

`grep "gw $PPP_REMOTE" $PPP_RT_FILE`
----------------------------------------
※実行権を与えておく↓
# chmod 755 /etc/ppp/ip-up.local
スクリプトから参照するルーティングファイルを用意します。
# vi /etc/ppp/ppp-routing-list
----------------------------------------
# LAN型払い出し用
# route add -net 払出NW gw ルータのIP
route add -net 192.168.2.0/24 gw 192.168.2.254
route add -net 192.168.3.0/24 gw 192.168.3.254
----------------------------------------

6-7. PPPoEサーバ起動

以下のコマンドで、すべてのethポートでPPPoEサーバを起動します。
# pppoe-server -I eth0
# pppoe-server -I eth1
# pppoe-server -I eth2
# pppoe-server -I eth3
以上でPPPoEサーバの準備が出来ました。これで各ネットワークカードを、各拠点のONUに見立て、ルータを接続し、動作確認を行ってください。
▲目次

7. PPPoEサーバの使い方

7-1. OS起動時

この手順では、OS起動時にPPPoEサーバを自動起動するよう設定しておりませんで、以下の通りすべてのethポートでPPPoEを待ち受けるように起動しておいて下さい。
# pppoe-server -I eth0
# pppoe-server -I eth1
# pppoe-server -I eth2
# pppoe-server -I eth3

7-2. 払い出しIPアドレスの変更

払い出しIPアドレスを変更する場合は、以下のファイルを編集してください。
# vi /etc/ppp/pap-secrets
----------------------------------------
"honsya" * "パスワード" 192.168.1.126
"honsya2" * "パスワード" 192.168.1.254
"shinjyuku" * "パスワード" 192.168.2.254
"odaiba" * "パスワード" 192.168.3.254
----------------------------------------
"ユーザID"、「*」、"パスワード"そして、払い出すIPアドレスを半角スペースで区切って拠点数分登録します。

実際の回線では、フレッツ・VPNワイド等のカスタマコントロール(通称カスコン)で登録する内容です。

ちなみにpppoeのサーバ名を入力する項目ですが、使用しませんので「*」としています。

また、払い出しIPがネットワーク型の場合はルーティングテーブルも設定して下さい。
# vi /etc/ppp/ppp-routing-list
----------------------------------------
# LAN型払い出し用
# route add -net 払出NW gw ルータのIP
route add -net 192.168.2.0/24 gw 192.168.2.254
route add -net 192.168.3.0/24 gw 192.168.3.254
----------------------------------------


さらに、これらのファイルを編集した後は、以下の通りPPPoEサーバのプロセスを停止し、再開してください。
※まず、プロセス番号を確認する。
# ps -ef | grep "pppoe-server -I eth"

※確認したプロセスを全部停止する。
# kill プロセス番号1
# kill プロセス番号2
# kill プロセス番号3
# kill プロセス番号4

※すべてのethポートでPPPoEを待ち受
  けるようプロセスを起動します。
# pppoe-server -I eth0
# pppoe-server -I eth1
# pppoe-server -I eth2
# pppoe-server -I eth3

7-3. PPPoEの接続ログを確認

PPPoEの接続ログは/var/log/messagesに記録されます。

例)リアルタイムにログを画面で確認する場合は、以下の通り入力してください。
# tail -f /var/log/messages
※終了は[CTRL]+[c]です。
▲目次

8. ルーターの設定事例

それでは、今回の検証環境で使用した、ルーター「RTX1200」2台と「RTX810」2台の実際の設定を記載します。

8-1. 本社側1 RTX1200_1


login password パスワード
administrator password パスワード
ip route default gateway 192.168.1.240
ip route 192.168.2.0/24 gateway tunnel 2 keepalive
2 gateway 192.168.1.253 weight 0 ←続き
ip route 192.168.2.1 gateway tunnel 2
ip route 192.168.2.254 gateway pp 1
ip route 192.168.3.0/24 gateway tunnel 3
ip route 192.168.3.1 gateway tunnel 3
ip route 192.168.3.254 gateway pp 1
ip icmp echo-reply send-only-linkup on
ip icmp redirect send off
ip keepalive 2 icmp-echo 5 5 192.168.2.1
ip lan1 address 192.168.1.252/24
ip lan1 vrrp 1 192.168.1.1 priority=200
ip lan1 vrrp shutdown trigger 1 pp 1
ip lan1 vrrp 2 192.168.1.2 priority=100
pp select 1
 pp always-on on
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname honsya@拠点識別子 パスワード
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ip pp address 192.168.1.126/32
 ip pp mtu 1454
 pp enable 1
tunnel select 2
 ipsec tunnel 2
  ipsec sa policy 2 2 esp 3des-cbc sha-hmac
  ipsec ike hash 2 sha
  ipsec ike keepalive log 2 off
  ipsec ike keepalive use 2 on
  ipsec ike local address 2 192.168.1.126
  ipsec ike pre-shared-key 2 text キー
  ipsec ike remote address 2 any
  ipsec ike remote name 2 shinzyuku key-id
 tunnel enable 2
tunnel select 3
 ipsec tunnel 3
  ipsec sa policy 3 3 esp 3des-cbc sha-hmac
  ipsec ike hash 3 sha
  ipsec ike keepalive log 3 off
  ipsec ike keepalive use 3 on
  ipsec ike local address 3 192.168.1.126
  ipsec ike pre-shared-key 3 text キー
  ipsec ike remote address 3 any
  ipsec ike remote name 3 odaiba key-id
 tunnel enable 3
ipsec auto refresh on

8-2. 本社側2 RTX1200_2


login password パスワード
administrator password パスワード
ip route default gateway 192.168.1.240
ip route 192.168.2.0/24 gateway tunnel 2
ip route 192.168.2.1 gateway tunnel 2
ip route 192.168.2.254 gateway pp 1
ip route 192.168.3.0/24 gateway tunnel 3 keepalive
3 gateway 192.168.1.252 weight 0 ←続き
ip route 192.168.3.1 gateway tunnel 3
ip route 192.168.3.254 gateway pp 1
ip icmp echo-reply send-only-linkup on
ip icmp redirect send off
ip keepalive 3 icmp-echo 5 5 192.168.3.1
ip lan1 address 192.168.1.253/24
ip lan1 vrrp 1 192.168.1.1 priority=100
ip lan1 vrrp 2 192.168.1.2 priority=200
ip lan1 vrrp shutdown trigger 2 pp 1
pp select 1
 pp always-on on
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname honsya2@拠点識別子 パスワード
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ip pp address 192.168.1.254/32
 ip pp mtu 1454
 pp enable 1
tunnel select 2
 ipsec tunnel 2
  ipsec sa policy 2 2 esp 3des-cbc sha-hmac
  ipsec ike hash 2 sha
  ipsec ike keepalive log 2 off
  ipsec ike keepalive use 2 on
  ipsec ike local address 2 192.168.1.254
  ipsec ike pre-shared-key 2 text キー
  ipsec ike remote address 2 any
  ipsec ike remote name 2 shinzyuku key-id
 tunnel enable 2
tunnel select 3
 ipsec tunnel 3
  ipsec sa policy 3 3 esp 3des-cbc sha-hmac
  ipsec ike hash 3 sha
  ipsec ike keepalive log 3 off
  ipsec ike keepalive use 3 on
  ipsec ike local address 3 192.168.1.254
  ipsec ike pre-shared-key 3 text キー
  ipsec ike remote address 3 any
  ipsec ike remote name 3 odaiba key-id
 tunnel enable 3
ipsec auto refresh on

8-3. 拠点1[shinzyuku] RTX810


login password パスワード
administrator password パスワード
ip route default gateway tunnel 1 keepalive
1 gateway tunnel 2 weight 0←続き
ip route 192.168.1.126 gateway pp 1
ip route 192.168.1.254 gateway pp 1
ip keepalive 1 icmp-echo 5 5 192.168.1.252
ip lan1 address 192.168.2.1/24
pp select 1
 pp always-on on
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname shinzyuku@拠点識別子 パスワード
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ip pp address 192.168.2.254/32
 ip pp mtu 1454
 pp enable 1
tunnel select 1
 ipsec tunnel 1
  ipsec sa policy 1 1 esp 3des-cbc sha-hmac
  ipsec ike hash 1 sha
  ipsec ike keepalive log 1 off
  ipsec ike keepalive use 1 on
  ipsec ike local address 1 192.168.2.254
  ipsec ike local name 1 shinzyuku key-id
  ipsec ike pre-shared-key 1 キー
  ipsec ike remote address 1 192.168.1.126
 ip tunnel tcp mss limit auto
 tunnel enable 1
tunnel select 2
 ipsec tunnel 2
  ipsec sa policy 2 2 esp 3des-cbc sha-hmac
  ipsec ike hash 2 sha
  ipsec ike keepalive log 2 off
  ipsec ike keepalive use 2 on
  ipsec ike local address 2 192.168.2.254
  ipsec ike local name 2 shinzyuku key-id
  ipsec ike pre-shared-key 2 キー
  ipsec ike remote address 2 192.168.1.254
 ip tunnel tcp mss limit auto
 tunnel enable 2
ipsec auto refresh on

8-4. 拠点2[odaiba] RTX810


login password パスワード
administrator password パスワード
ip route default gateway tunnel 2 keepalive 2
gateway tunnel 1 weight 0←続き
ip route 192.168.1.126 gateway pp 1
ip route 192.168.1.254 gateway pp 1
ip keepalive 2 icmp-echo 5 5 192.168.1.253
ip lan1 address 192.168.3.1/24
pp select 1
 pp always-on on
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname odaiba@拠点識別子 パスワード
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ip pp address 192.168.3.254/32
 ip pp mtu 1454
 pp enable 1
tunnel select 1
 ipsec tunnel 1
  ipsec sa policy 1 1 esp 3des-cbc sha-hmac
  ipsec ike hash 1 sha
  ipsec ike keepalive log 1 off
  ipsec ike keepalive use 1 on
  ipsec ike local address 1 192.168.3.254
  ipsec ike local name 1 odaiba key-id
  ipsec ike pre-shared-key 1 キー
  ipsec ike remote address 1 192.168.1.126
 ip tunnel tcp mss limit auto
 tunnel enable 1
tunnel select 2
 ipsec tunnel 2
  ipsec sa policy 2 2 esp 3des-cbc sha-hmac
  ipsec ike hash 2 sha
  ipsec ike keepalive log 2 off
  ipsec ike keepalive use 2 on
  ipsec ike local address 2 192.168.3.254
  ipsec ike local name 2 odaiba key-id
  ipsec ike pre-shared-key 2 キー
  ipsec ike remote address 2 192.168.1.254
 ip tunnel tcp mss limit auto
 tunnel enable 2
ipsec auto refresh on
▲目次