こんにちは!ネットワークの世界へようこそ。インフラエンジニアの主筆ライターとして、日々国内外のネットワークの深淵を覗き見ている私ですが、今回はネットワークの初学者が直面する「ある恐怖の現象」と、その救世主についてお話ししたいと思います。
皆さんは、オフィスのネットワークが突然、理由もなく「超重い」「繋がらない」といったパニックに陥った経験はありませんか?Web会議はフリーズし、チャットすら送れない……。実はこれ、ネットワークの世界における「大洪水」、専門用語で言うブロードキャスト風水害(ストーム)が起きているサインかもしれません。
今回は、そんなネットワークの平和を守るための頼もしい機能「ストームコントロール(Storm Control)」について、郵便配達のたとえを交えながら、一歩ずつ優しく紐解いていきましょう!
—
1. ネットワークの「大洪水」とは?(ブロードキャスト風水害の正体)
まずは、私たちの身の回りの現実世界に置き換えて考えてみましょう。
想像してみてください。ある大きなオフィスの郵便受けに、1日あたり数通の大切な手紙が届く分には、受付のスタッフも余裕で処理できますよね。これが「通常のユニキャスト通信(特定の人宛ての通信)」です。
ところが、ある日突然、差出人不明の「全社員向けチラシ」が、1秒間に何万枚もオフィスに送りつけられてきたらどうでしょう?
受付のスタッフはチラシの山に埋もれ、本来届くべき重要な仕事の書類すら処理できなくなってしまいます。オフィスは大パニック、仕事は完全に麻痺してしまいますよね。
これが、ネットワークの世界で起きるブロードキャスト風水害(ブロードキャストストーム)です。
イーサネットのスイッチングハブは、宛先が分からないパケットや、ネットワーク全体に呼びかけるためのパケット(ブロードキャスト、マルチキャスト、未知のユニキャスト)を受信すると、基本的には「受信したポート以外のすべてのポート」へそのパケットをコピーしてばら撒きます。
もし、ループ配線(配線のミス)などが原因で、この「コピーされたパケット」が延々とネットワーク内をぐるぐると回り続け増殖し続けたら……?
ネットワークの帯域(道路の幅)は一瞬で埋め尽くされ、正当な通信まで押し出されてしまうのです。これが、私たちが恐れる「風水害」の正体です。
—
2. 救世主「ストームコントロール」の仕組み
この恐ろしい大洪水を未然に防ぐ、あるいは被害を最小限に抑えるために考案されたのが、今回主役となるストームコントロールです。
先ほどの郵便受けの例で言えば、ストームコントロールは「自動仕分け・破棄カウンター」のような役割メンバです。
「おいおい、ちょっと待て! 1秒間にチラシが100枚を超えたぞ! これ以上入ってきたら受付がパンクするから、100枚を超えた分のチラシは容赦なくシュレッダー(破棄)するぞ!」
スイッチは常にポートを流れるトラフィックの量を監視しています。そして、私たちが事前に設定した「閾値(しきい値:これ以上は危険というライン)」を超えたトラフィックを検知すると、指定されたアクション(パケットの破棄など)を実行し、ネットワークの崩壊を防いでくれるのです。
—
3. 実務で役立つ!ストームコントロールの設定例
「理屈は分かったけれど、実際の現場ではどう設定するの?」
そんな疑問に答えるべく、Cisco Catalystスイッチを例に、具体的な設定手順を見ていきましょう。難しく考えず、「どれくらいの量を超えたらブロックするか」を指定するだけです。
以下の設定例では、スイッチのインターフェース(ここではGigabitEthernet 0/1)において、ブロードキャスト、マルチキャスト、そして宛先不明のユニキャスト(総称してBUMトラフィックと呼びます)の流入量を制限しています。
! コンフィグレーションモードに移行します
configure terminal
! 対象のインターフェース(今回はGigaBitEthernet 0/1)を選択します
interface GigabitEthernet0/1
! 【1. ブロードキャストの制御】
! 帯域の「5.0%」を超えるブロードキャストが流入した場合、それを検知します。
! 上限を超えた分は容赦なく破棄(drop)させます。
storm-control broadcast level 5.0
! 【2. マルチキャストの制御】
! こちらも同様に、帯域の「5.0%」を閾値として設定します。
storm-control multicast level 5.0
! 【3. 未知のユニキャストの制御】
! 宛先MACアドレスがスイッチのテーブルにない「未知のユニキャスト」も「5.0%」で制限します。
storm-control unicast level 5.0
! 【4. アクションの設定(重要!)】
! 閾値を超えたときにどうするかを定義します。
! デフォルトでは「ただ破棄する(drop)」ですが、
! 「shutdown」を指定すると、異常を検知したポート自体を自動的にストップ(err-disabled状態)させることができます。
storm-control action drop
! 設定を保存します
end
write memory
パラメータの読み解き方
level 5.0: ポートの最大帯域幅(例えば1Gbpsならその5%)を基準にします。bps(ビット毎秒)やパケット数(pps)で指定できる機種もあります。現場の要件やトラフィックの性質に合わせて調整しましょう。storm-control action drop: 閾値を超えたトラフィックを「捨てる」設定です。安全性を高めたい場合は、ポートを閉塞させるshutdownを選ぶこともありますが、一時的な突発トラフィックでポートがダウンするリスクもあるため、まずはdropから始めるのが実務の定石です。
—
4. 現場のエンジニアが語る、運用時の注意点と知恵
ストームコントロールは非常に強力で便利な機能ですが、インフラの現場ではいくつか知っておくべき「泥臭い現実」があります。最後に、実務で役立つTipsをいくつかご紹介しますね。
1. すべてのポートに一律で入れない
サーバーが接続されているポートや、大量のマルチキャスト配信を行う映像配信用サーバーのポートに厳しすぎるストームコントロールをかけると、必要な正当なデータまで破棄されてしまい、システム障害の原因になります。基本的に「エンドユーザーが繋ぐアクセスポート(エッジ)」を中心に適用するのが安全です。
2. 「未知のユニキャスト」の罠
ARPリクエストの応答待ちや、VLAN間ルーティングの過渡期などで、正常な通信であっても一時的に「未知のユニキャスト」が増えることがあります。閾値をあまりにシビア(例: 0.1%など)に設定すると、正常な通信まで巻き込んでパケットロスを引き起こすので、平時のトラフィック量をベースに十分な余裕を持たせましょう。
—
まとめ
いかがでしたでしょうか?
ストームコントロールは、一見すると難しそうな英語のコマンドや専門用語に隠れていますが、その本質は「オフィスの郵便受けがあふれカエルを防ぐための、賢い流量センサーとゴミ箱」にすぎません。
ネットワークの基礎を固める上で、こうした「トラフィックの暴走を防ぐ仕組み」を理解しておくことは、将来シニアなインフラアーキテクトへステップアップする上で必ず大きな武器になります。
それでは、また次回のネットワークの深淵でお会いしましょう! 一歩ずつ、確実に理解を深めていきましょうね。
コメント