あんたいとる

無駄の中に宝がある!

【Fortigate】execute pingコマンドのオプションについて

以下の記事で紹介したコマンドの中から "execute ping" コマンド " に指定できるオプションについて紹介します。

【Fortigate】トラブルシューティングに役立つ基本コマンド 10 - あんたいとる

現在設定されているオプションの表示

#execute ping-option view-setting
Ping Options:
        Repeat Count: 5
        Data Size: 56
        Timeout: 2
        Interval: 1
        TTL: 64
        TOS: 0
        DF bit: unset
        Source Address: auto
        Pattern:
        Pattern Size in Bytes: 0
        Validate Reply: no


設定できるオプション

adaptive-ping <enable|disable>

FortiOS 5.6で追加されたオプションです。
デフォルトでは ICMP要求パケットは1秒間隔で送信されます。
adaptive-pingをenableに設定することで、前の要求に対する応答を受信するとすぐに次のICMP要求パケットを送信するようになります。

data-size <bytes>

パケットのサイズをバイト単位で指定します。

※data-size に 500 、repeat-countに 2を指定して execute-ping を実行した例
# execute ping-options data-size 500
# execute # execute ping-options repeat-count 2
# # execute ping 192.168.22.1
PING 192.168.22.1 (192.168.22.1): 500 data bytes
508 bytes from 192.168.22.1: icmp_seq=0 ttl=64 time=0.8 ms
508 bytes from 192.168.22.1: icmp_seq=1 ttl=64 time=0.7 ms

--- 192.168.22.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.7/0.7/0.8 ms

data-sizeに 500バイトを指定してますが、pingの実行結果行を見ると508バイトになってます。
これは データサイズ(500バイト) + ICMPヘッダ( 8バイト)= 508バイトになるためです。

df-bit {yes | no}

DFビットの ON/OFFを指定します。
yesを設定すると、ICMPパケットが断片化されないようにします。
noを設定すると、ICMPパケットのフラグメント化を許可します。

EthernetのMTU値は 1500バイトになっているため、1500バイト以上のパケットを送るときは、パケットを断片化する必要があります。
下記の例では、DFビットのON/OFFでの動作の違いについてみるために、DFビットをONにし、データサイズを 1472バイトと1473バイトにしてPing実行した場合の結果を見ています。
※ データサイズ(1472バイト) + ICMPヘッダ(8バイト)+ IPヘッダ(20バイト) = 1500バイト

# execute ping-options df-bit yes     ※DFビットをON
# execute ping-options data-size 1472   ※データサイズを 1472に設定
# execute ping 192.168.22.1
PING 192.168.22.1 (192.168.22.1): 1472 data bytes
1480 bytes from 192.168.22.1: icmp_seq=0 ttl=64 time=8.9 ms ※Ping応答あり
1480 bytes from 192.168.22.1: icmp_seq=1 ttl=64 time=1.2 ms

--- 192.168.22.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.2/5.0/8.9 ms

# execute ping-options data-size 1473   ※データサイズを 1473に設定

HOSTNAME # execute ping 192.168.22.1    
PING 192.168.22.1 (192.168.22.1): 1473 data bytes ※Ping応答なし

--- 192.168.22.1 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss

# execute ping-options df-bit no     ※DFビットをOFF
# execute ping 192.168.22.1
PING 192.168.22.1 (192.168.22.1): 1473 data bytes
1481 bytes from 192.168.22.1: icmp_seq=0 ttl=64 time=1.5 ms ※Ping応答あり
1481 bytes from 192.168.22.1: icmp_seq=1 ttl=64 time=1.4 ms

--- 192.168.22.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% pack


interface {Auto | <outgoing interface>}

FortiOS 5.6で追加されたオプションです。
宛先への Pingを実行するインターフェースを指定します。

interval

FortiOS 5.6で追加されたオプションです。
Pingを実行する間隔(秒)を指定します。

pattern <2-byte_hex>

送信パケットを埋める "パッディング"バイトを指定します。
※Fortigateの場合 デフォルトでは 0 パディングになっている模様。
実際に現場でこのオプションを使用したことがなく使いどころをイマイチ分かってないが、ネットワークにおいてデータに依存する問題を診断する場合などに使用するらしい。

repeat-count <repeats>

pingを繰り返す回数を指定します。 デフォルトは 5回です。Linuxでのデフォルトや Windowsでの「Ping -t」のように「Ctrl + C」で停止するまで連続してPingを実行する設定はないようです。
設定できる回数は、1から2147483647までで、2147483647以上の値を指定してもエラーにはなりませんが、設定値は 2147483647になります。

reset

pingのオプション設定をデフォルトに戻します。 FortiOS 5.6で追加されたオプションです。それまでは設定をデフォルトに戻すのに一度ログアウトする必要がありました。

Source {auto | <source-intf_ip>}

Pingを送信するインターフェイスを指定します。autoを指定した場合は、宛先のホスト名または IPアドレスへのルートに基づいて、自動的に送信元アドレスとインターフェイスが選択されます。
Internal側に存在する宛先に対して、FortiGateのDMZインターフェイスIPアドレスを送信元として Ping実行したい場合など、指定したインターフェイスから異なるネットワークセグメントへの接続をテストするために使用されます。

timeout <seconds>

pingタイムアウトするまでの待ち時間を秒単位で指定します。

tos <service_type>

Set the ToS (Type of Service) field in the packet header to provide an indication of the quality of service wanted. パケットヘッダーのToS (Type of Service)フィールドを設定して、重視されるサービス品質を示します。

指定できる値 意味
default デフォルトに設定。TOSフィールドを 0x00にします。
lowcost TOSフィールドを 0x02にしコストを最小化します。
lowdelay TOSフィールドを 0x10にし遅延を最小化します。
reliability TOSフィールドを 0x04にし信頼性を最大化します。
throughput TOSフィールドを 0x08にしスループットを最大化します。



ttl

TTL(Time to Live)値を設定します。
TTLは破棄または返送される前にpingパケットが許可するホップ数です(デフォルトは64)

validate-reply {yes | no}

yesに設定して返信データを検証します(デフォルトは no)

# execute ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
data reply validate correct.
64 bytes from 192.168.1.1: icmp_seq=0 ttl=128 time=1.1 ms
data reply validate correct.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=128 time=0.7 ms

--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.7/0.9/1.1 ms
view-settings

現在のpingオプションの設定を表示します。

参考URL

Knowledge Base : Troubleshooting Tip: Using PING options from the FortiGate's CLI
CLIリファレンス FortiOS 6.0[ Ping-options、Ping6-options]