2019年2月に投稿した記事

Pingについての基本事項

CCNPの受験のためにPingについて調べたことをまとめたいと思います。 Pingはトラブルシュートでよく使うツールですのでしっかりと覚えたほうがいいでしょうね。

Pingとは

Ping(Packet InterNet Groper(Grouper)はネットワークの宛先に到達できるかどうかをテストする際に使用します。動作の仕組みとしては非常に単純で以下のように動作します。 1.ICMP(Internet Control Message Protocol)のエコー要求メッセージを宛先アドレスに送信し、応答を待ちます。 2.宛先が予め決められた時間内(デフォルトで2秒)にエコー応答を返信できた場合に到達可能とみなします。

ICMPのタイプ

少し脱線しますが、ICMPのタイプは以下になります。
タイプ 内容
0 エコー応答
3 宛先到達不能コード
4 始点抑制要求(Source Quench)
5 リダイレクトコード
6 代替アドレス
8 エコー要求
9 ルータアドバタイズメント
10 ルータ要求
11 時間超過コード
12 パラメータ不正
13 タイムスタンプ要求
14 タイムスタンプ応答
15 情報要求
16 情報応答
17 マスク要求
18 マスク応答
ICMPタイプは多く定義されていますが、エコー要求としてtype8が使われエコー応答としてtype0が使用されます。また到達不能コードとしてはtype3が使用されています。とりあえずこれら3つのタイプを覚えておきましょう。

pingの出力結果

pingの出力結果として表示されるマークとその内容は以下の表になります。 この中でよく見るのはやはり!と.とUでしょうか。
マーク 内容
! 応答を受信
. タイムアウト
U 到達不能
Q 始点抑制要求
M フラグメント負荷
? パケットタイプが不明
& パケットの存続時間超過

Pingが失敗する原因

Pingが失敗するということはレイヤー3以下、つまりネットワーク層・データリンク層・物理層のいずれかに原因があります。 1.ルーティングに問題がある 2.インターフェースがダウン 3.ACLが適用されている 4.ARP(Address Resolution Protocol)が解決できない 5.タイムアウトまでのデフォルト時間(2秒)以内に返信できないほど遅いネットワーク環境 6.送信元アドレスが正しくない 7.宛先の受信バッファに空きがないか処理がおいついていない

BGPについての基本

CCNP受験のためにBGPについてまとめました。

要約

BGP(Border Gateway Protocol)はルーティングプロトコルの一つ EGP(Exterior Gateway Protocol)に分類 AS(Autonoumous System)の番号が同じ場合はiBGP/違う場合はeBGP ルーティングアルゴリズムはパスベクタプロトコル(path vector protocol;pvp)を使用 TCP179を使用 CIDR(Classless Inter-Domain Routing)対応 IPv6対応

BGPはルーティングプロトコルの一つ

ルーティングプロトコルはざっくり言ってしまえば、ネットワークの端から端まで繋がるためのプロトコルです。OSI参照モデルでいうところのレイヤー3のプロトコルに該当します。IPアドレスを用いた通信の到達可能性(reachability)を担保するためにルーティングプロトコルは存在します。 BGP(Border Gateway Protocol)はそのルーティングプロトコルの一種です。

EGPに分類される

ルーティングプロトコルはさらにIGP(Interior Gateway Protocol)とEGP(Exterior Gateway Protocol)に分類されます。IGPは主にイントラネット(個人的もしくは企業内部でのみ使用されるネットワーク)で使用されます。一方EGPはISP(Internet Service Provider)、いわゆるプロバイダー同士を結び付けられるために使用されることを目的としています(例外は後述のiBGP)。

TCPポート179を使用した隣接関係

BGPで隣接関係(ルート情報を交換し合う関係)を築くためには特定のピア(peer)のIPアドレスを指定する必要があります。また、そのIPアドレスが到達可能であることも必要です。隣接関係を構築やルート情報を交換するために使用するポートがTCPポート179です。

eBGPとiBGP

BGPはIANA(Internet Assigned Number Authority)によって管理されるAS(Autonoumous System)番号を用いて動作します。AS番号は16bitから構成され、個人的に使用できる番号は64512から65535の範囲であり、特にプライベートAS番号と呼ばれます。BGPが動作する際に同じAS番号同士の場合はiBGP(internal BGP)、異なるAS番号同士の場合はeBGP(external Border Gateway Protocol)が動作します。 iBGPとeBGPではルート情報の伝播の仕方が異なります。eBGPがピアとして追加された場合はeBGPとiBGP全てにルート情報が伝播します。しかしiBGPがあるiBGPに追加された場合、eBGPへはルート情報が伝播しますが他のiBGPに伝播しません。これはiBGPがフルメッシュで繋がっていることを前提としているため、ピア関係をそれぞれのiBGPピアと隣接関係を築く必要があります。 またeBGPは直接繋がっていることを前提としているためTTLがデフォルトで1に設定されています。一方iBGPはそういった制限がありません。

パスベクタプロトコル(Path Vector Protocol;PVP)

BGPはルーティングアルゴリズムにパスベクタプロトコルを採用しています。パスベクタプロトコルは、IGPで使用されるような帯域幅やホップ数といったメトリックを使用しません。代わりにルート情報に属性(attribute)を埋め込んでピアに伝達し、そのピアはルートに紐づいた属性に基づいたルーティングが行われます。

CIDR(Classless Inter Domain Routing)対応

IPアドレスをクラスA,クラスB,クラスCに分類したクラスフルアドレッシングだとルートが集約できずに余分なルート情報を送ることになり、ルーターのリソースが無駄となります。BGPは現在一般的に用いられているversion4でCIDRをサポートすることで柔軟なルート集約が行えるようになっています。