December 27, 2009

Ubuntuでpppoe-serverを使ってPPPoEサーバを立てる












Ethernet環境は基本的に手元にあるケーブルを目の前のPortにカチッとするだけで構築可能ですが、PPPoEはどうでしょうか?ISPへ接続している回線を使えばよいのですが、検証用にはそんなに簡単に用意が出来ません。ですので、この場合も手元でPPPoEサーバを立ち上げましょう。





PPPoEとは。

詳細な難しい話は別途ググッっていただければよいので、かいつまんで説明すると。。。











クライアントが同一セグメント内のPPPoEサーバとのやり取りで、PPPoEのリンクを生成します。サーバとのPAPあるいはCHAPなどの認証を経てIPアドレス情報などを得て、PPPoEのリンクに接続します。

具体的な構成図は上記、設定例は下記を参照。PPPoEサーバにはいつもの通りUbuntuを使用します。





まずは、必要なパッケージをインストール。えっと確か、、、





$ sudo apt-get install pppoe






だったと思います。

そして、クライアントとのやり取り情報を設定します。ここでは、DNSと認証方式くらいを気にしておいてください。





$ sudo vi /etc/ppp/pppoe-server
ms-dns 8.8.8.8
ms-dns 8.8.4.4
require-pap
login
lcp-echo-interval 30
lcp-echo-failure 4






認証情報をセットしておきましょう。





$ sudo vi /etc/ppp/pap-secrets
test * "test" 192.168.1.100






PPPoEサーバ側に、PPPoEサーバのインターフェースを作成します。ここではeth1をそれとしますが、Staticにeth1にIPアドレスは設定しないでおいてください(詳しくは、man pppoe-server参照)。各オプションについても、man pppoe-serverを(ry 。ここではPPPoEクライアントのIPアドレスが192.168.1.100になる見込みです。





$ sudo pppoe-server -I eth1 -L 192.168.1.1 -R 192.168.1.100






PPPoEサーバがルータとしてパケット転送を行うために、下記に1を入れておいてください。





$ echo 1 > /proc/sys/net/ipv4/ip_forward






Source NATするなら、IPTablesを利用します。





$ sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.3






ClientにPPPoE Discoveryさせてください。PPPoEのリンクは出来ましたか?想定していたIPアドレスはセットされましたか?あて先のHostとの通信は出来ましたか?PPPoEサーバでパケットキャプチャしてみて確認してみてください?

設定例はここまで。気が向いたら解析編でもそのうち書きます。