★PPPoEサーバー
このページではNTT東日本やNTT西日本の回線業者側のPPPoEサーバーのエミュレータをLinuxで作る手順を紹介します。
◆ 目次 ◆
◆ 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の場合
マウントポイント | サイズ | 開始 | 終了 |
/boot | 100M | 1 | 13 |
/ | 75163M | 14 | 9595 |
swap | 1024M | 9596 | 9726 |
◆ 4-4. ネットワークの設定 ◆
動的IP設定を使用しません。
IPv6 サポートは無効にします。
IPアドレス等の設定を行います。yumコマンドでインターネットからパッケージをインストールしますので、インターネットに接続できるよう設定します。
■設定例
皆さんのネットワーク環境にあわせ、読み替えてください。
IP | 172.16.0.237 |
MASK | 255.255.255.0 |
ドメイン名 | linux-memo.net |
ゲートウェイ | 172.16.0.1 |
DNS | 172.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. 再起動 ◆
ネットワーク設定反映のため再起動します。
◆ 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
|
|