• ベストアンサー

STP

スパンニングツリープロトコルでループ構成を作ったのですが、ポートがどれもブロッキングされずに全てフォワーディング状態のままなんです。 STPを正しく動作させる為にアドバイスなどありましたらよろしくお願いします。 ・試験的に構成を組んだのでPCは2台でループ構成にしてます。 ・それぞれのポートは、通信できています。 ・OSはREDHAT Linuxです。 ・カーネルは2.4.12です。 (カーネルに関しては、2.4.22まで試してみましたがダメでした。カーネル再構築等もやりました) ここを調べてみたら? などでも結構ですのでよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • zenzen99
  • ベストアンサー率40% (165/405)
回答No.1

こんにちわ。 お風呂に入りながらのんびり考えてみました。 まず2台でループを起こせるか考えてみました。 デフォルトゲートウェイを設定して知らないアドレスへパケットを飛ばしたら回りそうです。 Host1(LAN1) → Host2(LAN1)<=ゲートウェイアドレス Host2(LAN2) → Host1(LAN2)<=ゲートウェイアドレス これ以外のセグメントが接続されていないという前提であればこれでループを起こせます。 逆に言うとゲートウェイがないとループは起こらない気がします。 存在しているセグメントは2つだけ。お互いのホストは存在しうるセグメントを全て所持している。ってことは行き先によって出る口が絶対的に決まってしまうので、知ってるセグメント宛てのパケットは迷わず相手まで届くし、知らないセグメント宛てのパケットは外へ出ていきません。 あとはOSの動きで制御されないかだけなので回っているかどうかを見るためにシェアードハブなんぞを用意してパケットをキャプチャしてみるのもいいと思います。あぁでもサーバで直接キャプチャしても取れるから別にいらないかな? あとループを見やすくするために個人的に3台構成をオススメします。よく参考書等にも載ってますが、やっぱり三角形がわかりやすいと感じます。 Host1 - Host2 (セグメント1) Host1 - Host3 (セグメント2) Host2 - Host3 (セグメント3) とするとHost1からセグメント3へ通信をするにはパケットはどこへ飛ばしますか?セグメント3にぶら下げたパソコンからHost1へPingを飛ばすとどこへ行きますか?ってことを考えると結構ループの原理がわかりやすいしスパニングツリーの動きも見やすいんじゃないかなぁと思います。 もし2台の間でやるのであればスイッチなどで1つのVLANを2つ(以上)のインタフェースに割り当てて行き先を同一のスイッチにする、ってやるとあっという間にループを作れます。要は「同一セグメントで複数経路を作る」とお手軽ループを作れます。逆に別々のセグメントを作ってループを行うってなるとL3レベルになるので結構めんどくさいかもしれませんね。 長文の上、ごちゃごちゃな文章でごめんなさい。

f_attck
質問者

お礼

御回答ありがとうございました。 今日、一日がんばった結果なんとか問題の焦点がしぼれてきました。環境は、PC2台のループ。それぞれにブリッジを配置してゲートウェイはありません。 結果としては、非ルートブリッジ側の片方のポートのdesignated bridgeがルートブリッジを指さずに自分をさしていました。そのethは透過モード(0.0.0.0)でupしていました。 ethに焦点を当てて調べていくとメーカ配布のドライバでは動作せず、カーネルに組み込まれているドライバを使用して、なおかつ透過モードではなくIPをふってupするとSTPが正常に動作しました。 現状はここまでなんですが、がんばって勉強しながらやっていきます。