スパニングツリープロトコル(STP)の隠れた番人:BPDUガードとBPDUフィルターでネットワークを安全に守る!
皆さん、こんにちは!ネットワークの世界へようこそ!インフラやネットワークに初めて触れる皆さん、特に「スイッチング」って聞くと、なんだか複雑で難しそう…と感じていませんか?でも大丈夫!今日は、そんな皆さんと一緒に、イーサネットの世界をより安全で快適にするための、ちょっとした「お約束」について、身近な例え話を交えながら、じっくり紐解いていきたいと思います。
今日の主役は、BPDUガードとBPDUフィルターという、ちょっと専門的な響きの言葉ですが、これを知っているだけで、ネットワークの安定性が格段にアップする、まさに「縁の下の力持ち」なんです。
そもそも「STP」って何だっけ?~ループを防ぐための大事なルール~
まず、このBPDU(Bridge Protocol Data Unit)という言葉が出てくる前に、その大前提となる「STP(Spanning Tree Protocol)」というお話から始めましょう。
皆さんのオフィスや家庭で、パソコンやプリンターなどが繋がっている「スイッチ」ってありますよね?あのスイッチがたくさん集まると、ネットワークに「ループ」という、データが永遠にグルグル回り続けてしまう、とっても厄介な現象が起こる可能性があるんです。
例えるなら、道が一つしかないのに、その道が円になっているような状態。車が一度走り出すと、どこにも行き場がなくなって、ずっと同じ場所をぐるぐる回り続ける…そんなイメージです。これでは、大事なデータが届かなくなってしまいますよね。
STPは、このループを防ぐために、スイッチ同士がお互いに「私はこの道(ポート)が安全だよ」「この道は使わないでおこうね」といった情報を交換し合い、ネットワーク上に「木の枝」のように、ループのない一本の道(スパニングツリー)を作り出す、とっても賢い仕組みなんです。
BPDUって、一体どんな情報なの?~郵便配達員さんの「情報カード」~
では、そのSTPの「お約束」のやり取りで使われるのが、今回のお話の主役であるBPDUです。
これは、スイッチ同士が「私はルートブリッジ(ネットワークの親玉)です」「このポートはフォワーディング(通信OK)状態です」といった、STPの判断に必要な情報を書いた「情報カード」のようなものだと考えてください。
そして、この情報カード(BPDU)は、STPが正常に機能するために、スイッチ同士で定期的に、そしてある特定のタイミングで交換されるんです。
突然の「お邪魔さん」!~意図しないスイッチが接続されたら?~
さて、ここからが本題です!
皆さんのネットワークには、通常、管理されているスイッチが接続されていますよね。でも、もし、誰かが「ちょっとこのポート、便利だから使おうかな」と思って、管理されていない、あるいは意図しない別のスイッチを、STPが通信を許可しているポート(通常はアップリンクポートなど)に繋いでしまったらどうなるでしょう?
この意図しないスイッチが、自分自身を「ルートブリッジ」だと勘違いして、STPの「情報カード(BPDU)」を送り付けてきたら…?
最悪の場合、ネットワーク全体でSTPの判断が狂ってしまい、ループが発生して通信ができなくなってしまう、なんてことも起こり得るんです!まるで、大事な郵便配達のルートに、勝手に割り込んでくる「お邪魔さん」が現れたようなものですね。
BPDUガード:アクセスポートの「用心棒」!
そこで登場するのが、BPDUガードです!
これは、主にユーザーが直接接続するようなポート(アクセスポート)に設定されるセキュリティ機能です。
皆さんのデスクの電話機やパソコンが繋がっているポートを想像してみてください。そこに、本来は繋がっちゃいけない「スイッチ」が接続されたら、ネットワークが不安定になる可能性があるですよね。
BPDUガードは、そんなアクセスポートに「用心棒」としてスタンバイしていて、もしSTPの「情報カード(BPDU)」がそのポートから送られてきたら、「おや?これはおかしいぞ!」とすぐに感知します。
そして、そのポートからBPDUが送られてきたら、そのポートを即座に無効化(シャットダウン)してしまうんです!まるで、怪しい人物が近づいてきたら、すぐに警備員が駆けつけて、その場所を封鎖するようなイメージです。
これにより、意図しないスイッチの接続によるネットワークループの発生を未然に防ぎ、ネットワークの安定性を保つことができます。
BPDUガードの設定例
多くのスイッチでは、インターフェースごとにBPDUガードを有効にすることができます。以下に、Cisco IOSライクなスイッチでの設定例をご紹介しますね。
! アクセスポートとして設定したいインターフェースに移動します
interface GigabitEthernet0/1
! そのポートをアクセスポートに設定します(例:VLAN 10に所属させる)
switchport mode access
switchport access vlan 10
! ここがポイント!BPDUガードを有効にします
spanning-tree bpduguard enable
! 設定を保存します
end
write memory
この設定により、GigabitEthernet0/1ポートにスイッチが接続され、BPDUが受信された場合、そのポートは自動的にerr-disabled(エラーで無効化)状態になります。
err-disabled状態からの復旧
err-disabled状態になったポートを元に戻すには、通常、手動での解除が必要です。これは、誤ってポートが無効化された場合でも、担当者が意図して復旧させるようにするためです。
! err-disabled状態になっているインターフェースを確認します
show interfaces status err-disabled
! 問題のあるインターフェース(例:GigabitEthernet0/1)に移動します
interface GigabitEthernet0/1
! ポートを一度シャットダウンし、再度ノーシャットダウンにします
shutdown
no shutdown
! 設定を保存します
end
write memory
BPDUフィルター:エッジポートでの「送受信ルール」!
次に、BPDUフィルターについてお話ししましょう。
これは、BPDUガードとは少し異なり、エッジポート(通常はPCやサーバーなどのエンドデバイスが接続されるポート)に対して、BPDUの送受信を制御する機能です。
例えるなら、ある特定のエリア(エッジポート)への「手紙(BPDU)の持ち込み・持ち出しを制限する」ようなイメージです。
BPDUフィルターは、主に以下の2つのモードで動作します。
1. ポートごとのBPDUフィルター:
このモードでは、指定したポートでBPDUの送受信を完全にブロックします。つまり、そのポートからはBPDUが送られず、また、そのポートにBPDUが届いても受信しません。これは、PCなどのエンドデバイスが接続されるポートで、STPのBPDU交換に参加する必要がない場合に有効です。
2. グローバルなBPDUフィルター:
このモードでは、STPが動作しているすべてのポートに対して、BPDUの送受信をフィルタリングします。ただし、通常は、ルートポートや指定ポートなどのSTPの重要なポートではBPDUが送受信されるため、この設定は慎重に行う必要があります。
BPDUフィルターの設定例
ここでは、ポートごとにBPDUフィルターを有効にする例を見てみましょう。
! エッジポートとして設定したいインターフェースに移動します
interface GigabitEthernet0/2
! そのポートをアクセスポートに設定します(例:VLAN 20に所属させる)
switchport mode access
switchport access vlan 20
! ここがポイント!BPDUフィルターを有効にします
! この設定により、このポートからはBPDUが送信されず、受信したBPDUも破棄されます。
spanning-tree portfast bpdufilter enable
! 設定を保存します
end
write memory
注意点:
spanning-tree portfast bpdufilter enableというコマンドは、portfast(ポートが即座にフォワーディング状態になる機能)が有効になっているポートに対して、BPDUフィルターを適用する際に使用されることが多いです。portfastは、PCなどが接続されるポートでよく利用されます。
BPDUフィルターは、STPの動作に直接影響を与えるため、設定を誤るとネットワークに予期せぬ問題を引き起こす可能性があります。特に、スイッチ間を接続するアップリンクポートなど、STPの重要な役割を担うポートには絶対に設定しないでください。
BPDUガードとBPDUフィルター、使い分けのポイント
では、これら二つの機能、いつどちらを使えば良いのでしょうか?
- BPDUガード:
- 対象: 主にアクセスポート(PC、プリンターなどが接続されるポート)。
- 目的: 意図しないスイッチの接続によるループ発生を、ポートの無効化によって防ぐ。
- 動作: BPDUを受信したら、ポートをerr-disabledにする。
- BPDUフィルター:
- 対象: 主にエッジポート(PC、サーバーなどが接続されるポート)。
- 目的: STPのBPDU交換に参加する必要のないポートでのBPDU送受信を制御する。
- 動作: 設定したポートでのBPDUの送受信をブロックする。
簡単に言うと、BPDUガードは「怪しいものが入ってきたら、すぐに封鎖!」という、防御的なアプローチ。
一方、BPDUフィルターは、「そもそも、このエリアには手紙(BPDU)のやり取りは不要だから、やめてね」という、予防的なアプローチと言えます。
多くのネットワーク環境では、PCやサーバーが接続されるポート(アクセスポートであり、エッジポートでもある)に対して、BPDUガードを有効にし、さらにportfastと組み合わせてBPDUフィルターを有効にする、という設定が一般的です。これにより、セキュリティと効率性を両立させることができます。
まとめ:小さな設定で、大きな安心を!
今日は、BPDUガードとBPDUフィルターという、STPをより安全に運用するための二つの重要な機能についてお話しました。
一見難しそうに聞こえるかもしれませんが、身近な例え話を通して理解していただけたのではないでしょうか?
BPDUガードは、アクセスポートに意図しないスイッチが接続された際に、ポートを無効化してループを防ぐ「用心棒」。BPDUフィルターは、エッジポートでBPDUの送受信を制御し、STPの不要なやり取りを防ぐ「ルール」。
これらの設定は、ネットワークの安定稼働のために非常に効果的です。皆さんのネットワーク構築や運用において、ぜひ積極的に活用してみてください。
今日の記事が、皆さんのネットワークエンジニアとしての第一歩、あるいは次のステップへと繋がる一助となれば幸いです。これからも、一緒にネットワークの奥深さを探求していきましょう!
コメント