対象ホストへの通信経路を表示するために、Linuxコマンドでは「tracepath」もしくは「traceroute」コマンドを使用します。
このコマンはネットワークの通信にかんする設定が正しくできているか確認する場合など便利なコマンドとなります。
目次
「tracepath,traceroute」コマンドの使い方(Linux)
tracepath、tracerouteコマンドはリモートホストへのパケットの経路を表示する
以下では、Googleのドメイン向けにtracepathを実行した例となります。
$ tracepath -n google.com 1?: [LOCALHOST] pmtu 1500 1: 172.17.0.1 0.119ms 1: 172.17.0.1 0.051ms 2: 172.217.161.78 2.361ms pmtu 1452
tracepathコマンドを使用することにより、リモートホストへのネットワークの経路を確認することができます。
LinuxOSで「traceroute」コマンドは別途インストール
tracerouteコマンドは、LinuxOSでは別途インストールをすることにより使用できます。※デフォルトではコマンドは使用できません。
以下ではyumコマンドでtracerouteコマンドをインストールした例となります。
$ yum -y install traceroute ------中略------ Installed: traceroute-3:2.1.0-6.el8.x86_64 Complete! $
tracerouteコマンドを実行した例は以下となります。
$ traceroute google.com traceroute to google.com (216.58.220.142), 30 hops max, 60 byte packets 1 _gateway (172.17.0.1) 0.581 ms 0.539 ms 0.509 ms 2 * * * 3 * * * 4 * * * 5 * * * ------中略------
tracepath,tracerouteコマンドを使用することでリモートホストまでの到達経路がわかる
tracepath,tracerouteコマンドを使用することで、対象ホストまでの経路にあるルータ間でのパケットの受け渡しを確認することができます。
ただし、上記のコマンド結果のようにインターネット(グローバルな環境下)ではセキュリティ上の理由からICMPパケットを受信拒否しているルータが多くなっています。
その場合は、tracepath、tracerouteコマンドが正常に動作しないので注意してください。
tracepath,tracerouteオプション
tracepathのオプションは以下となります。
$ tracepath -help Usage: tracepath [-4] [-6] [-n] [-b] [-l ] [-p port] $
tracerouteのオプションは以下となります。
$ traceroute Usage: traceroute [ -46dFITnreAUDV ] [ -f first_ttl ] [ -g gate,... ] [ -i device ] [ -m max_ttl ] [ -N squeries ] [ -p port ] [ -t tos ] [ -l flow_label ] [ -w MAX,HERE,NEAR ] [ -q nqueries ] [ -s src_addr ] [ -z sendwait ] [ --fwmark=num ] host [ packetlen ] Options: -4 Use IPv4 -6 Use IPv6 -d --debug Enable socket level debugging -F --dont-fragment Do not fragment packets -f first_ttl --first=first_ttl Start from the first_ttl hop (instead from 1) -g gate,... --gateway=gate,... Route packets through the specified gateway (maximum 8 for IPv4 and 127 for IPv6) -I --icmp Use ICMP ECHO for tracerouting -T --tcp Use TCP SYN for tracerouting (default port is 80) -i device --interface=device Specify a network interface to operate with -m max_ttl --max-hops=max_ttl Set the max number of hops (max TTL to be reached). Default is 30 -N squeries --sim-queries=squeries Set the number of probes to be tried simultaneously (default is 16) -n Do not resolve IP addresses to their domain names -p port --port=port Set the destination port to use. It is either initial udp port value for "default" method (incremented by each probe, default is 33434), or initial seq for "icmp" (incremented as well, default from 1), or some constant destination port for other methods (with default of 80 for "tcp", 53 for "udp", etc.) -t tos --tos=tos Set the TOS (IPv4 type of service) or TC (IPv6 traffic class) value for outgoing packets -l flow_label --flowlabel=flow_label Use specified flow_label for IPv6 packets -w MAX,HERE,NEAR --wait=MAX,HERE,NEAR Wait for a probe no more than HERE (default 3) times longer than a response from the same hop, or no more than NEAR (default 10) times than some next hop, or MAX (default 5.0) seconds (float point values allowed too) -q nqueries --queries=nqueries Set the number of probes per each hop. Default is 3 -r Bypass the normal routing and send directly to a host on an attached network -s src_addr --source=src_addr Use source src_addr for outgoing packets -z sendwait --sendwait=sendwait Minimal time interval between probes (default 0). If the value is more than 10, then it specifies a number in milliseconds, else it is a number of seconds (float point values allowed too) -e --extensions Show ICMP extensions (if present), including MPLS -A --as-path-lookups Perform AS path lookups in routing registries and print results directly after the corresponding addresses -M name --module=name Use specified module (either builtin or external) for traceroute operations. Most methods have their shortcuts (`-I' means `-M icmp' etc.) -O OPTS,... --options=OPTS,... Use module-specific option OPTS for the traceroute module. Several OPTS allowed, separated by comma. If OPTS is "help", print info about available options --sport=num Use source port num for outgoing packets. Implies `-N 1' --fwmark=num Set firewall mark for outgoing packets -U --udp Use UDP to particular port for tracerouting (instead of increasing the port per each probe), default port is 53 -UL Use UDPLITE for tracerouting (default dest port is 53) -D --dccp Use DCCP Request for tracerouting (default port is 33434) -P prot --protocol=prot Use raw packet of protocol prot for tracerouting --mtu Discover MTU along the path being traced. Implies `-F -N 1' --back Guess the number of hops in the backward path and print if it differs -V --version Print version info and exit --help Read this help and exit Arguments: + host The host to traceroute to packetlen The full packet length (default is the length of an IP header plus 40). Can be ignored or increased to a minimal allowed value $
主に使用するオプションは以下となります。
- 「-n」:到達経路をホスト名でなくIPアドレスで表記する
- 「-p」port:宛先ポートを設定
- 「-l」len:パケット長を指定
- 「-I」:UDPパケットの代わりにICMPパケットを送信(スーパーユーザー権限が必要)
エンジニアのオンライン学習
エンジニアにおすすめのオンライン教材比較 | |
ITエンジニアが自宅で学習ができるオンラインスクール比較 | |