- PR -

TCPチェックサムエラーの発生について

投稿者投稿内容
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-07-14 09:37
オートネゴでうまくいくものを、わざわざ片方だけ固定に設定する要件が何かあるのでしょうか?
それで、解決じゃだめ?

また、STRATUS は半二重で通信を行う仕様であれば、SW-HUB を全二重固定にしているのがそもそも間違いでは?

なんか、特殊な要件または、再現試験を行なわなくてはいけない理由があるのでしょうか?


Catalyst2950 と Catalyst4507 での仕様ですが、これはなんともって感じです。

私は、Catalyst 4507 なんて、高価なものは触ったこともないので、、、

ただ、スイッチング方式が、ストアアンドフォーワードか、カットスルーかは調べてみてもいいかもしれません。
最近、よくある SW-HUB はストアアンドフォワードなんでエラーパケットは転送しないみたいですが、カットスルーだと、エラーパケットもしますよね。

最近のほとんどの SW-HUB はストアアンドフォーワードですが、いい SW-HUB はストアアンドフォワードと、カットスルーを組み合わせるなんて話も聞いた事があります。
Wind
ベテラン
会議室デビュー日: 2004/11/10
投稿数: 73
投稿日時: 2006-07-14 10:48
こんにちは。

なにが問題なのか、ちょっと判り辛いのですが^^;

まず、

> そもそもですが、STRATUS=AUTO、SW=10M全二重固定とした場合、(STRATUSメーカサ
> イドの回答として)STRATUSは10M半二重で通信を行う仕様である、というのが前提と
> なっています

ですが、これStratusの仕様じゃなくて、Ethernetの仕様ですよね?
詳しくはIEEE 802.3u参照の事。もしくはこのへんの過去スレ

> 2.Catalyst2950 と Catalyst4507 でダメパケットに対する処理が違うとか、、
性能差はあれども、基本的には同じです(WS-C4000シリーズだと、話は違うのですが)。

Duplex Unmatchの場合、Trafficが混んでいない場合や片方向のTrafficの場合、症状がでないのが特徴です(だから判り辛いのですが)。
再現実験を行いたいのであれば、Server2台並べて双方向で負荷をかけてやる必要があるかとおもいます。
あと、当該障害が発生しているWS-C4507RのStratusが接続されているPortのsh intや、WS-C4507Rのlogなんかを確認するのが、切り分けの近道かもしれません。

# WS-C4507RのInterfaceの状態とWS-C2950のInterfaceの状態の比較も有効かも。

以上、何かの参考になれば

# Link先URLが間違っていたので修正

[ メッセージ編集済み 編集者: Wind 編集日時 2006-07-14 10:49 ]
kuro
会議室デビュー日: 2006/07/13
投稿数: 7
投稿日時: 2006-07-14 12:37
わちゃ様、引き続きありがとうございます。

顧客要件としてStratus - SW間を10Mで固定する必要がある(将来、Stratus - SW間に10Mまでしか対応していない機器が入る予定のため)のですが、AUTOにすると1000Mでネゴされてしまうため、固定設定としています。

AUTO-全二重固定としていることがそもそもの誤りであることはいろいろ調べた結果間違いないと確信しているのですが、顧客を納得させるために、開発環境での再現→設定変更→問題解消というプロセスを見せる必要があり、まず再現を試みているところです。
(何が問題点かが判り難くなっていると思いますので、この後で整理します)

S&F、カットスルーについては、ご指摘のとおり、2950と4507Rで差があるかを確認してみようと思います。ありがとうございます。

Wind様、書き込み感謝致します。

ごちゃごちゃ書きすぎて私の疑問点が判りづらくなったため、整理します。以下、経緯です。

・本番環境でトレース採取の結果、CRCエラーフレームが多く採取された。

・調査の結果、Stratus=AUTO、SW=10M固定設定であることが判明。また、トレース解析の結果、CRCエラーが契機となり、アプリケーション側がデータ送信不能に陥っている可能性が高いことが判明。

・Stratus=10M固定にすることにより問題解決することを証明するため、まずは開発環境でAUTO-10M全二重固定として再現を行う。その結果、トレース上ではCRCエラーフレームが採取されなかった。また、Stratus側でコリジョン発生も検出できなかった。
【疑問1:本番環境と同じAUTO-全二重固定設定で事象が再現しないのは何故か?】

・本番環境ではDuplex Unmatchが発生していたと仮定し、Stratus=10M半二重、SW=10M全二重で試験を行った結果、Stratus側でコリジョンを検出できたが、トレース上ではCRCエラーフレームを採取できなかった。
【疑問2:Duplex Unmatchで本番同等の高負荷をかけてもCRCエラーが発生しないのは何故か?】

【疑問1】については、Stratus側の仕様にかかわると思うので、こちらでもう少し調査を継続します。Wind様に指摘頂いた過去ログでは、AUTO設定の挙動があやしい場合もあるとのことですので、手順によってはAUTOでも全二重になるケースがあるのではないかと考えています。

【疑問2】について、原因として考えているのは、
(1)CRCエラーは発生しているが、アナライザが拾えてないのではないか。または、本番SWと開発SWによって、欠損フレームの扱いが異なるのではないか。
(2)NIC、ケーブルの不良により、CRCエラーが発生しているのではないか。
があります。

(1)については、Windさん指摘のとおり、SW側のsh intコマンドによってCRCエラー発生が確認できると理解しましたので、試してみようと思います。コマンド上は発生しているにもかかわらずトレースに乗っていないのであれば、アナライザの設定やSWの仕様などを疑うことができると思います。

(2)について、(1)でCRCエラー発生が確認できなかった場合、本番機の同一NICを仕様して同様の試験を行おうと思います。それで発生した場合は、ハードに問題があると判断できると思います。

以上、皆様のご指摘を元に、今後の調査方法を考えてみました。
なにか誤解している点などあれば、改めてご指摘下さい。

最後に質問です。
>WS-C4507RのInterfaceの状態とWS-C2950のInterfaceの状態の比較も有効かも。

ここでおっしゃっている「状態の比較」とは、具体的にはどのような手順を踏むことを指しているのでしょうか?

以上、宜しくお願い致します。m(_ _)m
Wind
ベテラン
会議室デビュー日: 2004/11/10
投稿数: 73
投稿日時: 2006-07-14 16:02
すみません、色々と裏取りしていて遅くなりました。

・【疑問1】【疑問2】に関して
手持ちのCatalystで実験してみました(さすがにWS-C4500は調達できなかったので、WS-C2924ですが)。
Node側(IBM Note)をAutoに設定してWS-C2924側をいろいろといじくったのですが、WS-C2924側をSpeedのみ10Baseに固定して、DuplexをAuto設定にすると10/Fullでネゴシエーションしますね。
検証環境のWS-C2950はSpeed 10、Duplex Fullコマンドははいっていますか?
Speed 10のみだと、上記のように10/Fullでネゴシエーションしてしまいます。
また、Duplex Unmatchの状態においてもCRCエラーが観測されない場合があります。
ここでご質問の比較の話になりますが、他方ではCRCエラーが観測され、他方では観測されなかった場合、複合障害が発生している可能性もあります。ケーブル不良、ノイズなども疑った方がいいかもしれません。

また、エラーフレームが拾えるか、というお話ですが、どのような形でキャプチャされているかわからないのでなんともいえないのですが、SPAN Portを設定してキャプチャされている場合、エラーフレームが拾えないのは仕様です。着信パケットがバッファに入ったタイミングでパケットを複製してSPAN Portに転送する仕掛けになっていたはずなので、バッファに入る前にドロップされてしまえば当然の事ながらSPAN Portでは拾う事ができません。
ですので、SPAN Portによるキャプチャでエラーフレームが観測できなかったといって、エラーフレームがないと断言するのは非常に危険です。必ずsh intやsh controller ethernet-controller等でステータスを確認してください。

以上、何かのご参考になれば
BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2006-07-14 18:07
割り込み失礼します。
詳細環境になると弱いので、このスレッドにはコメントしないつもりでしたが、
途中の過去スレで紹介された続き部分、・・・便乗質問です。

引用:

Windさんの書き込み (2006-07-14 16:02) より:
手持ちのCatalystで実験してみました(さすがにWS-C4500は調達できなかったので、WS-C2924ですが)。
Node側(IBM Note)をAutoに設定してWS-C2924側をいろいろといじくったのですが、WS-C2924側をSpeedのみ10Baseに固定して、DuplexをAuto設定にすると10/Fullでネゴシエーションしますね。


この部分ですが、node側の特性によっても変化する可能性があると考えたほうが
良いのでしょうか?
→ 基幹SWに直接接続しているnode(主としてサーバ類)の約半数程度は速度を
  固定しないautoの状態です。対して基幹SW側は全て100full固定です。
  現状では特に問題になっていませんが、このまま放置でよろしいか、アドバイス
  願えると幸いです。
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-07-14 21:14
フレームエラーを捉えているのは、SW-HUB 経由ですよね?

STRATUS と SW-HUB の間にリピーター HUB を入れて調べてみてはいかがでしょうか?

あと、ネゴシエーションの問題であるとすると、中間機器を入れるとまた様子が変わってしまいそうな気が、、、



BackDoor さんの auto と固定の組み合わせって、なんかたまに相性問題があったりとかって噂を聞きます。

私も、auto と固定の組み合わせでトラブルがあって、どっちも固定にしたことがあります。ただ、その時は、機械のそばでノイズのひどい線だったので、あまり参考にならないかもしれませんが、それをやってちょっとだけ改善した気がします。

結局、その後で、配線、HUB、ケーブルを全部入れかえをやらなくてはいけなくなったので気休め程度かもしれません。

まぁ、どっちも固定か、どっちも auto かがいいかという噂は聞くかなって程度です。

kuro
会議室デビュー日: 2006/07/13
投稿数: 7
投稿日時: 2006-07-14 23:20
Wind様:

>検証環境のWS-C2950はSpeed 10、Duplex Fullコマンドははいっていますか?

SW側は我々の管理外になってしまうので自分で確認はできないのですが、担当者が言うにはSpeed, Duplexとも設定しているとのことです。

比較の件については、よく理解できました。実際、開発と本番で同一条件の試験を行ってみようと思います。

たびたびすいません、また質問ですが、

>Duplex Unmatchの状態においてもCRCエラーが観測されない場合があります。

とのことですが、(A)half側でlate collisionを検出、または(B)full側でCRC errorを検出している場合、アナライザが全てのフレームをキャプチャできていれば必ず欠損フレームが観測できるはず、と考えてよいでしょうか?
それとも、(A)だけでは欠損フレームが発生しているとは言い切れないのでしょうか?(さすがに、(B)であれば発生していると考えてよいですよね?)

わちゃ様:

リピータハブの件も、検討してみたいと思います。その方法であれば、確実に全てのフレームをキャプチャできる、と考えられますよね。

余談ですが、中間機器というのは、まったくインテリジェンスの無い中継機器なので(そのくせサポートは10Mまでとか言ってるのですが)、大丈夫・・・だと思います。
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-07-15 13:44
リピーター HUB も、あんまりインテリジェントな感じがしないですけど、それでも通信速度のネゴシエーションには影響を与えますよね。

そういう意味で言ってみました。

そういえば、何年か前に「たこ足 HUB(正式名称不明)」ってのが、あって OA タップのように、LAN の信号を単に二股に分けるだけの電源要らずの HUB(?) がありました。

そこそこ使えるという噂で、ネットワークをモニタリングするときとか、HUB のポートを増やしたいけど、電源の確保が面倒な時を想定して買ってみたんですが、結局使わずにどこかに行ってしまいました。

今回みたいなネゴシエーションが絡んでいる問題の時は便利だったかもしれないですね。

スキルアップ/キャリアアップ(JOB@IT)