最近フレッツでは2つ同時に接続出来るマルチセッションに対応している
これを利用して1つは従来通りのプロバイダー、もう一つをフレッツ網に接続をトライして見る
条件として
・FirewallはIPFを使用の事
・固定IPで有る事
・ipnatを使用
・bindを使用
とします。
特にインストールするソフトは無いので、設定に入る
設定ファイルは以下のとおりです
/etc/ppp/ppp.conf を編集する (注)行頭のスペースは半角で必ず必要
設定情報: ユーザーパス ルーティング
default: set device PPPoE:Exl0 #WAN側のtun0デバイスに割り当てるIFカードを指定 set MRU 1454 set MTU 1454 set log Phase Chat LCP IPCP CCP tun command set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 set ctsrts off # add default HISADDR # Add a (sticky) default route #今までは全てでしたが条件によって分けるのでここでは指定しない accept PAP #CHAPの方はCHAOにする # enable dns #DNSは自前のBINDを使用するので入れない square: #フレッツ接続項目 set authname guest@v4flets-east.jp set authkey guest add 123.107.190.0/24 HISADDR add 220.210.194.0/25 HISADDR add 220.210.198.0/26 HISADDR set server /var/run/square "" 0177 dion: #自分のプロバイダー設定 set authname **********@bda.dion.ne.jp #ユーザー set authkey ******* #パスワード add default HISADDR #square以外のはこちらを通る形になる、かならず後に書くこと set server /var/run/asahi "" 0177 #pid指定
/etc/ipf.rules で以下のように700と800を追加
編集したら反映させる。
#################################################
# incomming (group 500) Flets Square tun1
#################################################
pass in on tun1 all head 700
・
・
以下省略、オリジナルはグループ100を引用する
・
・
#################################################
# out going (group 600) Flets Square tun1
#################################################
pass out on tun1 all head 800
・
・
以下省略、オリジナルはグループ200を引用する
・
・
# ipf -Fa -Z -f /etc/ipf.rules
/etc/ipnat.rules を下記のように修正
反映は
map tun0 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp
map tun0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto
map tun0 192.168.0.0/24 -> 0/32
map tun1 192.168.0.0/24 -> 0/32 portmap tcp/udp auto
map tun1 192.168.0.0/24 -> 0/32
で反映させる。
# ipnat -CF -f /etc/ipnat.rules
/etc/rc.conf のppp部分
ppp_enable="YES" #もちろんYes
ppp_mode="ddial" #ここも変らず
ppp_profile="dion" #接続先
ppp_nat="NO" #pppのnatではなくipnatを使用するのでここはNo
/usr/local/etc/rc.d/square.sh を新規作成
これがあれば、自動で接続してくれます
#! /bin/sh ENTRY=square PORT=/var/run/square case "$1" in start) /usr/sbin/ppp $ENTRY > /dev/null && echo -n " PPP" ;; stop) /usr/sbin/pppctl $PORT quit all ;; restart) /usr/sbin/pppctl $PORT close ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 exit 64 ;; esac exit 0
あとは名前解決が必要になるのでresolv.confにflets側のDNSを追加します
/etc/resolv.conf
fletsのDNSはこちら
#search miyakoshi.mydns.jp nameserver 127.0.0.1 nameserver プロバイダーのDNS1 nameserver プロバイダーのDNS2 nameserver 123.107.190.7 nameserver 123.107.190.8 options edns0
クライアントPCも解決できるようdhcpサーバーから伝えるDNSサーバーに追加する。
/usr/local/etc/dhcpd.conf
そしてdhcpサーバーを再起動し反映しておく。
option domain-name-servers 192.168.0.1, プロバイダーのDNS, 123.107.190.7, 123.107.190.8;
記入ミスが無ければ再起動すれば接続します。
もしくは手動でsquare.shを実行して接続します。
接続状態をifconfigで確認して見ましょう。
このようにtun2がフレッツ網になればOKです。
# ifconfig 中略 tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1454 options=80000<LINKSTATE> inet 114.193.***.*** --> 123.107.192.*** netmask 0xffffff00 groups: tun nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> Opened by PID *****
あとはルーティングがちゃんと行っているか確認する
このようにtun2がフレッツ網の時使用されると言う形になればOKです
$ netstat -rn -finet Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default ***.***.***.*** UGSc 11 448909 tun0 中略・・・ 123.107.190.0/24 123.107.192.247 UGS tun1 123.107.192.247 link#6 UHS tun1 220.210.194.0/25 123.107.192.247 UGS tun1 220.210.198.0/26 123.107.192.247 UGS tun1
さて。これでうまくいくはずですので、まずはnslookupなどでwww.fletsなどを調べて見てください
ちゃんと帰って来ればあとはブラウザで開いて見れば問題無いはずです