
tracerouteコマンドでネットワークの経路を洗い出す
2021-10-302 min read
目次
概要
tracerouteコマンドでネットワークの経路を洗い出した際の操作をメモしました。
環境はmacで実施しています。
また、tracerouteのバージョンは次のバージョンとなります。
Version 1.4a12+Darwin
tracerouteの用途
tracerouteコマンドは、ネットワークのトラブルシュートに使われます。
tracerouteの原理
traceroute は、IPパケットのヘッダ情報に含まれるTTL(Time To Live)を活用します。 TTLは、ルーティングされるたびに1ずつ減っていく値で、パケットの到達範囲の制限や、滞留し続けないようにするために使われます。
※TTLの詳細は後述します。
tracerouteはこの仕組みを利用します。 目的地に向けて、TTLを1つずつ増やしたパケットを順番に目的地まで送ることで、意図的にICMPの時間切れを引き起こし。 時間切れメッセージを送ってきたルータを並べることで、パケットの経路を調べられるます。 ※しかし場合によっては、ルータが時間切れメッセージを返さないこともあります。
IPヘッダのTTL
TTLには0から255までの整数値が入ります。 TTLの値は、パケットを作って送り出すときにノードが初期値を設定します。 そして、パケットのTTLは、ルータを1つ通過する毎に1つずつ値が減っていきます。 もし、経路上でパケットのTTLがゼロになると、そのパケットはルータによって破棄されます。 このとき、パケットを破棄したルータは同時にICMPで時間切れ(TimeExceeded)のメッセージをパケットの送信元に送ることがあります。
コマンドを実行してみる
実際に 8.8.8.8
(GoogleのDNS) への接続経路を洗い出してみます。
$ traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 10.18.X.X 6.372 ms 6.000 ms 6.260 ms
2 103.5.X.X 6.324 ms
3 172.30.X.X 6.742 ms 6.937 ms 5.590 ms
4 172.30.X.X 6.780 ms 6.248 ms 6.842 ms
5 210.171.X.X 8.001 ms 8.552 ms 9.676 ms
6 108.170.X.X 8.424 ms
7 72.14.X.X 7.513 ms
8 8.8.8.8 7.154 ms 7.363 ms 7.188 ms
参考文献
Recommends
[Mac]ipコマンドの導入[iproute2mac]
2022-01-16
tracerouteコマンドでネットワークの経路を洗い出す
2021-10-30
homebrew-core is a shallow clone. 対処法
2020-12-19
Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
2019-12-21
fswatch rsync unison を使ってリアルタイムで同期する
2019-11-03
fswatchで変更されたファイルを監視する
2019-07-07
エンジニアなMacBookのセットアップ 開発環境の構築
2019-07-05
多段SSHの設定 踏み台経由
2019-06-24
Macにdockerをインストール
2019-06-09
VSCodeからSSHでリモートサーバ上のファイルを編集する
2019-05-06
画像の拡張子を一括置換する コマンド Linux Mac WSL
2019-01-09
Macでターミナルからポートスキャンを行う方法。
2018-12-09
textlint と GitHub Actions でドキュメントの自動校正のCIを構築
2022-02-12
Linux の Network Namespace でルータを作成する
2022-02-05
AutotoolsでconfigureやMakefileの作成
2022-01-10
New Posts
[AWS CDK]ECS FargateでNestJSで作成したRESTfull APIデ...
2022-05-24
[AWS CDK]S3 CloudFront OAI Route53 構成 で NextJ...
2022-05-23
[CDK]SNS+SQS+DynamoDBでBounceとComplaint情報を収集する...
2022-04-11
[AmazonSES] node.js と ejs を利用してEメールを送信する
2022-04-09
GatsbyからNext.jsへのサイト移行
2022-04-04
[AWS CDK] Lambda で S3 オブジェクトを読み書きするStackの構築
2022-03-18
[AWS CDK] S3 + CloudFrontの構築とOriginAccessIden...
2022-03-09
[AWS CDK] Bastion(踏み台)構築。SSMとEC2InstanceConne...
2022-03-06
[AWS CDK] Cognito を構築
2022-03-04
AWS CDK v2 でVPC上にAPI Gateway + Lambda + RDS +...
2022-02-28
javascriptで累積和を解く
2022-02-27
AWS Amplify で monorepo を導入し 単一リポジトリで複数プロジェクトを...
2022-02-25
AWS CDK v2 で Lambda関数のデプロイ
2022-02-23
NextJSでDevToysのようなものを作成した
2022-02-22
JSで動的計画法を利用して部分和問題を解く
2022-02-20
Hot posts!
Proxy環境下でcurlを実行する
2019-12-07
OpenCVのMatのタイプ一覧表
2018-11-25
Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
2019-12-21
TablePlusを使ってみる。シンプルでモダンなSQLクライアントツール
2018-09-30
DBクライアントツールはDBeaverをおすすめしたい
2021-03-08
AWS S3のアクセスキーIDとシークレットアクセスキーの取得 作業用ユーザを作成
2019-06-12
AtCoderで初めて色がつくまでの話(茶色) レートが中々上がらなかった原因
2018-11-25
CentOS8でEPELとPowerToolsリポジトリの有効化
2020-11-30
Macでターミナルからポートスキャンを行う方法。
2018-12-09
Python + OpenCVのfillConvexPolyで複雑なポリゴンを描画する
2018-11-27
Date
▶︎
2022 年 (23)
▶︎
2021 年 (40)
▶︎
2020 年 (30)
▶︎
2019 年 (90)
▶︎
2018 年 (89)
▶︎
2017 年 (1)
Tags
Author