" /> フレッツ・スクウェア - マルチセッション

フレッツ・スクウェア & ISP - マルチセッション

フレッツ・スクウェアに関する情報をば探してみる

何はともあれマルチセッション

フレッツ・スクウェア&ISPを同時に接続するマルチセッションではなく、フレッツ・スクウェアだけに接続する...といった話であれば簡単です。が、2カ所同時に接続するとなるとルータ君が困り果てます。「このパケット、どちらに飛ばせばいいんですか?」と。

上位へのルートが複数存在する場合には、ルーティング情報を適切に設定しておかねばなりません。では、どのように設定すれば上記のような問題が発生することなく、同時に接続することができるのでしょうか?

フレッツ・スクウェアのルーティング情報

そもそもフレッツ・スクウェアがISP経由で見られないのが...ま、これはFLETS契約者向けにコンテンツを提供するためでしょうから、ここでとやかく言っても何も解決しません。契約者向けに限られている...ということはフレッツ・スクウェアに割り当てられているIPアドレスはあるネットワーク・アドレスに閉じているかもしれません。閉じてないとするとNTT側のアクセス制御も面倒になるでしょうから...。そうであれば、マルチセッションの設定は非常に簡単に済みます。

フレッツ・スクウェアに割り当てられているIPアドレスを調べてみることにしましょう。ゴッゴルで探すとすぐに見つかります。http://flets.com/square/routing.html。こちらお思惑通りです、しめしめ。

ユーザIDとパスワードは?

ルーティング情報があっても、フレッツ・スクウェアに接続できなければ意味がありませぬ。ユーザID/パスワードについては、ブロードバンドルータ接続方法に記載されていますので、そちらをご確認くだされ。

Linux Boxの設定

/etc/sysconfig/network-scripts/ifcfg-ppp1

フレッツ・スクウェアもISPと同様pppで接続を行いますので、/etc/sysconfig/network-scripts/ifcfg-ppp1を作成します。内容は以下のとおり。

$ cat /etc/sysconfig/network-scripts/ifcfg-ppp1
USERCTL=yes
BOOTPROTO=dialup
DEVICE=ppp1
TYPE=xDSL
ONBOOT=yes
ETH='eth0'
USER='xxxxx@yyyyy'                     # 上記URIに書いているけれども、マスクしています。
DEMAND=no
DNSTYPE=NOCHANGE
USEPEERDNS=no
DEFAULTROUTE=no
CONNECT_TIMEOUT=30
CONNECT_POLL=2
ACNAME=
SERVICENAME=
PING="."
CF_BASE=`basename $CONFIG`
PIDFILE="/var/run/$CF_BASE-adsl.pid"
SYNCHRONOUS=no
CLAMPMSS=1412
LCP_INTERVAL=20
LCP_FAILURE=3
PPPOE_TIMEOUT=80
FIREWALL=NONE
LINUX_PLUGIN=rp-pppoe.so               # PPPoEカーネルモードのため。カーネルモードでなければブランクを設定してください
PPPOE_EXTRA=""
PPPD_EXTRA=""
$

/etc/sysconfig/static-routes-flets

続いて、ルーティング情報の設定です。まず、/etc/sysconfig 上にフレッツ・スクウェア用のルーティング情報ファイルを作成しておきます。内容は以下のとおり。平成17年2月1日現在の情報ですので、最新の情報は上記URIを参照してください。

$ cat /etc/sysconfig/static-routes-flets
pppx net 220.210.194.0   netmask 255.255.255.128
pppx net 220.210.195.0   netmask 255.255.255.192
pppx net 220.210.195.64  netmask 255.255.255.192
pppx net 220.210.199.0   netmask 255.255.255.224
pppx net 220.210.198.128 netmask 255.255.255.192
pppx net 220.210.197.128 netmask 255.255.255.128
pppx net 220.210.199.128 netmask 255.255.255.240
pppx net 220.210.199.160 netmask 255.255.255.240
pppx net 220.210.199.208 netmask 255.255.255.248
$

このファイルをフレッツ・スクウェアに接続する際...言い換えるとppp1インターフェースの初期化の際に読み込ませてしまえばよいわけです。

/etc/ppp/pap-secrets

フレッツ・スクウェアに接続するためのユーザIDとパスワードを追記します。

$ sudo cat /etc/ppp/pap-secrets
# Secrets for authentication using PAP
# client        server  secret                  IP addresses
"xxxxx@yyyyy"   *       "xxxxx"        # 上記URIに書いているけれども、マスクしています。
$

/etc/ppp/ip-up.local

ppp接続をする際、/etc/ppp/ip-upというスクリプトが実行されます。そういうものなのです、覚えてください。このファイルの内容を見てみると、

$ cat /etc/ppp/ip-up
#!/bin/bash

# This file should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead

LOGDEVICE=$6
REALDEVICE=$1

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post ifcfg-${LOGDEVICE}

[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"

exit 0
$

といった具合で、ppp接続後にローカルな処理を実行させたい場合は/etc/ppp/ip-up.localを作成して、そのファイルにいろいろと書きなさい...というわけですな。その仕組みを利用しないわけがありません。そう ip-up.local 内でルーティング設定を行わせればよいわけです。

でわ早速、cat。

$ cat /etc/ppp/ip-up.local
#!/bin/sh
# ip-up.local

# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional ``ipparam'' value foo

DEVICE="$1"
LOCAL_IP="$4"
PEER_IP="$5"

ISP_IP="iii.xxxx.jjj.yyy"        # プロバイダから払い出されるIPアドレス。
                                 # 固定IPでないとこのページに記載された手順をそのまま使用するのは少し難しいかもしれない。

# ISPとのセッションは大抵はppp0で確立するのですが、たまにppp1の時があったりするのです。
# 必ずしも "ppp0=ISP"、"ppp1=フレッツ" とは限らないため、こんなcase文が必要なわけです。
# マニュアル起動では大丈夫ですが、システム起動時はタイミングによっては逆転することがあります。

case "$LOCAL_IP" in
  # ISP IP
  "$ISP_IP")                     # ISPとのセッションの場合には何もしない。
    ;;
  # FLET'S
  *)                             # ISP以外...すなわちフレッツ・スクウェアとの接続に
                                 # 静的にルーティング情報を設定する
    cat /etc/sysconfig/static-routes-flets | while read dev args; do
      /sbin/route add -$args $DEVICE
    done
    ;;
esac
$

最後に...

ppp1インターフェースを起動!

# ifup ppp1
. Connected!
#

ちなみに、この方法でマルチホーミングな環境も構築できるわけです。