ネットワークエンジニアを目指して L2ループ対策

初心者にも理解できるネットワーク技術
↓メールマガジン購読はこちら↓

メールアドレス:

ホーム > その他ネットワーク豆知識 > L2ループ対策

L2ループ対策

はてなブックマークに追加はてなブックマークに追加 このエントリーを含むはてなブックマーク
Yahoo!ブックマークに登録 Yahoo!ブックマークでこのサイトを登録している人数 人が登録
この記事をクリップ!

おすすめ書籍紹介

マスタリングTCP/IP 応用編
入門編を卒業したらこちら。
応用編も入門編と同様に豊富な図を使用し、TCP/IPに関するさらに詳細な解説を記している。
特にパッケットの構造はかなり詳細に解説しており、初心者にはすこしつらいかもしれないが非常に読みやすいのでぜひ読んでみてほしい。

詳解TCP/IP〈Vol.1〉プロトコル
これも 必読中の必読書。
TCP/IPアーキテクチャを、実際にネットワークを組んで通信の動きを観察するという方法で書かれている。
本書に構成されているネットワークは単純なので、実際に同じ構成を組んで実機をいじりながら読み進めると非常に効果的に学ぶことが出来ると思います。

 

L2ループ対策

「L2 のループ対策なんて STP を使えば良いんじゃね?」

仰るとおりなのですが、そこで思考を止めてもおもしろくないので、
今回は、STP を使用していたとしてもループが発生してしまう場合と、
そんな時にどんなループ対策があるんでしょうということを
書いてみたいと思います。

 

L2 ループが発生すると

L2 ループが発生する条件は、当然 L2 ネットワークで
ループ構成になっていることが前提。

 

L2ループ構成

 

L2 ネットワークでループ状態になると以下のような問題が発生します。

  • ブロードキャストやマルチキャストフレーム
  • 同一データを複数受信
  • MACアドレステーブルの不安定

 

ブロードキャスト / マルチキャスト

スイッチはブロードキャストやマルチキャストは受信したポート以外の
全ポートにフラッディングします。
それを受信したスイッチは、同じように受信したポート以外の全ポート
にフラッディングします。
さらにそれを受信したスイッチは、同じように受信したポート以外の全ポート
にフラッディングします。
・・・という動作を繰り返すことで、延々とブロードキャストや
マルチキャストのフレームが転送され続けてしまうことを、
ブロードキャストストーム / マルチキャストストームと呼びます。

 

ブロードキャストストーム / マルチキャストストーム

 

ブロードキャストストーム / マルチキャストストームが発生すると、

  • 帯域がブロードキャスト / マルチキャストのフレームで使い切ってしまう
  • スイッチが CPU 負荷がとんでもないことになって正常動作しなくなる
  • スイッチに接続されている端末も通信不能に

 

この問題を解決する方法は言わずとしれた STP を使用すること。
STP については以下で解説しています。
・STP -スパニングツリー-

 

STP 設定していてもループしちゃう場合

社内ネットワークに良くある構成で考えてみます。

 

STPのループ構成

 

上図のように基本的な L2 ネットワークはツリー構成になっています。
ここで末端のハブ同士を誤って接続してしまった場合を考えてみます。

で、通常のコアやアクセススイッチでは STP を有効にしてループが
発生しないようにするわけですが、仮にエッジポートで STP を
停止させている場合。

 

ブロードキャストストーム / マルチキャストストームが発生

 

この場合はループ状態となり、ブロードキャストストーム /
マルチキャストストームが発生してしまいます。

では、エッジポートに STP を設定していた場合はというと、

通常はエッジポートで BPDU を受信するとループを検知して
Blocking に遷移するためループにはなりません。

でも、末端のハブによっては BPDU を廃棄するハブがあったりします。
この場合、アクセススイッチではループを検知出来ずにループ状態に
なってしまいます。

こういった事象は意外に多いのかなぁと。

そこで、STP 以外でループを回避する方法をごにょごにょと
考えてみました。

ああそうそう、ここでは Cisco のスイッチにある機能のみを
書いています。
その他のベンダーのスイッチの機能については記載していませんので
あしからず。

 

 

keepalive によるループ検知

Cisco スイッチでデフォルト動作している「keepalive」機能は、
ループ検知のための基本的な機能です。

「keepalive」機能が有効の場合、スイッチは keepalive フレームを
定期的に送出し、自身が送出した keepalive フレームを同一ポートで
受信した場合にポートをダウンさせます。

以下のような状況でループが発生した場合に有効な機能。

 

keepalive によるループ検知

 

以下のような状況では残念ながら役に立たず。

 

ブロードキャストストーム / マルチキャストストームが発生

 

keepalive 設定コマンド

設定は至って簡単です。

インタフェースコンフィグレーションモードで以下の設定を投入するだけ。

(config-if)# keepalive [ period ]

デフォルトは 10 秒おきに keepalive フレームを送信します。

 

ループを検知すると

ループを検知すると、インタフェースがダウンするのですが、
その場合に show interface を見ると、以下のように
通常の dowm 表示ではなく、「(err-disabled)」という表示になります。

Switch#show interfaces
GigabitEthernet0/1 is down, line protocol is down (err-disabled)

ちなみにループ検知による Down は、「自身が送出した keepalive
フレームを同一ポートで受信した場合」意外にも、リンクが
フラップした場合やレイトコリジョンの検出など機種によって
トリガがいくつか存在しています。

 

ポートの復旧方法

err-disabled によるポートダウンの復旧方法は、
インタフェースの shutdown → no shutdown で復旧出来ます。

もし、err-disabled から自動的に復旧させたい場合は
以下の設定を投入します。

(config-if)# errdisable recovery {cause {option}} | {interval interval}

option で自動復旧させたい項目を選択することが可能です。
interval はerr-disabled になってから自動復旧するまでの
時間を指定できます。(デフォルトは 300 秒)

ただし、errdisable recovery を投入しておくと、
ループの原因が取り除かれていないと、当然ポートの down/up が
繰り返されるわけで、ネットワークがとても不安定な状態なるので
注意しましょう。

 

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス:

 

関連記事

L2ループ対策
L2ネットワークにおけるループ対策について

L2ループ対策 その2
L2ネットワークにおけるループ対策について