" />
[HOME]
フレッツ・スクウェア&ISPを同時に接続するマルチセッションではなく、フレッツ・スクウェアだけに接続する...といった話であれば簡単です。が、2カ所同時に接続するとなるとルータ君が困り果てます。「このパケット、どちらに飛ばせばいいんですか?」と。
上位へのルートが複数存在する場合には、ルーティング情報を適切に設定しておかねばなりません。では、どのように設定すれば上記のような問題が発生することなく、同時に接続することができるのでしょうか?
そもそもフレッツ・スクウェアがISP経由で見られないのが...ま、これはFLETS契約者向けにコンテンツを提供するためでしょうから、ここでとやかく言っても何も解決しません。契約者向けに限られている...ということはフレッツ・スクウェアに割り当てられているIPアドレスはあるネットワーク・アドレスに閉じているかもしれません。閉じてないとするとNTT側のアクセス制御も面倒になるでしょうから...。そうであれば、マルチセッションの設定は非常に簡単に済みます。
フレッツ・スクウェアに割り当てられているIPアドレスを調べてみることにしましょう。ゴッゴルで探すとすぐに見つかります。http://flets.com/square/routing.html。こちらお思惑通りです、しめしめ。
ルーティング情報があっても、フレッツ・スクウェアに接続できなければ意味がありませぬ。ユーザID/パスワードについては、ブロードバンドルータ接続方法に記載されていますので、そちらをご確認くだされ。
フレッツ・スクウェアも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 上にフレッツ・スクウェア用のルーティング情報ファイルを作成しておきます。内容は以下のとおり。平成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インターフェースの初期化の際に読み込ませてしまえばよいわけです。
フレッツ・スクウェアに接続するためのユーザIDとパスワードを追記します。
$ sudo cat /etc/ppp/pap-secrets # Secrets for authentication using PAP # client server secret IP addresses "xxxxx@yyyyy" * "xxxxx" # 上記URIに書いているけれども、マスクしています。 $
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! #
ちなみに、この方法でマルチホーミングな環境も構築できるわけです。