こんにちは!ネットワークの世界へようこそ。インフラ・ネットワークスペシャリストの私です。
日々の業務や学習で、ルーターやスイッチが織りなすパケットのやり取りを見ていると、「データってまるで生き物みたいに動くなあ」と感動しませんか?今回は、そんなイーサネットの世界をさらに深く、そして身近に感じてもらうために、ちょっと通なキーワードを取り上げます。
その名も「DEI(Drop Eligible Indicator)」です!
「ディー・イー・アイ? なんか難しそうな英語が出てきたぞ……」と思いましたよね。安心してください。一歩ずつ、私たちの身近な世界に置き換えて優しく紐解いていきますので、コーヒーでも飲みながらリラックスして読んでいってくださいね。
—
郵便配達のピンチ!「どうしても急ぐ手荷物」と「後回しでもいい荷物」
突然ですが、あなたが街の郵便配達員だと思って想像してみてください。
ある日、配達バイクに荷物をこれでもかと積み込みました。中身は様々です。「今日中に絶対に届けなければならない病院の重要書類」もあれば、「来週でもいい通販の分厚いカタログ冊子」もありますよね。
ここで、ものすごい大雨が降ってきて、道路が大渋滞(=ネットワークの輻輳(ふくそう))を起こしてしまいました! バイクの荷台はもうパンパンで、これ以上重くなるとバイクが転倒してしまいます。
さあ、あなたならどうしますか? 全部の荷物を死守しようとしてバイクごと動けなくなりますか? それとも、万が一のときは「カタログ冊子」を一旦トラックの荷台から下ろし(=破棄)、重要書類だけでも時間通りに届けようと判断しますか?
もちろん、後者ですよね。「最悪、あとで再配達すればいいや」という荷物(Drop Eligibleな荷物)をあらかじめ決めておけば、大渋滞が起きたときでも、本当に大切な通信を死守することができます。
この「万が一のときには破棄してもいいですよ」という目印を、イーサネットの世界(正確にはVLANタグの世界)でスマートに実現しているのが、今回主役の DEI なんです。
—
DEIって、もともとは何だったの?
実はこのDEI、昔は CFI(Canonical Format Indicator) という、ちょっと呪文のような名前で呼ばれていました。
昔のネットワークの世界では、トークンリングという別の規格とイーサネットの間でデータをやり取りする際、「データの並び順(エンディアン)」を変換する必要があって、そのフラグとして使われていたんです。
時代が進み、トークンリングが主役から退いていくと、「この1ビットの空きスペース、もったいないよね。別のことに使えないか?」となりました。そこで、「おっ、それならネットワークが混雑したときに、優先度を下げて捨てもいいよというフラグ(目印)として使おう!」と生まれ変わったのが、今の DEI なんです。
DEIはたったの 1ビット(0か1か)しかありません。
0のときは:「できればこのフレームも捨てないで大切に運んでね!」(通常)1のときは:「ごめん、道がすごく混んできたら、このフレームは捨てちゃっても構わないよ!」(破棄許容)
たった1ビットの小さな目印ですが、これが大規模な企業ネットワークやデータセンターの安定稼働を裏で支えている主役級の機能なんですよ。
—
現場のスイッチは、どうやってDEIを見ているの?
では、実際のネットワーク機器(L2スイッチなど)は、このDEIをどう扱っているのでしょうか? 現場のエンジニアがよく使うCiscoやLinuxの環境を例に、少しだけ実務的な設定や挙動を覗いてみましょう。
ネットワークの世界では、通常このDEIは、QoS(Quality of Service)と呼ばれる通信の優先制御の仕組みとセットで動きます。
例えば、Ciscoのスイッチなどでトランクポート(複数のVLANを流すポート)を設定する際、優先度を決める仕組み(CoS: Class of Service)と一緒に、DEI(旧CFI)がどのように扱われるかを意識します。
実務での設定・確認イメージ(Cisco IOSの例)
実際のCisco機器のコンフィグレーションでは、トラフィックの分類(Classification)やマーキングの際に、次のようなポリシーマップを書くことがあります。
! QoSのポリシーマップ定義:音声などの重要データは優先し、ベストエフォートのデータにはDEIを立てる準備をする
policy-map QOS_TRAFFIC_POLICY
class CLASS_VOICE
set pcp 5 ! 音声データには高い優先度(PCP=5)を付与
class CLASS_BULK_DATA
set pcp 1 ! バルクデータには低い優先度を付与
! 必要に応じて、ここでDEIを有効(1)にするマークングを行うこともあります
※実務では、CiscoのQoS用語としてPCP(Priority Code Point)やCoS値という言葉とセットで語られることが多いですが、IEEE 802.1Qのフレーム構造の中には、しっかりこのDEIの1ビットが存在しています。
また、Linuxサーバーのネットワークインターフェース(iproute2など)を使って、VLANインターフェースにタグや優先度を付与してテストを行うことも可能です。
Linux環境でのVLANインターフェース作成例
# 物理インターフェース eth0 に対して、VLAN ID 100 の仮想インターフェースを作成する
sudo ip link add link eth0 name eth0.100 type vlan id 100
# 作成したVLANインターフェースの状態を有効化する
sudo ip link set up dev eth0.100
# ※実際のパケット送受信時には、kernelのQoSサブシステム(tcコマンド等)と連携し、
# パケットのCoS値やDEIビットを制御してスイッチへ送り出すことができます。
このように、パケットに「DEI = 1」というスタンプ(目印)をあらかじめ押しておくことで、途中のスイッチのバッファ(一時的な荷物置き場)が溢れそうになったとき、スイッチは迷わず DEI = 1 のフレームを優しく(あるいは強制的に)ドロップし、重要な DEI = 0 のトラフィックを守り抜くことができるのです。
—
まとめ:小さな1ビットが支えるインターネットの優しさ
いかがでしたでしょうか? 今回はDEIという、ちょっと地味だけどとっても重要な1ビットのフィールドについて解説しました。
- DEI(Drop Eligible Indicator) は、VLANタグの中にあるたった1ビットのフラグ。
- ネットワークが渋滞(輻輳)したときに、「このデータは捨ててもいいよ」という目印を教える役割を持つ。
- この仕組みがあるおかげで、重要度の低い大量のデータ(ファイルのバックアップなど)が原因で、重要度の高いデータ(音声通話やリアルタイムの会議システムなど)がプツプツ途切れるのを防ぐことができる。
ネットワーク技術の面白いところは、こうした「人間社会の知恵」や「宅配便の仕組み」によく似たロジックが、ミリ秒以下の世界で泥臭く、かつ美しく動いているところです。
これからも、難しい仕様書や用語に出会ったら、「これって現実の世界のどんな仕組みに似ているだろう?」と優しく置き換えてみてくださいね。きっと、ネットワークの勉強がもっと楽しく、血肉になっていくはずです。
それでは、また次回の深淵なネットワークの世界でお会いしましょう!
コメント