0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

対向機を使わずループバックでping疎通を行う

Last updated at Posted at 2025-11-06

LANケーブルを1つのホストの2つのNISポートに直結するとpingは成功しますが実際には信号はケーブルを通して送受信されません。これはOSによってルーティングが解決され、ホスト内部で通信を行うためです。しかし、これではNICやケーブルの導通をテストしたい場合には不適です。一方でそのために対向機を用意するのもやや面倒です。

最近のLinuxではipコマンドのnetns機能を使ってネットワーク名前空間を使うとこの問題を解決できます。ip netnsにはついてはこの辺りを参照のこと。

以下ではeth0~eth4がある状況で、eth0→eth4にpingテストを実施することを考えてみます。

概要

eth0とeth4を接続してそれぞれにIPアドレス192.168.1.1/192.168.1.254を設定すると以下の様になります。この状態でping 192.168.1.254をしてもOSは自分自身に192.168.1.254が割り当てられていることを知っているため、内部通信(ローカルループバック)を行います。わざわざNICを動作させる様なことはしません。

画像1.jpg

ここでeth4をns-targetというネットワーク名前空間に分離してみます。するとeth4のIPアドレスはデフォルト名前空間のルーティングテーブルからは見えなくなるので、同一のネットワークアドレス(192.168.1.0/24)を持つeth0からICMPパケットを送出する様になります。

画像2.jpg

手順

まずeth4を設定します。名前空間を作成してeth4を移動、その名前空間の中でIPアドレスを設定して立ち上げます。

# ip netns add ns-target
# ip link set eth4 netns ns-target
# ip netns exec ns-target ip addr add dev eth4 192.168.1.254/24
# ip netns exec ns-target ip link set eth4 up

後は普通にeth0を192.168.1.0/24の範囲でIPアドレスを設定して、192.168.1.254宛てにpingするとちゃんとケーブルを介して信号が送受信されます。

# ip addr add dev eth0 192.168.1.1/24
# ip link set eth0 up
# ping 192.168.1.254
:
# ip link set eth0 down

pingテストが終わったら名前空間を削除するのを忘れずに。

# ip netns delete ns-target

おまけ

eth0も別の名前空間に設定する方法もあります。
コマンドが多くて手間ですが、名前空間を削除する時に設定したIPアドレスがリセットされるのが利点です。
既に使用中でIPアドレスが設定してある状態からテストする時に便利です。

# ip netns add ns0
# ip netns add ns4
# ip link set eth0 netns ns0
# ip link set eth4 netns ns4
# ip netns exec ns0 ip addr add dev eth0 192.168.1.1/24
# ip netns exec ns4 ip addr add dev eth4 192.168.1.254/24
# ip netns exec ns0 ip link set eth0 up
# ip netns exec ns4 ip link set eth4 up
# ip netns exec ns0 ping -c 10 192.168.1.254
# ip netns delete ns0
# ip netns delete ns4
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?