yuu_nkjm blog
2008-09-06(Sat) [長年日記] 編集
[Linux][Network][Troubleshooting] digのtraceオプションでDNSの再帰的問い合わせの状況を調べる
digにtraceオプションをつけると,DNSに関する最後の問い合わせ結果だけでなく,途中の様子が見られる.openSUSE10.3のdigのmanをみても出ていなかった気がするけど使えた.
ICMP系のパケットフィルタリングをしている環境下では使えないことがある.
[nkjm@localhost ~]$ dig +trace yahoo.com ; <<>> DiG 9.4.1-P1 <<>> +trace yahoo.com ;; global options: printcmd . 181704 IN NS J.ROOT-SERVERS.NET. (中略) . 181704 IN NS K.ROOT-SERVERS.NET. ;; Received 500 bytes from 10.228.150.254#53(10.228.150.254) in 9 ms com. 172800 IN NS C.GTLD-SERVERS.NET. (中略) com. 172800 IN NS E.GTLD-SERVERS.NET. ;; Received 487 bytes from 202.12.27.33#53(M.ROOT-SERVERS.NET) in 38 ms yahoo.com. 172800 IN NS ns1.yahoo.com. (中略) yahoo.com. 172800 IN NS ns5.yahoo.com. ;; Received 197 bytes from 192.52.178.30#53(K.GTLD-SERVERS.NET) in 322 ms yahoo.com. 21600 IN A 206.190.60.37 (中略) yahoo.com. 172800 IN NS ns8.yahoo.com. ;; Received 297 bytes from 66.218.71.63#53(ns1.yahoo.com) in 136 ms
2008-08-19(Tue) [長年日記] 編集
[Linux][Network][Troubleshooting] TCP/UDPパケットをtshark(Wireshark)でキャプチャ
Bind9のロギング機能では,Severityをどう調整しても,「"iken.ac.jp"という問い合わせに対して"*.*.*."と答えました」という様な項目が吐けない.
仕方ないので,パケットキャプチャでもやってみっかってことで,tcpdumpを使ってみた.ざっと見た感じ,パケットのヘッダは見られるけど中身が見られない様だったので,パス.つづいて,Etherrealの後継であるwireshark(テキスト版だとtshark)を使ってみる事にした.
tcpdumpで特定のポートへのパケットを監視する - yuu_nkjm blog(2012-12-04)も使えそう.
まずはインストール.Fedora 7(?)のyumにwiresharkがあったので,
yum install wireshark
として終了.
つづいて,キャプチャ.
tshark port 53 and not host 192.168.0.1 -q -b filesize:500 -w dns.log
上記コマンドは,監視するのはポートが53番で送信元ホストが192.168.0.1以外.quietにしておく.filesizeが500KBごとにローテートしながら,dns.logと連番と日付からなるファイルに書き込む.ということ.
んで,キャプチャしたログを見る.
tshark -t ad -r dns.log
上記コマンドは,パケットのタイムスタンプを日時で表示.dns.logを読み込む.と言うこと.
1 2008-08-19 14:31:24.89 *.*.*.* -> *.*.*.* DNS Standard query A hoge.com 2 2008-08-19 14:31:24.89 *.*.*.* -> *.*.*.* DNS Standard query response A "*.*.*.1"
もうちょっと詳細まで見たい場合には,xオプションを使用する.
tshark -x -r dns.log
ちょっと詰まったのは,書き込み時に"-t ad"を使おうとしたこと.パケットは生パケットのまま保存されて,出力する時に-tで指定したフォーマットを適用するイメージなわけね.
wiresharkのマニュアルはこちら.
2008-08-05(Tue) [長年日記] 編集
[Linux] manのman
man [-c|-w|-tZT device] [-adhu7V] [-m system[,...]] [-L locale] [-p string] [-M path] [-P pager] [-r prompt] [-S list] [-e extension] [[section] page ...] .man に与えられる引き数 page は、通常はプログラムやユーティリティ、関数などの名前である。これらの引き数それぞれに対応する マニュアルページが検索・表示される。 section が指定されると、 man はマニュアルを検索する対象をそのセク ションに限定する。デフォルトの動作では、すべてのセクションを既定の順序で検索し、最初に見つかった page だけを表示する。複数のセクションに同名の page がある場合でも、表示されるのは最初の一つだけとなる。
例えば,"関連項目"に"manpath(1), manpath(5)"と表示されていて,manpath(5)の方を見たい時は,"man 5 manpath"と入力すればよいわけですね.