>>
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