こんにちは!ネットワークスペシャリストの私です。
日々のインフラ運用や設計の現場で、「なんだかネットワークが重いぞ」「特定のユーザーが回線を占有している気がする……」なんて頭を抱えた経験はありませんか?
会社やカフェのWi-Fiで、誰かが巨大な動画ファイルを一斉にダウンロードし始めた途端、他の人のWeb閲覧がカクカクしてしまう……。そんな「带宽泥棒(帯域泥棒)」からネットワークの平和を守るための強力なヒーローが、今回解説する「トラフィックポリシング(Polishing / CAR: Committed Access Rate)」です!
小難しい英語の仕様書やビット数の計算式はちょっと置いておいて、まずは私たちの身近な世界に置き換えて、その仕組みを優しく一歩ずつ紐解いていきましょう!
—
1. 郵便配達員でイメージする「ポリシング」の仕組み
ネットワークの世界へ飛び込む前に、現実世界の郵便局を想像してみてください。
ここに、ある小さな郵便局があります。この郵便局では、ルールとして「1秒間に配達できるのは、最大で手紙3通まで!」という取り決め(契約帯域)をしています。
ある日、元気いっぱいの差出人が、一気に5通もの手紙を窓口に持ってきたとします。
窓口の担当者(これがスイッチやルーターのポリシング機能です)は、どう対応するでしょうか?
1. セーフ(契約内)の3通:
「はい、これらはルール通りですね。すぐに出発させます!」と、そのまま宛先へ送り出します(Forward)。
2. アウト(超過分)の2通:
さあ、ここからがポリシングの腕の見せ所です。許容量を超えた残り2通に対して、大きく分けて2つの処罰(?)が下されます。
- パターンA(即座にポイッ!): 「すいません、うちのキャパを超えているので受け取れません!」と、その場で容赦なくゴミ箱行きにします(Drop / 破棄)。
- パターンB(格下げスタンプを押す): 「うーん、急ぎ便としては送れないから、一番安い『陸送のスタンプ』を押して、隅っこの方に積んでおくよ(あとですいてから運ぶね)」と、手紙のランク(優先度)を書き換えます(Remarking / マーキング)。
ネットワークのポリシングもこれと全く同じことをやっています。あらかじめ決めた「お墨付きのスピード(平均レート)」を超えた通信を見つけ出し、容赦なく切り捨てるか、スタンプを押して「後回し」にするのです。
—
2. ポリシングの頭脳:トークンバケット(Token Bucket)アルゴリズム
「ルーターは一体どうやって、瞬間的な流量を測っているの?」と気になりますよね。ここで登場するのが、ネットワーク界の超重要概念「トークンバケット(Token Bucket)」です。
難しそうに聞こえますが、これも「お小遣い貯金箱」だと思えば怖くありません。
- バケット(貯金箱): 一定の大きさ(容量)を持つバケットがあります。
- トークン(コイン): 一定の時間ごとに、このバケットへ「トークン(=1バイト分の通行手形のようなもの)」がチャリン、チャリンと補充されます。
- パケットの通過: ルーターにデータ(パケット)が到着すると、そのサイズ分のトークンをバケットから「支払って」通過します。
想像してみてください:
- 普段の通信(おとなしい時): コインが補充されるペースよりも使うペースが遅いので、バケットはいつもジャラジャラに満たされています。パケットはスイスイ通過できます。
- 爆発的な通信(バースト時): 瞬間的に大量のデータが来ると、バケットの中のコインが一瞬でスッカラカンになります。
- コインが切れたら?: 「あ、これ以上はコインがないので通せません!」となり、先ほど紹介した「即座に破棄(Drop)」または「スタンプ書き換え(Remarking)」の運命が待ち受けているわけです。
—
3. 超過したときの2つの選択肢:「破棄(Drop)」と「マーキング(Remarking)」
では、バケットのコインが尽きて制限を超えてきたトラフィックに対して、現場の機器は具体的にどう動くのかをもう少し詳しく見ていきましょう。
① 即座の破棄(Drop)
文字通り、超過分をその場でドロップ(消去)します。TCP通信であれば、パケットが届かないため送信元が「あれ、届いてないな?」と気づき、自分で通信速度を落としてくれます(これをTCPの混雑制御と呼びます)。
非常にシンプルですが、動画配信や音声通話のパケットがこれにあたると、一瞬映像がフリーズしたり、声が途切れたりする原因になります。
② マーキング(Remarking)
「せっかく送ってきたデータを全部捨てるのはかわいそう……」という慈悲の心(?)を持つのがマーキングです。
IPヘッダーの中にあるDSCP(Differentiated Services Code Point)という値や、L2イーサネットフレームのCoS(Class of Service)の値を、あらかじめ「お前は優先度が低いですよ」という低い値に書き換えます。
例えば、普段は「音声用の超特急(DSCP値: EF)」として送り出していたものを、超過した分だけ「ベストエフォート(DSCP値: 0、つまり一般郵便)」に書き換えます。
このあと、ネットワークのどこかで「おや、回線が混んできたぞ。じゃあ優先度の低い一般郵便の荷物から一時的に端っこへ避けよう(QoSのキューイング処理)」という仕組みと連携することで、全体として重要な通信を守りながら上手にバランスを取ることができるのです。
—
4. 【実践】Cisco機器でのポリシング設定例
百聞は一見にしかず。実際のネットワーク機器(Cisco IOSなど)では、このポリシングがどのように設定されているのか、現場でそのまま使える実例を見てみましょう。
今回は、オフィスのゲスト用Wi-Fiネットワークを想定し、1人あたり(あるいはネットワーク全体で)の通信速度を「最大 10 Mbps」に制限し、それを超えたトラフィックはすべてマーキングして優先度を落とす、というシナリオです。
! ==========================================
! 1. アクセスリストで対象のトラフィックを指定する
! ==========================================
! ここではすべてのIPトラフィックを対象とします
ip access-list extended 100
permit ip any any
! ==========================================
! 2. ポリサー(帯域制限のルール)を含むポリシーマップを作成する
! ==========================================
policy-map GUEST-POLICING-POLICY
class 100
! 帯域の定義:
! 帯域 10 Mbps、許容バーストサイズ(Bc) 312500 バイト、超過バーストサイズ(Be) 625000 バイト
!
! 【重要】超過したときの動作 (Exceed Action) を定義する
! ここでは破棄(drop)ではなく、DSCP値を「0(通常トラフィック)」に書き換える(set-dscp-transmit 0)
police 10000000 312500 625000 conform-action transmit exceed-action set-dscp-transmit 0 violate-action drop
! ==========================================
! 3. インターフェイスにポリシーを適用する
! ==========================================
! ルーターまたはL3スイッチの、外部とつながる出口(または入口)インターフェイスに紐付けます
interface GigabitEthernet0/1
description Connection to Guest Wi-Fi AP
service-policy input GUEST-POLICING-POLICY
設定のワンポイント解説
police 10000000 312500 625000: 最初の数字10000000はビット単位(つまり10 Mbps)です。その後の2つの数字は、トークンバケットの大きさを決めるパラメータ(BcとBe)です。conform-action transmit: 契約内(セーフ)のトラフィックは「そのまま通す(transmit)」という意味です。exceed-action set-dscp-transmit 0: 超過(アウト)したトラフィックは、DSCP値を0に書き換えて通します。violate-action drop: もし設定されたバースト量すらもはるかに超える異常な大爆発(違反)があった場合は、さすがに「破棄(drop)」します。
—
5. おわりに:ポリシングを制する者がネットワークを制す!
今回は、イーサネットトラフィックポリシングの仕組みについて、郵便配達や貯金箱の例えを交えてお話ししました。
- ポリシングとは: 契約した帯域を超える通信を監視し、その場で「捨てる(Drop)」か「格下げする(Remarking)」仕組み。
- 頭脳の正体: トークンバケットアルゴリズムで、コインの残高のように瞬間的な流量を美しく管理している。
- 実務での活用: QoSのマーキングと組み合わせることで、重要なシステムや音声通話を守りつつ、無茶な帯域消費をスマートにいなすことができる。
インフラの世界では、ただ回線を太くする(帯域を増強する)だけでは、無限にかかるコストに予算が耐えられなくなってしまいます。こうしたポリシングやQoSといった「交通整理の技術」を正しく理解し、適材適所に使いこなせるようになってこそ、一歩先を行く優秀なネットワークエンジニアです!
日々の構築やトラブルシューティングで、ぜひこの「郵便配達とトークンバケット」のイメージを思い出してみてくださいね。それではまた次回の技術の深淵でお会いしましょう!
コメント