#これはなに?
社内ネットワークで問題が起こった時に、私が調査する観点を書き出してみた。
各組織、各人のやり方はあると思いますが、何かの参考になれば。
#無線に明るくないため、無線は割愛
#調査概要
##レイヤー
L1 -> L3(L4) -> L2 -> L7 の順番で見る。
- 何はなくとも物理層。障害の大半はここ。
- 次いで IPアドレス周りやフィルタ。
各レイヤーで見ることは後半で。
##切り分け観点
- 問題が起こっているのは一人か?複数か?
- 複数の場合どの単位か?島、セグメント、など。
- 問題は一時的?常時?
- 一時的なら何と相関するか?トラフィック量、日時、など。
- 今まで使えていたのか?新たに使おうとしてだめなのか?
- 物理障害?論理障害?
- どこまで疎通できるのか?
- デフォルトゲートウェイ(デフォゲ)?ISPのルータ?8.8.8.8?
##調査に使う代表的なコマンド/ツール
-
ifconfig
ipconfig
- 端末の IPアドレス設定など確認
-
netstat
route
- 端末のルーティングテーブル確認
-
ping
- どこまで疎通できるか
- ICMP のエラーメッセージは宝物
-
traceroute
tracert
- どこまで疎通できるか
- パケットが届いていないのか、ICMP エラーを返さない設定なのかは判断つかないので、インターネット上は参考程度に
-
arp
- 実存確認
- IPアドレス被り確認
-
tcpdump
wireshark- 端末でのパケット確認
- 適切な場所で pcap を取得できれば、解決に近づく
##知識
- TCP/IP の正しい挙動
- 正しい挙動との差分を見ることで、事象を把握する
#L1調査
###障害が物理セグメントに紐づく
- 物理ミスがないか確認する
- HUBなどの電源が抜かれてないか
- ポート挿し間違え
- ケーブル (ストレート/クロス)
- AutoMDI/MDIX は、autoネゴじゃないと効かないので注意
- メタルケーブルは 100m まで
- ポート挿し替え、ケーブル入れ替えてみる
- ポート/ケーブル不良がないか切り分ける
- ケーブルの内部断線、接触不良はよくある
- ポート/ケーブル不良がないか切り分ける
- half でリンクアップしてる?
- autoネゴと固定のインタフェースを接続すると、auto側が half でリンクアップする
- 通信はできるがエラーが頻発する
- 機器によって(Catalystなど)は 1G/half の実装がなくて、auto と 1G/full固定を接続しても 1G/full でリンクアップする機器もある
###障害が端末単体
- 同上
#L3/L4調査
###障害が論理セグメントに紐づく
- ルータ調査
- インタフェース設定確認
- IPアドレス/マスクが正しい?
- IPアドレスかぶりしてない?
- エラーパケット発生頻度はどうか?
- ルーティングテーブル確認
- デフォゲある?
- ping をうつ
- 自身のIPアドレス
- デフォゲ
- 対向ISPルータ
- 8.8.8.8
- フィルタリング
- ルータのACL
- Firewallのポリシー
- 上二つは、設定変更というトリガーがあるはずなので、気づきやすい
- 端末のパーソナルファイアウォール、iptables
- 各種リソース
- NATテーブル
- トラフィック
- 理論上WireSpeed以上はでない
- セッションテーブル
- FW や SLB など L4 以上みる機器の場合
- インタフェース設定確認
###障害が端末単体
- インタフェース設定確認
-
ipconfig /all
ifconfig -a
- IPアドレス/マスクが正しい?
- IPアドレスが 169.254.x.x?
- この場合は DHCP の IPアドレス取得失敗
- ルータ(DHCPサーバ)との疎通?
- ルータ(DHCPサーバ)の DHCPプール?
- この場合は DHCP の IPアドレス取得失敗
- ルーティングテーブル確認
-
route print
netstat -rn
- デフォゲある?
- 個別のルーティングが切られている?
-
- 設定問題なかったら、近くから順に ping をうつ
- 127.0.0.1(loopbackアドレス)
- 自身のIPアドレス
- デフォゲ
- デフォゲが失敗したら、隣の人宛
- 対向ISPルータ
- 8.8.8.8
- 本当に繋ぎたいアドレス
- ここまでいけば L3/L2 は大抵OK
-
#L2調査
###障害が物理セグメントに紐づく
- ルータ/SW調査
- デフォゲの arp が正しく解決できているか
- MACアドレステーブル確認
- デフォゲのMACが正しいインタフェースに紐づいているか
- 対向機器とネイティブVLAN比較
- タグVLANを使っている場合
- ネイティブVLANにはタグがつかない
- ネイティブVLANが違うと認識がずれる
- ネイティブVLANにはタグがつかない
- タグVLANを使っている場合
###障害が端末単体
- デフォゲの arp が正しく解決できているか
- ping した後に(ping は失敗する前提)
arp -a
- 正しく解決できている
- 違う MACアドレスが解決できている
- 静的エントリが入っている?
- 違うネットワークにつながっている?
- 解決できていない
- 違うネットワークにつながっている?
- ping した後に(ping は失敗する前提)
#L7調査
- DNS
- 名前解決確認
-
nslookup
dig
- 本来のリゾルバ指定
- オープンリゾルバ (@8.8.8.8) 指定
-
- 名前解決確認
- HTTP(S)
- エラーコードある?
- SSLネゴシエーション?
- pcap取得してどこで失敗しているか