はじめに
この実験では、Linux で様々な方法を使ってネットワークインターフェイスの最大転送単位 (Maximum Transmission Unit, MTU) を確認する方法を学びます。MTU を理解することは、ネットワークのパフォーマンスとトラブルシューティングにとって重要です。
以下の 3 つの異なるアプローチを探索します。最新の ip link show コマンドを使用する方法、従来の ifconfig ユーティリティを使用する方法、および /sys/class/net ファイルシステム内のネットワークインターフェイス情報を直接調べる方法です。この実験の終了時には、ネットワークインターフェイスの MTU 設定を特定することができるようになります。
ip link show で MTU を確認する
このステップでは、ip link show コマンドを使用してネットワークインターフェイスの最大転送単位 (Maximum Transmission Unit, MTU) を確認する方法を学びます。MTU は、ネットワークインターフェイスが断片化せずに処理できる最大サイズのデータパケットです。MTU を理解することは、ネットワークのトラブルシューティングとパフォーマンスチューニングに重要です。
ip コマンドは、Linux でネットワークインターフェイス、ルーティング、トンネルを管理するための強力なツールです。link サブコマンドは、ネットワークインターフェイスを表示および変更するために使用されます。
ターミナルが開いていない場合は、開きます。デスクトップの左側にある Xfce Terminal アイコンをクリックすることで、ターミナルを開くことができます。
次に、以下のコマンドを入力して 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 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
メインのネットワークインターフェイスに対応する行を探します。この環境では、通常 eth0 です。そこに mtu の値が記載されています。上記の例では、eth0 の MTU は 1500 です。
lo インターフェイスはループバックインターフェイスで、システム内での通信に使用されます。その MTU は通常、はるかに大きくなります。
出力を見て、eth0 インターフェイスの MTU を特定してみましょう。
Continue をクリックして次のステップに進みます。
ifconfig で MTU を確認する
このステップでは、ifconfig コマンドを使用してネットワークインターフェイスの MTU を確認します。ip はネットワーク設定に使用される最新のコマンドですが、ifconfig は古いが依然として一般的に使用されるユーティリティです。これはネットワークインターフェイスに関する同様の情報を提供します。
まず、ifconfig コマンドを含む net-tools をインストールしましょう。htop の場合と同じように、apt を使用します。
ターミナルが開いていない場合は、開きます。
以下のコマンドを入力して Enter キーを押し、net-tools をインストールします。
sudo apt update
sudo apt install net-tools -y
-y フラグは、インストール中のすべてのプロンプトに自動的に「yes」と回答し、インストールプロセスをスムーズにします。
インストールが完了したら、ifconfig コマンドを使用できます。以下のコマンドを入力して Enter キーを押します。
ifconfig
このコマンドは、すべてのアクティブなネットワークインターフェイスの設定情報を表示します。以下のような出力が表示されます。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:acff:fe11:2 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:02 txqueuelen 1000 (Ethernet)
RX packets 123 bytes 12345 (12.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 123 bytes 12345 (12.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 123 bytes 12345 (12.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 123 bytes 12345 (12.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
再び、eth0 に対応するセクションを探します。そこに mtu の値が記載されており、ip link show で確認した値と一致することがわかります。
ip と ifconfig の両方を使用することは、異なるシステムやドキュメントが一方を他方よりも優先して使用する場合があるため、役立つことがあります。
Continue をクリックして次に進みます。
/sys/class/net で MTU を調査する
このステップでは、/sys ファイルシステムを探索して MTU の値を見つけます。/sys ファイルシステムは、カーネルのデータ構造に対するインターフェイスを提供する仮想ファイルシステムです。これを使うと、カーネルパラメータやデバイス情報を調べたり、場合によっては変更したりすることができます。
MTU を含むネットワークインターフェイスの情報は、/sys/class/net ディレクトリを通じて公開されています。システム上の各ネットワークインターフェイスには、ここにサブディレクトリが存在します。
ターミナルが開いていない場合は、開きます。
まず、/sys/class/net ディレクトリの内容を一覧表示して、利用可能なネットワークインターフェイスを確認しましょう。以下のコマンドを入力して Enter キーを押します。
ls /sys/class/net/
ip link show や ifconfig の出力と同様に、ネットワークインターフェイスの一覧が表示されるはずです。この環境では、おそらく eth0 と lo が表示されます。
eth0 lo
次に、メインのインターフェイスである eth0 のディレクトリの中身を見てみましょう。以下のコマンドを入力して Enter キーを押します。
ls /sys/class/net/eth0/
これにより、eth0 インターフェイスに関する情報が含まれるファイルとディレクトリの一覧が表示されます。
addr_assign_type broadcast device ifindex mtu phys_port_id speed
address carrier dormant iflink napi_defer_hard_irqs phys_port_name statistics
addr_len carrier_changes duplex link_mode netdev_group power subsystem
bonding_slave carrier_up_count flags lower_ operstate proto_down_reason tx_queue_len
bridge_slave dev_id gro_flush_timeout name_assign_type perms qdisc type
mtu という名前のファイルに注目してください。このファイルの内容を読み取ることで、MTU の値を取得できます。cat コマンドを使って mtu ファイルの内容を表示しましょう。以下のコマンドを入力して Enter キーを押します。
cat /sys/class/net/eth0/mtu
ターミナルに MTU の値が表示されるはずで、その値は 1500 です。
1500
/sys ファイルを読み取ることで MTU を確認するこの方法は、ネットワークインターフェイスに関するカーネルレベルの情報に直接アクセスする方法を提供します。
これで、ip link show、ifconfig、そして /sys ファイルシステムを調べるという 3 つの異なる方法を使って MTU を正常に確認しました。これは、Linux では同じタスクを達成するためにしばしば複数の方法があることを示しています。
Continue をクリックして、この実験を完了します。
まとめ
この実験では、Linux でネットワークインターフェイスの最大転送単位 (Maximum Transmission Unit, MTU) を 3 つの異なる方法で確認する方法を学びました。まず、最新の ip link show コマンドを使用して、すべてのネットワークインターフェイスに関する詳細情報(MTU 値を含む)を表示しました。次に、古いが依然として一般的な ifconfig コマンドを使用してこの情報を検証しました。最後に、/sys/class/net ファイルシステムから直接 MTU 値を調べる方法を探索しました。この方法は、ネットワークインターフェイスのプロパティにプログラム的にアクセスする手段を提供します。これらの方法は、MTU 設定を確認するための異なる方法を提供し、ネットワークのトラブルシューティングやパフォーマンス最適化において重要です。



