はじめに

こんにちは!今回はping6コマンドについて解説します。

ping6はIPv6版のpingコマンドです。IPv6アドレスへのネットワーク疎通確認に使います。IPv6対応が進む今、知っておくと便利ですね。

基本的には通常のpingと同じですが、IPv6アドレスに対応しているってわけです。

ping6コマンドとは

ping6は、IPv6ホストへのICMPv6エコーリクエストを送信し、応答を待つ外部コマンドです。

IPv6はインターネットプロトコルの次世代版で、アドレスが2001:db8::1のような形式になります。IPv6対応のネットワーク環境では、このコマンドで疎通確認ができます。

基本構文

1
ping6 [オプション] IPv6アドレスまたはホスト名

デフォルトではCtrl+Cで停止するまで無限にpingを送信し続けます。

主なオプション

オプション 説明
-c 数 指定した回数だけpingを送信
-i 秒 pingを送信する間隔(秒単位)
-s バイト 送信するデータサイズ
-w 秒 タイムアウト時間(ミリ秒)
-I インタフェース 使用するネットワークインタフェース

使用例

例1: 基本的なping6

1
ping6 -c 4 2001:4860:4860::8888

実行結果:

1
2
3
4
5
6
7
8
9
PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes
64 bytes from 2001:4860:4860::8888: icmp_seq=1 ttl=119 time=18.5 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=119 time=17.8 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=3 ttl=119 time=18.2 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=4 ttl=119 time=17.9 ms

--- 2001:4860:4860::8888 statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/stddev = 17.8/18.1/18.5/0.3 ms

IPv6アドレスに4回ping6を送信します。

例2: ホスト名でのping6

1
ping6 -c 3 ipv6.google.com

実行結果:

1
2
3
PING ipv6.google.com(2607:f8b0:4004:809::200e) 56 data bytes
64 bytes from 2607:f8b0:4004:809::200e: icmp_seq=1 ttl=119 time=15.3 ms
...

IPv6対応ホスト名を指定してping6。自動的にIPv6アドレスに解決されます。

例3: ローカルリンクアドレスへのping6

1
ping6 -c 3 fe80::1%eth0

実行結果:

1
2
3
PING fe80::1%eth0(fe80::1) from fe80::xx%eth0 eth0
64 bytes from fe80::1: icmp_seq=1 ttl=64 time=0.8 ms
...

ローカルリンクアドレス(fe80で始まる)への確認。インタフェース指定が必要です。

例4: ping送信間隔を指定

1
ping6 -c 5 -i 2 2001:4860:4860::8888

実行結果:

1
(2秒間隔で5回ping6)

2秒間隔でping6を送信。

例5: データサイズを指定

1
ping6 -c 3 -s 1000 2001:4860:4860::8888

実行結果:

1
(1000バイトのデータでping6)

より大きなデータサイズを送信。ネットワーク品質の診断に利用できます。

例6: タイムアウトを指定

1
ping6 -c 3 -w 2000 ipv6host.example.com

実行結果:

1
(応答を2秒間待機)

応答待機時間を2秒に制限。

例7: 特定のインタフェースから送信

1
ping6 -c 4 -I eth0 2001:4860:4860::8888

実行結果:

1
(eth0から送信される)

複数のIPv6インタフェースがある場合、特定のインタフェースを指定。

例8: ローカルマシンのIPv6確認

1
ping6 -c 2 ::1

実行結果:

1
2
3
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.1 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.1 ms

ローカルホスト(::1)へのping6。常に成功します。

Tips・注意点

IPv6アドレスの形式

1
2
3
ping6 2001:4860:4860::8888    # フルアドレス
ping6 2001:db8::1              # 短縮形(::で連続するゼロを省略)
ping6 fe80::1%eth0             # ローカルリンク(インタフェース指定)

IPv6アドレスの形式を理解することが重要です。

IPv6対応の確認

1
2
ping6 -c 1 ipv6.google.com
# 応答なしの場合はIPv6非対応または接続不可

ネットワークがIPv6に対応しているか確認できます。

インタフェース指定の重要性

1
2
ping6 -c 1 fe80::1           # エラー
ping6 -c 1 -I eth0 fe80::1   # 成功

ローカルリンクアドレスへのping6にはインタフェース指定が必須です。

実践的な使い方

IPv6ネットワーク接続診断

1
2
3
ping6 -c 4 ::1                         # ローカルホスト確認
ping6 -c 4 fe80::1%eth0                # ルーター確認
ping6 -c 4 2001:4860:4860::8888       # インターネット確認

段階的にIPv6接続を診断。

デュアルスタック環境での検証

1
2
ping -c 4 example.com      # IPv4確認
ping6 -c 4 example.com     # IPv6確認

同一ホストがIPv4とIPv6の両方に対応しているか確認。

IPv6接続性スクリプト

1
2
3
4
5
6
7
#!/bin/bash
echo "IPv6 connectivity test"
if ping6 -c 1 -W 2 2001:4860:4860::8888 > /dev/null 2>&1; then
  echo "IPv6: OK"
else
  echo "IPv6: NG"
fi

IPv6接続可否を判定するスクリプト。

レイテンシ監視(IPv6)

1
ping6 -c 100 2001:4860:4860::8888 | grep avg | awk '{print $4}' | cut -d'/' -f2

100回のping6から平均応答時間を抽出。

まとめ

ping6コマンドのポイント:

  • IPv6ホストへの疎通確認を行う基本コマンド
  • -c 数: 指定回数だけping6を送信
  • -i 秒: ping6送信の間隔を指定
  • -I インタフェース: ローカルリンク使用時は必須
  • -w ミリ秒: 応答待機時間を指定
  • IPv6が普及する中で重要な確認ツール
  • よく使う組み合わせ: ping6 -c 4, ping6 -I eth0

IPv6対応が進む今、ping6も基本技として身につけておくと便利です。IPv4のpingと同じように使えるので、覚えやすいですね!