物好き者

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

スポンサーサイト

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

PageTop

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

LaFonera純正ファームにインストールしたpppoe-client_3.5-1_mips.ipの設定を調整しました。

PPPoEを接続するとDNSが変更されますが、切断後にDNSの設定が元に戻らないため、インターネット接続ができなくなります。
adsl-connectスクリプトを確認すると、次のようになっていて、DNS設定である/etc/resoolv.confを保存していません。
# Jigger DNS if required...
if test "$DNSTYPE" = "SERVER" ; then
# Sorry, dude...
rm -f /etc/resolv.conf
ln -s /etc/ppp/resolv.conf /etc/resolv.conf
elif test "$DNSTYPE" = "SPECIFY" ; then
# Sorry, dude...
rm -f /etc/resolv.conf
echo "nameserver $DNS1" > /etc/resolv.conf
if test -n "$DNS2" ; then
echo "nameserver $DNS2" >> /etc/resolv.conf
fi
fi

このため、rmコマンドによる削除の前に、resolv.confをコピーするコマンドを、2箇所に追加しました。
cp /etc/resolv.conf /jffs/resolv.conf

adsl-stopスクリプトの最後にあるexit 0の前に、resolv.confを退避場所からもどすコマンドを追加しました。
cp /jffs/resolv.conf /etc/resolv.conf

こられの対応で、PPPoEを接続/切断しても問題なくインターネットに接続できます。


つぎに、ルーティングの調整を行います。
フレッツスクウェアに接続するためのルーティングテーブルを追加するようにします。

NTT東日本フレッツ公式:フレッツ・スクウェア|ルーティングアドレス情報にルーティングするべきセグメントがありますので、これを元に次のコマンドで追加してみました。

oute add -net 220.210.194.0 netmask 255.255.255.128 gw PPPoEゲートウェイ
route add -net 220.210.194.0 netmask 255.255.255.128 gw PPPoEゲートウェイ
route add -net 220.210.195.0 netmask 255.255.255.192 gw PPPoEゲートウェイ
route add -net 220.210.195.64 netmask 255.255.255.192 gw PPPoEゲートウェイ
route add -net 220.210.197.0 netmask 255.255.255.128 gw PPPoEゲートウェイ
route add -net 220.210.199.32 netmask 255.255.255.224 gw PPPoEゲートウェイ
route add -net 220.210.199.200 netmask 255.255.255.248 gw PPPoEゲートウェイ
route add -net 220.210.199.160 netmask 255.255.255.224 gw PPPoEゲートウェイ
route add -net 220.210.199.192 netmask 225.225.225.224 gw PPPoEゲートウェイ
route add -net 220.210.196.0 netmask 225.225.225.128 gw PPPoEゲートウェイ
route add -net 220.210.196.128 netmask 225.225.225.192 gw PPPoEゲートウェイ
route add -net 220.210.199.64 netmask 255.255.255.240 gw PPPoEゲートウェイ
route add -net 220.210.198.0 netmask 255.255.255.192 gw PPPoEゲートウェイ

しかし、エラーが出て下記3つが追加できませんでした。
220.210.199.192
220.210.196.0
220.210.196.128

フレッツスクウェアの表を見直すと、ネットマスクが225.225.225.xxxとなっています。
220.210.199.192 225.225.225.224
220.210.196.0 225.225.225.128
220.210.196.128 225.225.225.192

ネットマスクを255.255.255.xxxに変更したところ、問題なくルーティング情報が追加できました。

ただ、このスクリプト使用する場合、PPPoEゲートウェイIPが変わるたびに修正する必要があります。
このため、gw PPPoEゲートウェイ とするのではなく、インターフェースを指定するようにした/jffs/flets.routeを作成しました。
route add -net 220.210.194.0 netmask 255.255.255.128 ppp0
route add -net 220.210.194.0 netmask 255.255.255.128 ppp0
route add -net 220.210.195.0 netmask 255.255.255.192 ppp0
route add -net 220.210.195.64 netmask 255.255.255.192 ppp0
route add -net 220.210.197.0 netmask 255.255.255.128 ppp0
route add -net 220.210.199.32 netmask 255.255.255.224 ppp0
route add -net 20.210.199.200 netmask 255.255.255.248 ppp0
route add -net 220.210.199.160 netmask 255.255.255.224 ppp0
route add -net 220.210.199.192 netmask 255.255.255.224 ppp0
route add -net 220.210.196.0 netmask 255.255.255.128 ppp0
route add -net 220.210.196.128 netmask 255.255.255.192 ppp0
route add -net 220.210.199.64 netmask 255.255.255.240 ppp0
route add -net 220.210.198.0 netmask 255.255.255.192 ppp0


LaFoneraからフレッツスクウェアに対する通信はできるようなったのですが、PCからフレッツスクウェアへ通信ができません。
adsl-setupを再実行して、The firewall choices are:
 でMASQUERADEを選択してみました。
しかし、adsl-startを実行するとタイムアウトしてしまいます。adsl-connectを実行すると、次のエラーが出ていました。
/usr/sbin/adsl-connect: .: 193: Can't open /etc/ppp/firewall-masq

rp-pppoeのパッケージに/etc/ppp/firewall-masqが含まれていないので、touchでファイルを作りましたが、PCからは通信ができないままです。
iptableの設定を見ると、MASQUERADEは設定されています。ただ、PPPoE接続によるppp0インターフェース追加に対して、設定の変更がされないためだと考えました。

このため、常時接続 linux firewall routerの設定 その2のiptable設定のうち、#eth0,1から ppp0へ向けてのパケットは許可 と # LANから外に出て行くパケットの送信元IPを書き換え を参考に下記を追加したところ、PCから通信ができるようになりました。
iptables -t nat -A POSTROUTING -s LAN側IP -o ppp0 -j MASQUERADE
iptables -A FORWARD -i ath1 -o ppp0 -s 192.168.10.1/24 -j ACCEPT

このコマンドを/etc/ppp/firewall-masqに追加しましたが、通信ができません。adsl-connectの中で/etc/ppp/firewall-masqを実行するのが、PPPoE接続前のため、ppp0インターフェースが無いためです。
このため、pppoe.confのFIREWALLをNONEに変更し、adsl-startスクリプトの$TTY_S && $ECHO " Connected!"
の次に下記を追加し、PPPoE接続後にfirewall-masqを実行するようしました。
. /etc/ppp/firewall-masq
. /jffs/flets.route

ただ、adsl-start/asl-stopコマンドを繰り返すと、iptableにこの設定が何度も追加されることになりますので、firewall-masqで追加されたiptableの設定を、adsl-stopを実行したときに削除するようにします。
iptables -t nat -D POSTROUTING -s LAN側IP -o ppp0 -j MASQUERADE
iptables -D FORWARD -i ath1 -o ppp0 -s 192.168.10.1/24 -j ACCEPT

これでフレッツスクウェアに接続できるようになりました。

スポンサーサイト

PageTop

コメント


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

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