PPPoE でプロバイダーに接続する (CentOS 5.5) - Linux の使い方


PPPoE でインターネット接続を行う

ADSL や光といったブロードバンド回線用に提供されるインターネット接続は、PPPoE を使用するものが一般的です。

通常は、回線業者からレンタルされる機器を使用したり、ブロードバンドルーターを購入したりして、その機器にプロバイダーから提供されたアカウントを登録することで、インターネットを利用することができるようになります。

 

このブロードバンドルーターと同じようなことを Linux でも行うことが可能です。

Linux を使用すれば、さまざまな機能を組み合わせてより自由度の高い設定を行うことができるので、ルーターにはない機能を利用したり、自分の好みで調整したり、グローバルの固定 IP 1 つを効果的に活用したりといったこともできるようになってくると思います。

CentOS 5.5 では、標準で "rp-pppoe" という PPPoE パッケージが用意されているようでしたので、こちらを用いて、プロバイダーへ接続する方法について記してみたいと思います。

 

 

CentOS 5.5 の場合は既に rp-pppoe パッケージがインストールされているようでしたが、もしインストールされていない場合は、次のようにしてインストールを行います。

yum install rp-pppoe

 

続いて、rp-pppoe の設定を行います。

rp-pppoe のバージョンにも依るようですけど、今回は次のコマンドを使用して設定を行います。

adsl-setup

このとき、既に PPPoE で使用する "ppp" インターフェイスが設定されている場合には、それを編集するかどうかを尋ねられるようでした。このときに "n" を入力することで、新しい "ppp" インターフェイスを設定することができるようになっていました。

 

このコマンドを実行すると、いくつかの質問事項が表示されるので、それに対して答えを入力して行きます。

LOGIN NAME プロバイダーから接続情報として提供されたアカウント名を入力します。
INTERFACE 接続に使用するインターフェイスを指定します。Linux の場合は通常 eth1 などになると思います。
Do you want the link to come up on demand, or stay up continuously? 常時接続を行う場合には "no" と入力しておきます。
DNS ここで "server" と入力することで、プロバイダーから割り当てられる DNS を自動取得するように設定できます。プロバイダーから DNS サーバーが指定されている場合にはそれを入力します。
PASSWORD プロバイダーから接続情報として提供されたアカウントのパスワードを入力します。
USERCTRL 一般ユーザーが接続の開始や終了を行えるようにするかの設定です。用途にもよりますが、ここでは "no" を設定しておきます。
FIREWALLING ここでは "0" なら手動設定、"1" なら Linux 単体での接続、"2" なら Linux をゲートウェイとしての接続、といった形態を選択します。サーバーとして利用するならできれば "0" を選択して手動設定してほしいというような記載がありましたので、ここは "0" を選択しておきました。
Start this connection at boot time Linux 起動時に自動的に接続を開始したい場合に "yes" と入力します。今回も "yes" としておくことにしました。

これらの情報を入力すると、最後に "Accept these settings and adjust configuration files (y/n)?" と尋ねられるので、間違いがなければ "y" を入力して、設定作業を完了させます。

 

これによって、いくつかの設定ファイルが調整されます。

CentOS 5.5 では "/etc/sysconfig/network-scripts/ifcfg-ppp0" ファイルに PPPoE に関する設定が保存されるようでした。ここに、一般に "/etc/ppp/pppoe.conf" ファイル内に記すような設定内容が記録されていました。

この中の "NAME" の値を調整すれば、この設定ファイルが何用のものなのかなどがわかりやすくなるかもしれません。名前はダブルクォーテーションを使って括ります。

"CONNECT_TIMEOUT" の設定が既定では "60" になっていますが、環境にもよりますけど "30" 程度でも大丈夫かもしれません。

それと "PEERDNS" の設定が "yes" となっている場合には、DHCP サーバーから DNS 情報を自動取得した場合に、ローカルの "/etc/resolve.conf" ファイルを自動更新(上書き)するため、必要がなければ "no" にしておくと良いでしょう。

マルチセッションとして PPPoE 接続を複数用意したい場合は、"PIDFILE" のところも、複数のインターフェイスで同じパスを指定してしまうと正しく接続できなくなってしまうようなので、ここも例えば "/var/run/pppoe-adsl.ppp0.pid" というようにして、インターフェイスごとに区別しておくと良いと思います。

 

そのような点に注意して、最終的に "/etc/sysconfig/network-scripts/ifcfg-ppp0" に記載した内容は次のような感じになりました。

USERCTL=no

BOOTPROTO=dialup

NAME="PROVIDER A"

DEVICE=ppp0

TYPE=xDSL

ONBOOT=yes

PIDFILE=/var/run/pppoe-adsl.ppp0.pid

FIREWALL=NONE

PING=.

PPPOE_TIMEOUT=80

LCP_FAILURE=3

LCP_INTERVAL=20

CLAMPMSS=1412

CONNECT_POLL=6

CONNECT_TIMEOUT=20

DEFROUTE=yes

SYNCHRONOUS=no

ETH=seth1

PROVIDER="PROVIDER A"

USER=account@provider-a.xxx.xx

PEERDNS=no

DEMAND=no

また、接続に必要なパスワードは "/etc/ppp/chap-secrets" および "/etc/ppp/pap-secrets" ファイルに、接続アカウントとの対応で記録されています。

 

設定が終わったら、次のようにしてプロバーダーとの接続を開始することができます。

ifup ppp0

設定に問題がなければ、これでインターネットとの通信が確立されるようになります。

なお、接続状態を確認するには、次のコマンドを使用します。

/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0

 

今回は "DEFROUTE" の設定も "yes" になっていますので、CentOS 5.3 でルーティング機能を有効にする で記したようにフォワーディングの設定を行えば、この Linux をゲートウェイにして、他のパソコンがインターネットへ接続することもできるようになってきます。

ただ、通常は LAN ではプライベート IP アドレスを使用していると思いますので、NAPT によるインターネット接続を可能にする でお話しした NAPT の設定も併せて必要になってくる場合が多いとおもいます。

また、パケットフィルターを調整して内部(例えば eth0)と ppp0 との通信が適切に行えるようにしたりといった配慮も必要となるかもしれません。