はじめに
この実験では、Linux でネットワークキュー規則 (queue discipline) が設定されているかどうかを確認する方法を学びます。tc qdisc show コマンドを使用して、ネットワークインターフェイスに設定されたキュー規則を一覧表示し、その出力を理解します。
また、ip link コマンドを使用してネットワークインターフェイスを確認し、/etc/network 内のネットワーク設定ファイルを調べることで、ネットワーク設定全体とキュー規則の適用方法を包括的に理解します。
tc qdisc でキュー規則を一覧表示する
このステップでは、tc コマンドを使用してネットワークインターフェイスに設定されたキュー規則 (queue discipline) を一覧表示する方法を学びます。
tc コマンドは、Linux でトラフィック制御に使用される強力なツールです。ネットワークトラフィックの整形、スケジューリング、ポリシングなどを管理することができます。キュー規則 (qdiscs) はトラフィック制御の核心であり、ネットワークインターフェイス上でパケットがどのようにキューに入れられ、送信されるかを決定します。
現在設定されているキュー規則を一覧表示するには、tc qdisc show コマンドを使用します。
ターミナルが開いていない場合は、開きます。デスクトップの左側にある Xfce Terminal アイコンをクリックすることで開くことができます。
次に、以下のコマンドを入力して Enter キーを押します。
tc qdisc show
以下のような出力が表示されるはずです。
qdisc noqueue 0: dev lo root refcnt 2
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn
出力を分解して説明しましょう。
qdisc: この行がキュー規則を記述していることを示します。noqueue: これはキュー規則の名前です。noqueueは、キューイングを行わない単純な qdisc で、インターフェイスがビジーな場合はパケットが破棄されます。通常、ループバックインターフェイス (lo) に使用されます。0:: これは qdisc のハンドルです。dev lo: qdisc がアタッチされているネットワークインターフェイスを指定します。loはループバックインターフェイスです。root: これがインターフェイスのルート qdisc であることを示します。refcnt 2: qdisc の参照カウントです。
2 行目は、eth0 インターフェイス上の fq_codel qdisc を示しています。fq_codel は、Fair Queuing (FQ) と CoDel (Controlled Delay) を組み合わせたより高度な qdisc で、公平な帯域幅割り当てを提供し、バッファブロートを最小限に抑えます。
キュー規則を理解することは、ネットワークパフォーマンスの最適化やネットワーク輻輳問題のトラブルシューティングに不可欠です。
Continue をクリックして次のステップに進みます。
ip link でインターフェイスを確認する
このステップでは、ip link コマンドを使用してシステム上のネットワークインターフェイスを調べます。ip コマンドは、Linux でのネットワーク設定に使用される最新かつ汎用性の高いユーティリティで、ifconfig などの古いツールに代わるものです。
ip link コマンドは、具体的にネットワークインターフェイス自体を扱い、その状態、MAC アドレス、その他の詳細を表示します。
ターミナルが開いていない場合は、開きます。
以下のコマンドを入力して Enter キーを押します。
ip link show
以下のように、ネットワークインターフェイスが一覧表示される出力が表示されるはずです。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
各インターフェイスに関する重要な情報を見てみましょう。
1: lo:と2: eth0:: インターフェイスのインデックスと名前です。loはループバックインターフェイスで、eth0は通常、主なネットワークインターフェイスです。<LOOPBACK,UP,LOWER_UP>と<BROADCAST,MULTICAST,UP,LOWER_UP>: インターフェイスの機能と現在の状態を示すフラグです。UPはインターフェイスがアクティブであることを意味し、LOWER_UPは物理リンクがアップしていることを意味します。mtu 65536とmtu 1500: 最大伝送単位 (Maximum Transmission Unit) で、断片化せずに送信できる最大のパケットサイズです。qdisc noqueueとqdisc fq_codel: 前のステップで見たように、インターフェイスにアタッチされたキュー規則 (queue discipline) です。state UNKNOWNとstate UP: インターフェイスの動作状態です。mode DEFAULT: インターフェイスのモードです。group default: インターフェイスが属するグループです。qlen 1000: 送信キューの長さです。link/loopbackとlink/ether: リンク層のタイプです。00:00:00:00:00:00とaa:bb:cc:dd:ee:ff: インターフェイスの MAC アドレスです。brd 00:00:00:00:00:00とbrd ff:ff:ff:ff:ff:ff: ブロードキャスト MAC アドレスです。
ip link show コマンドは、ネットワークインターフェイスの状態と設定を迅速に確認するために不可欠です。
Continue をクリックして次に進みます。
/etc/network のネットワーク設定を確認する
このステップでは、/etc/network ディレクトリにある従来のネットワーク設定ファイルを調べます。最新の Linux ディストリビューションでは、Netplan や NetworkManager などのツールを使用することが多いですが、これらの古い設定ファイルを理解することは、特にそれらを使用しているシステムやトラブルシューティングにおいて、依然として重要です。
この形式のネットワークインターフェイスの主要な設定ファイルは /etc/network/interfaces です。
ターミナルが開いていない場合は、開きます。
cat コマンドを使用して /etc/network/interfaces ファイルの内容を表示します。cat は、ファイルの内容を連結して表示するためのシンプルなコマンドです。
以下のコマンドを入力して Enter キーを押します。
cat /etc/network/interfaces
以下のような出力が表示されるはずです。
## interfaces(5) file used by ifup(8) and ifdown(8)
## Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
内容を見てみましょう。
#:#で始まる行はコメントで、無視されます。source-directory /etc/network/interfaces.d: この行は、システムに/etc/network/interfaces.dディレクトリにある設定ファイルを読み込むよう指示します。これにより、モジュール式のネットワーク設定が可能になります。auto lo: この行は、システム起動時にlo(ループバック) インターフェイスを自動的に起動することを示しています。iface lo inet loopback: この行はloインターフェイスを設定します。inetはアドレスファミリ (IPv4) を指定し、loopbackはループバックインターフェイスであることを示します。auto eth0: この行は、システム起動時にeth0インターフェイスを自動的に起動することを示しています。iface eth0 inet dhcp: この行は、eth0インターフェイスが DHCP (Dynamic Host Configuration Protocol) を使用して自動的に IP アドレスやその他のネットワーク設定を取得するように設定します。
このファイルは、ネットワークインターフェイスを静的に設定する方法を提供します。DHCP を使用する代わりに、ここで IP アドレス、サブネットマスク、ゲートウェイなどの設定を手動で定義することができます。
この実験ではこのファイルを変更することはありませんが、その場所と基本的な構造を知ることは、Linux システムでネットワークインターフェイスをどのように設定できるかを理解するために重要です。
Continue をクリックしてこの実験を完了します。
まとめ
この実験では、Linux でネットワークキュー規則 (queue discipline) が設定されているかどうかを確認する方法を学びました。まず、tc qdisc show コマンドを使用して、ネットワークインターフェイスに設定されたキュー規則を一覧表示し、キュー規則の名前、インターフェイス、タイプなどの出力内容を理解しました。このコマンドは、トラフィック制御設定を調べるための基本的なツールです。
また、noqueue や fq_codel などの異なるキュー規則を理解することの重要性と、それらがネットワークトラフィックとパフォーマンスの管理において果たす役割を学びました。この最初のステップは、システム上でどのキュー規則がアクティブであるかを確認する実用的な方法を提供しました。



