物好き者

物好き者が行ったことを載せています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

DD-WRTでのPPPoEマルチセッションへの挑戦17

DD-WRTでのPPPoEマルチセッションへの挑戦13 で、options.pppoeでnodefaultrouteを設定することで、PPPoE接続時にデフォルトルートが追加されない、と書きました。

しかし、テストを続けていくとデフォルトルートが追加される現象が発生しました。
どうやら/tmp/ppp/ip-upのなかで、デフォルトルートの追加を行っているようです。このため、options.pppoeでnodefaultrouteを設定していても、デフォルトルートが追加されてしまうようです。

また、pppインターフェースを経由したNATの設定を、次のように設定しました。
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
ppp+とすることで、pppを含むインターフェース名のものが全て対象となります。また、PPPoE接続前のpppインターフェースが無い状態でも設定が出来て、マルチセッション時にひとつの設定ですみます。

しかし、この設定がPPPoE接続時に消えてしまう現象が発生しました。
どうやら/tmp/ppp/ip-upのなかで、iptableの設定を読み込みなおしているようです。

PPPoE接続時にip-up・ip-up.local・ip-up.dディレクトリ以下のスクリプトなどが動作するそうですが、DD-WRTのip-upはバイナリファイルのため、簡単に調整することが出来ません。
テストしたところ、DD-WRTのip-upが無くてもPPPoEの接続や再接続は、問題ないようです。

このため、DD-WRTのip-upを使わないことで、デフォルトルートの追加をする・しないをoptions.pppoeファイルで指定できて、iptableの設定が変更されてしまうことが無くなります。

フレッツスクウェアへのルートの追加は、ip-upスクリプトの中でルーティング用インターフェースの判定を行い、自動的に追加できるようにします。

DETROIT.DDO.JP - Linux Tips
 DebianでフレッツADSLをマルチセッション の ルーティング設定の自動化 を参考に作成しました。

まず、PPPoE接続時にip-upスクリプトに渡される環境変数を調べました。
export DEVICE='vlan1'
export IFNAME='ppp1'
export IPLOCAL='172.27.207.173'
export IPREMOTE='220.210.221.14'
export ORIG_UID='0'
export PPPD_PID='539'
export PPPLOGNAME='root'
export PWD='/'

IPREMOTEがPPPoE接続先のIPですが、220.210であればフレッツスクェアと考えて、このインターフェースにフレッツスクェア向けのルーティングテーブルを追加するようにしました。


#! /bin/sh

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

cp /jffs/ppp/resolv.dnsmasq /tmp/

export SUBNET=`echo $IPREMOTE | cut -d. -f1,2`

if [ $SUBNET == 220.210 ]
then
route add -net 220.210.194.0 netmask 255.255.255.128 $IFNAME
route add -net 220.210.194.0 netmask 255.255.255.128 $IFNAME
route add -net 220.210.195.0 netmask 255.255.255.192 $IFNAME
route add -net 220.210.195.64 netmask 255.255.255.192 $IFNAME
route add -net 220.210.197.0 netmask 255.255.255.128 $IFNAME
route add -net 220.210.199.32 netmask 255.255.255.224 $IFNAME
route add -net 220.210.199.200 netmask 255.255.255.248 $IFNAME
route add -net 220.210.199.160 netmask 255.255.255.224 $IFNAME
route add -net 220.210.199.192 netmask 255.255.255.224 $IFNAME
route add -net 220.210.196.0 netmask 255.255.255.128 $IFNAME
route add -net 220.210.196.128 netmask 255.255.255.192 $IFNAME
route add -net 220.210.199.64 netmask 255.255.255.240 $IFNAME
route add -net 220.210.198.0 netmask 255.255.255.192 $IFNAME
fi


これにより、PPPoE接続時のNAT設定・フレッツスクウェアへのルーティング自動追加が行えるようになりました。

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。