【トラブル】 Ciscoルータでフレッツ光プレミアムに接続できない事象
■(今日のテーマ)Ciscoルータでフレッツ光プレミアムに接続できない事象
島田君:
マスター、今夜も助けて欲しいことがあるんだよ。
マスター:
いいよ。どうした?
島田君:
昨日、NTT西日本のフレッツ光プレミアムを使ってVPNを構築する案件の工事だったんだけどさ。
別の拠点では問題なく接続できていたコンフィグなのにPPPoEのセッションが張れなかったんだよ。
色々と頑張ってみたけど接続できなくて、工事は延期になっちゃった。
マスター:
接続機器は何を使っているの?
島田君:
Cisco 1812Jだよ。
マスター:
Cisco1812Jのコンフィグは何か参考にして作成したの?
島田君:
Ciscoのサイトにある『Cisco1812Jのサンプルコンフィグ』。
マスターが好きなCisco VTIを使って設計してみたんだ。
サンプルコンフィグの中の、ip mtu 1454を、フレッツ光プレミアムのMTUサイズである1438に変更すれば良いと思ったんだけどね。
具体的にはDialerインタフェースの中のこの部分。
↓
!
interface Dialer1
ip unnumbered Loopback0
ip mtu 1454 → 1438に変更
encapsulation ppp
dialer pool 1
dialer-group 1
ppp authentication chap callin
ppp chap hostname Flet's@cisco.com
ppp chap password 0 cisco
!
マスター:
問題なく接続できていた別の拠点も、回線はフレッツ光プレミアムだったの?
島田君:
違うよ。
Bフレッツのファミリー100だよ。
マスター:
ほほー。
原因がわかったよ!
島田君:
まじで?
教えてー。
マスター:
同じトラブルを4、5件相談に乗ったことがあるよ。
原因はMTUおよびMRUの設定方法にある。
島田君:
フレッツ光プレミアムのMTUサイズ1438byteに合わせてip mtu 1438とするだけじゃだめなの?
マスター:
そうなんだ。
Cisco ルータはip mtuコマンドでMTUを設定すると、MTU値は設定変更できるけど、MRU値は1500byteのまま変更されないので不具合が生じるよ。
具体的には、デバッグを取るとこのようになる。
※PPPoEのディスカバリーステージからセッションステージに移行した直後
*Mar 29 00:26:22.415: Vi1 LCP: I CONFREQ [ACKrcvd] id 66 len 19
*Mar 29 00:26:22.415: Vi1 LCP: MRU 1438 (0x0104059E) ←網側からMRU=1438の提案を受ける
*Mar 29 00:26:22.415: Vi1 LCP: AuthProto CHAP (0x0305C22305)
*Mar 29 00:26:22.415: Vi1 LCP: MagicNumber 0x101AD28C (0x0506101AD28C)
*Mar 29 00:26:22.415: Vi1 LCP: O CONFNAK [ACKrcvd] id 66 len 8 ←Ciscoは拒否している
*Mar 29 00:26:22.415: Vi1 LCP: MRU 1500 (0x010405DC) ← MRU=1500
*Mar 29 00:26:22.419: Vi1 LCP: I CONFREQ [ACKrcvd] id 67 len 19
*Mar 29 00:26:22.419: Vi1 LCP: MRU 1438 (0x0104059E) ←再度、網側からMRU=1438の提案が来る
*Mar 29 00:26:22.419: Vi1 LCP: AuthProto CHAP (0x0305C22305)
*Mar 29 00:26:22.419: Vi1 LCP: MagicNumber 0x101AD28C (0x0506101AD28C)
*Mar 29 00:26:22.419: Vi1 LCP: O CONFNAK [ACKrcvd] id 67 len 8 ←やはりCiscoは拒否
*Mar 29 00:26:22.419: Vi1 LCP: MRU 1500 (0x010405DC) ← MRU=1500だよ
*Mar 29 00:26:22.419: Vi1 LCP: I TERMREQ [ACKrcvd] id 68 len 4 ← 網側から切断要求が来る
*Mar 29 00:26:22.419: Vi1 LCP: O TERMACK [ACKrcvd] id 68 len 4 ← Ciscoはそれを受け入れる
*Mar 29 00:26:22.419: Vi1 PPP: Authorization required 、
*Mar 29 00:26:22.419: Vi1 PPP: No remote authentication for call-out
CHAP認証がうまくいかず、セッションが切断される。
YAMAHAルータだと、以下のようにMRU値を明示的に設定するよね。
pp select 1
pp always-on on
pppoe use lan3
pp auth accept pap chap
pp auth myname ID PASS
ppp lcp mru on 1438 ← この部分
ppp ipcp ipaddress on
ppp ccp type none
ip pp mtu 1438
pp enable 1
Ciscoルータの場合、YAMAHAのようにMRUを明示的に設定するコマンドがないんだ。
島田君:
じゃあどうすればいいの?
マスター:
ip mtuコマンドではなく、mtuコマンドで設定すればいいよ。
島田君:
え?そんな単純なことなの?
つまり、ip mtu 1438 ではなくmtu 1438 ?
マスター:
その通り!
島田君:
それで次の工事は試してみるよ。
〜〜 工事後 〜〜
島田君:
マスター、無事に接続できて開通できたよ。
ありがとう!
助かった。
マスター:
よかったね。
島田君:
でも、なぜBフレッツ ファミリー100の場合は大丈夫だったのかな?
マスター:
デバッグを取るとわかるけど、Bフレッツの場合も同様に網側とのMRUのネゴシエーションは失敗しているんだ。
それでもBフレッツの場合は光プレミアムと違って網側から切断要求が来ないから、たまたまうまくいってるだけと考えることができる。
島田君:
へー、まじで?
じゃあ、Ciscoのサンプルページもip mtu 1454 を mtu 1454 に修正してもらわないとね。
マスター:
そうだね。Ciscoの知人に話してみるよ。
