【テクニカル・上級編】 スイッチングハブの基本動作:フィルタリング(Forwarding / Filtering)の仕組み – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

L2スイッチの「魂」:フィルタリングと転送の深淵を覗く

ネットワークエンジニアとしてキャリアを積むと、ふと立ち止まって考えることがある。「スイッチングハブは、なぜこれほどまでに効率的なのか?」と。

多くの入門書は、スイッチを「MACアドレス学習機能を持った頭の良いハブ」と片付ける。だが、実務で数万パケットのバーストをさばき、レイテンシのマイクロ秒単位の揺らぎに神経を尖らせる我々にとって、スイッチングの真髄はそんな生易しいものではない。今回は、L2スイッチにおけるフィルタリングと転送のメカニズムを、極限のパフォーマンスとセキュリティの観点から解剖する。

—

フィルタリングの物理的挙動:ASICが下す一瞬の決断

スイッチの心臓部であるASIC(Application Specific Integrated Circuit)は、受信したイーサネットフレームのプリアンブルからFCSに至るまでを、数ナノ秒の精度で処理する。

宛先MACアドレス(DA)がCAM(Content Addressable Memory)テーブルに存在する場合、スイッチは「フィルタリング(Filtering)」を行う。これは単なる転送先の選択ではない。「不要なポートへのトラフィックを物理的に遮断する」という、ネットワーク帯域とセキュリティの根幹を支える動作だ。

パケットのライフサイクル

1. Ingress Pipeline: フレームがポートに到達した瞬間、バッファリングと同時にDAとSA(送信元MAC)が抽出される。
2. Look-up: CAMテーブルを検索。ヒットすれば該当ポートへ、ミスすればフラッディング(Flooding)へ。
3. Forwarding: 該当ポートの出力キューへフレームをプッシュ。このとき、もし出力ポートが輻輳していれば、CoS(Class of Service)に基づく優先制御が割り込む。

—

パフォーマンスの罠:RTTとバッファチューニングの相関

ネットワークの高速化を語る際、L2のスイッチング速度を無視して上位層のチューニングを語ることは無意味だ。TLSハンドシェイクが遅延している原因が、実はスイッチの出力バッファでのパケットドロップにあることは珍しくない。

TCPの初期ウィンドウサイズがどれほど最適化されていようと、スイッチ側でtail-dropが発生すれば、RTTは指数関数的に悪化する。特にデータセンター環境では、以下のチューニングを検討すべきだ。

Linuxホスト側からのTCPバッファチューニング例

スイッチのバッファ溢れを軽減するためには、ホスト側での輻輳制御アルゴリズムの選定が不可欠だ。

# BBR (Bottleneck Bandwidth and Round-trip propagation time) を有効化
# BBRはパケットロスよりもRTTの変動を重視するため、現代的な高負荷環境に最適
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_congestion_control=bbr

# TCPウィンドウサイズを拡大し、高帯域・高遅延環境に対応
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"

—

セキュリティの防壁:MAC Floodingとポートセキュリティ

スイッチングのフィルタリング能力を悪用した攻撃が、MAC Floodingだ。攻撃者が不正なSAを大量に送り込み、CAMテーブルを溢れさせると、スイッチは「ハブ」化する(Fail-open状態)。その瞬間、本来隔離されていたはずの通信が、攻撃者のポートへ丸見えになる。

これを防ぐための実務的な対策は、ポート単位の制限だ。

! Cisco Catalyst等でのポートセキュリティ設定例
interface GigabitEthernet0/1
 switchport mode access
 switchport port-security
 switchport port-security maximum 2       # 同時に学習するMACアドレス数を制限
 switchport port-security violation shutdown # 違反時はポートを即座にダウンさせる

—

ヘッダー圧縮とインラインの効率化

現代の高速ネットワークでは、Ethernetフレームのヘッダーがペイロードに対して肥大化することを防ぐ手法が重視される。特にコンテナ間通信やマイクロサービス環境では、VLANタグの多重化やVXLANのオーバーヘッドが問題になる。

ここで意識すべきは、MTUの最適化だ。スイッチ側でJumbo Frame(9000 bytes)を許可し、サーバー間のNICとスイッチ間で設定を統一すること。これにより、フレームあたりのヘッダー比率を下げ、CPUの割り込み頻度を劇的に低減できる。

# インターフェースのMTUをJumbo Frameに設定(NIC側)
ip link set dev eth0 mtu 9000

—

結論:ネットワークスペシャリストとしての視座

フィルタリングは単なる「転送の分岐点」ではない。それは、複雑怪奇なパケットの洪水の中で、秩序を維持するための「選別」という名の芸術だ。

あなたがインフラを設計する際、スイッチのCAMテーブルの寿命や、バッファがフルになった瞬間の挙動を想像できるだろうか。パケットが物理層の電気信号から、L2のフレーム、そして上位層のTLSセッションへと変換されるプロセスを常に意識すること。それが、ボトルネックを排除し、極限のパフォーマンスを実現するための唯一の道である。

次は、スイッチの「キューイングアルゴリズム」が、いかにして現代のVoIPやストリーミングの品質を決定づけているのかについて深掘りしよう。ネットワークの深淵は、まだまだ深い。

コメント

タイトルとURLをコピーしました