|
>>
Router
|
Server By FreeBSD
PPPoE |
|
ppp(8) を利用するための設定を行う。
ppp とは Point to Point Protocol の略で二点間を直接接続するプロトコル。 主に電話線を利用して IP 接続を利用するために利用されてきたが、 最近の aDSL 接続では多くの ISP が PPPoE(PPP over Ethernet) として利用している。
PPPoE は簡単に言うと PPP プロトコルを Ethernet 上を通す事により認証する技術。
ここでは ISP に対して通常の PPPoE 接続をしたまま、 NTT がフレッツユーザ向けに展開しているフレッツスクエアに ppp の接続先を変更しないで接続するためのマルチセッション PPP の設定を行う。
default:、provider:、square: で始まる行は必ず行頭から始め、 それ以外の行は必ず先頭にスペースかタブを入れなければならない。
ルーティング情報は 2009/12/01 現在の情報であり、 変更になる可能性がある。
動作が問題ない場合は 起動時に ppp 接続が開始される様 /etc/rc.conf に以下の設定を追加する。
当初、ppp_mode は ddial を指定していたが、 そうすると ppp 接続が開始される前にバックグラウンドで実行してしまうため ppp で使用する tun デバイスが生成される前に処理が進行してしまうため、 正常にネットワークサービスが提供できなくなってしまう。 そこで、接続開始までは background を指定し 接続が確立した後で ddial を設定する様にする。
作成した起動スクリプトは最近の FreeBSD の流儀を継承した作りなので、 /etc/rc.conf に自動起動するための設定を追加する。
ppp とは Point to Point Protocol の略で二点間を直接接続するプロトコル。 主に電話線を利用して IP 接続を利用するために利用されてきたが、 最近の aDSL 接続では多くの ISP が PPPoE(PPP over Ethernet) として利用している。
PPPoE は簡単に言うと PPP プロトコルを Ethernet 上を通す事により認証する技術。
ここでは ISP に対して通常の PPPoE 接続をしたまま、 NTT がフレッツユーザ向けに展開しているフレッツスクエアに ppp の接続先を変更しないで接続するためのマルチセッション PPP の設定を行う。
設定
設定ファイルは /etc/ppp/ppp.conf を使用する。 このファイルで PPPoE 接続で使用インタフェースや各種オプション、 そして昨今有名になった MTU 等を設定する。
default:
set device PPPoE:インタフェース # PPPoE 接続で使用するデバイス名称
set mru 1438 # MRU(最大受信単位)を 1438 バイト
set mtu 1438 # MTU(最大送信単位)を 1438 バイト
set log Phase tun command # ログ出力項目の設定
accept CHAP # 認証方式は CHAP のみ
enable lqr # Link Quality Requests を使用する
set speed sync # 同期デバイスとして使用
set timeout 0 # アイドルタイマ機能を使用しない
set ctsrts off # ハードウェアフロー制御を off にする
provider:
set authname ユーザID # ISP に接続するための ID
set authkey パスワード # ISP に接続するためのパスワード
add default HISADDR # 接続先を default route に設定する
set mode ddial # 接続後にモードを ddial に設定する
square:
set authname ユーザID # フレッツスクエアに接続するための ID
set authkey パスワード # フレッツスクエアに接続するためのパスワード
nat enable yes # フレッツスクエア宛は ppp の nat 機能を利用する
set server /var/run/square "" 0177
add 220.210.194.0/25 HISADDR # フレッツスクエア宛の静的ルーティング
add 220.210.199.160/27 HISADDR
add 220.210.196.192/27 HISADDR
add 220.210.196.0/25 HISADDR
add 220.210.196.128/26 HISADDR
add 220.210.198.0/26 HISADDR
add 220.210.199.144/28 HISADDR
default:、provider:、square: で始まる行は必ず行頭から始め、 それ以外の行は必ず先頭にスペースかタブを入れなければならない。
ルーティング情報は 2009/12/01 現在の情報であり、 変更になる可能性がある。
ISP への接続
設定を行った後 ppp(8) コマンドを実行して接続動作を確認する。動作が問題ない場合は 起動時に ppp 接続が開始される様 /etc/rc.conf に以下の設定を追加する。
ppp_enable="YES" # ppp を有効にする ppp_mode="background" # ppp は background モードで実行 ppp_profile="-unit0 provider" # 使用するプロファイルを指定 ppp_nat="NO" # ISP 接続では ppp による nat は使用しない。
当初、ppp_mode は ddial を指定していたが、 そうすると ppp 接続が開始される前にバックグラウンドで実行してしまうため ppp で使用する tun デバイスが生成される前に処理が進行してしまうため、 正常にネットワークサービスが提供できなくなってしまう。 そこで、接続開始までは background を指定し 接続が確立した後で ddial を設定する様にする。
フレッツスクエアへの接続
/usr/local/etc/rc.d/square を作成し、 起動時に自動接続される様に設定する。
#!/bin/sh
#
# PROVIDE: square
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable connectiong flets square:
# square_enable (bool): Set it to "YES" to enable connecting flets square
# Default is "NO".
# square_flags (str): Set to "" by default.
# Extra flags passed to ppp
#
. /etc/rc.subr
name="square"
rcvar=`set_rcvar`
command="/usr/sbin/ppp"
pidfile="/var/run/square.pid"
load_rc_config $name
: ${square_enable="NO"}
: ${square_flags=""}
run_rc_command "$1"
作成した起動スクリプトは最近の FreeBSD の流儀を継承した作りなので、 /etc/rc.conf に自動起動するための設定を追加する。
square_enable="YES" # square 接続を有効にする square_flags="-ddial -unit1 square" # 使用するプロファイルを指定
フレッツスクエアのルーティング
フレッツスクエアのルーティング情報は フレッツスクエアのサイト にて確認できるが、 フレッツスクエアに接続した後だと http://routing.flets/routing.html から 多少加工に適したフォーマットにて取得可能なので、 以下のスクリプトを利用して /etc/ppp/ppp.conf 形式のルーティング情報を自動生成できる。
#!/usr/bin/perl
if(open(IN, "fetch -q -o - http://routing.flets/routing.html|")){
while(<IN>){
if(/^Route.*Add,(\d+.\d+.\d+.\d+),\d+.\d+.\d+.(\d+).*/){
for($n = $2, $m = 24; $n & 0x80; $n <<= 1){
$m++;
}
print "$1/$m\n";
}
close(IN);
}
Copyright © 2007-2010 Mitzyuki IMAIZUMI,
All Rights Reserved.
Last Update: 4 Feb. 2010