RB5009のSFP+ケージに挿したS-RJ01、オートネゴシエーションがincompleteでポートが100Mbpsに張り付く
自宅ラックの話で、RB5009にはSFP+ケージがちょうど1つだけあります。部屋の反対側までファイバを引くのではなく、そこから2本目の銅線ギガビットアップリンクが欲しかったので、代わりに銅線モジュールを挿しました。
- MikroTik RB5009UG+S+IN、RouterOS 7.1rc4
- sfp-sfpplus1に挿したMikroTik S-RJ01 1000BASE-T銅線SFP
- Cat6パッチ、約3m、先はギガビットスイッチ
- そのスイッチの他のポートは全部同じロットのケーブルで1Gフルリンク
ポートは上がりますが100止まりです:
/interface ethernet monitor sfp-sfpplus1
Auto Negotiation: incomplete
Rate: 100Mbps
負荷をかけるとインターフェースにTX/RXのパケットエラーも溜まりますが、内蔵ポートではどれも起きません。
試したこと:
- インターフェースを無効化して再度有効化、何度か。たまに1Gで上がるが、たいていは上がらない
- 別のCat6パッチと対向スイッチの別ポート
- 対向スイッチのポートを1Gフルデュプレックスに固定、こちら側は何も変わらず
これはモジュールの問題でしょうか、SFP+ケージに1Gの銅線モジュールを動かさせていること自体の問題でしょうか、それともRouterOSのリリースの問題でしょうか? あきらめてファイバを引く以外に試すことはあるでしょうか?
Comments 6
ネゴシエーションをやめて固定してください。自分が経験したS-RJ01が不調になったMikroTik機では、どれもこれで安定しました:
それから
/interface ethernet monitor sfp-sfpplus1で読み直してください。なぜこの表示が紛らわしいかというと、ホストのポートと1G銅線SFPの間のレーンは常にSGMIIの1Gビットレートで動いていて、100Mbitはその上で1バイトを10回繰り返すことで運ばれているからです。つまりホストが表示する速度は、モジュール内部の銅線PHYがあなたのスイッチと実際にネゴシエートした速度とは必ずしも一致しません。モジュールの両半分が食い違うこともあり、「incomplete」はホスト側が自分の担当部分をあきらめたという意味です。
注意点が2つあります。こちら側でオートネゴシエーションを切るなら、対向側も1Gbpsフルデュプレックスに固定する必要があります。そうしないとハーフデュプレックスに落ちて、速度の問題をデュプレックスの問題に置き換えるだけになり、診断はそちらのほうが厄介です。あとこれはあくまで回避策だとはっきり理解しておいてください。ベンダー側の修正はないので、そのポートが何か重要な役割を持っているなら、同じケージで別メーカーの銅線モジュールを試す価値もあります。
7.1rc4というのはこちらも同じなので、そこはもう一致しています。むしろ知りたいのは、こちら側がincompleteと言っている間、対向側は何を報告しているかです。そちらも100に見えているのか、それともギガビットリンクだと思っているのか?
聞いているのは、こちらのRB4011iGS+のS-RJ01もよく似た挙動をしているからです。1Gに届くのは時々だけで、しかもポートを無効化して再度有効化した後だけです。何が試行ごとに違いを生んでいるのか結局分からず、その瞬間に対向スイッチを読むという発想もありませんでした。
対向スイッチもこちらと一致していて、やはり100Mbitリンクを表示しています。少なくとも両端が別々の方向に嘘をついているわけではなさそうです。
こちらでも無効化と再度有効化は効きますが、確実ではありません。だいたい4回に1回くらい1Gで戻ってきて、残りは同じ
Auto Negotiation: incompleteの行とともに100Mbpsに落ち着きます。100のときは負荷をかけるとエラーカウンタが増え、まれに1Gで上がったときは動きません。それを一般的なレシピとして扱うのは注意してください。ベンダー自身のこの銅線モジュールのドキュメントには逆のことが書いてあります。S-RJ01とS+RJ10はそもそも動作にネゴシエートされた速度とデュプレックスが必要だと説明されていて、そのページによれば速度を手動で固定したポートはリンクが上がらないはずです。RB5009やRB4011での現場の実態はそれとかなりの頻度で食い違うので、自分ならどちらの言い分も鵜呑みにせず両方試して、自分のハードウェアで安定するほうを使います。
話は変わりますが同じリリースで、CRS318-16P-2S+に挿したS+85DLC03Dが1日に何度もリンクを落とすことがありました。なのでSFPポートの変な挙動を何でも銅線モジュールのせいだと決めつけないほうがいいです。
あとそのケージにS+RJ10を検討することがあれば、消費電力が明らかに大きく発熱もします。追加のエアフローがないパッシブ冷却の筐体では望ましくありません。
もっと古い機材でも同じ種類の苦労をしました。6.45.1のCCR1016-12S-1Sに、Finisar FCLF-8521-3の銅線モジュールを12個挿していて、ルータはなぜかそれをFCMJ-8521-3と表示し続けていました。12個全部がモジュールリストには認識されているのに、1つもリンクしませんでした。Huaweiのスイッチに対しても、直結したノートPCに対してもです。
全ポートを上げたのはこれです:
両方向のフロー制御をオフにしたのが効きました。disable/enableのサイクルも同様で、モジュールは新しい設定でその後にしか再初期化されませんでした。対向側を1Gbpsフルデュプレックスに固定する必要があるという同じ注意点もあり、そうしないとハーフに落ちます。
結果は半分なので、そのまま報告します。オートネゴシエーションをオフにして両端を1Gbpsフルデュプレックスに強制したら、ポートは1Gを維持するようになり、エラーカウンタも止まって、disable/enableの賭けもなくなりました。
それでもまだうまくいかないのは、モジュールに直結していた古い100Mbit機器で、どう設定してもどちら側からもまったくリンクしなくなりました。この区間についてはモジュールと機器の間に小さなギガビットスイッチを挟んで、もう戦うのをやめました。なのでアップリンクとしては使えますが、モジュールが直ったとは言えません。