ラベル ネットワーク の投稿を表示しています。 すべての投稿を表示
ラベル ネットワーク の投稿を表示しています。 すべての投稿を表示

2012年3月9日金曜日

ICMPエコー・パケット

  • このエントリーをはてなブックマークに追加

ICMPエコーとは、指定したエコー(データ・パケット)を2つのノード(PC)の間で送受信するためのメッセージです。
送信元が送信先に対して、エコーメッセージを送ります。データが送信先に届くと、送信先から送信元に全く同じデータを送り返します。このような通信によって、両ノード間でネットワークの疎通を確認することができます。普段よく使うpingコマンドは、ICMPエコー機能を使って実現されています。ICMPエコーパケットの構造は下記です。

・タイプ:ICMPエコーの種類を示す(8→要求;0→応答)
・ID、シーケンス番号:ICMPエコーの識別ID
・echoダータ:ICMPエコーのダータの長さ、pingで指定できる。

実際にpingで試してみましょう。
コマンドプロンプトで、【ping www.google.com –l 1472 –f –n 2】を打ってみましょう。
-l → echoデータのLength
-f →  パケットを分割することを許可しない
-n → パケットの送信回数
image
オプション「-l」に1472より大きな値を指定した場合は、以下の様に、”パケットの断片化が必要ですが、DF が設定されています。”というエラーが出ます。※「DF」はIpヘッダのフラグの1つで、ipパケットを分割しないことを意味します。
image
これは、LANでイーサネットのMTUサイズが1500になっているからです。
ipヘッダ20byte + icmpヘッダ8byte + echoデータ1473byte =1501 >1500
 補足:イーサネットフレームのヘッダは14byte;Tcpのヘッダは20byte

参考
ICMPメッセージの構造

2012年3月8日木曜日

netshでMTUサイズを設定する

  • このエントリーをはてなブックマークに追加

MTUはMaximum Transmission Unitの略で、ネットワーク上で一回送信できるIPパケットの最大のサイズを意味します。Ethernetの場合は、1500Byte程度。MTUのサイズを超えるデータを送る時に、IPパケットを分割する必要があります。

 

Windows vista(Windows Server 2008)以降で、netshコマンドでMTUのサイズを設定することができます。

 

・管理者権限でコマンドプロンプトを起動する。

・ネットワークインターフェースの一覧を表示する。各インターフェースの名前を確認できる。

>netsh interface ipv4 show interfaces 

・MTUの値を指定する。

>netsh interface ipv4 set subinterface “interface name” mtu=1500

 

ちなみに、pingでMTUサイズを調査することができます。

参考

pingでMTUサイズを調査する

抜粋

1472bytesのデータまでは正しく送受信できていることから、このネットワークのMTUサイズは、「1472(データ・サイズ)+8(ICMPヘッダ)+20(IPヘッダ)=1500bytes」より、イーサネットのMTUサイズ(1500bytes)と一致していることが分かる。

2011年8月18日木曜日

NTLM Authentication Scheme for HTTP

  • このエントリーをはてなブックマークに追加

パケットレベルでNTLM認証の仕組みの解説

NTLM Authentication Scheme for HTTP


NTLM認証を実装している.Net Framework用のライブラリ

Mono.Security.Protocol.Ntlm

2011年6月7日火曜日

telnetでメール送信

  • このエントリーをはてなブックマークに追加

telnetでメールを送信する

telnet [smtp server] 25
HELO 自分のメールドメイン(実際に任意の文字列でもいい)
Data
Subject:件名
This is Data. using . to finish input
.

参考

2011年1月20日木曜日

Debian/Ubuntu ネットワーク設定方法

  • このエントリーをはてなブックマークに追加

Ubuntu Linuxシステムでネットワーク設定方法を書いておきます。
UbuntuではIPの設定情報は/etc/network/interfaces設定ファイルに記載されています。

UbuntuをVMware Playerで動かしているので、インストール直後、既定でDHCPサーバーからIPアドレスを取得する状態になっている。下記のコマンドを実行し、確認できます。

cye@ubuntu:~$ less /etc/network/interfaces
......
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

そして、/etc/network/interfacesファイルを編集することによって、固定IPを設定することができます。編集する前に、ひとつコピーを保持したほうがいいと思います。このファイルを編集するには、rootの権限が必要です。

cye@ubuntu:~$ sudo vi /etc/network/interfaces
......
# The primary network interface
#auto eth0 →コメントにする
#iface eth0 inet dhcp →コメントにする

次の行を追加する。
auto eth0 →起動時にアドレスを自動設定するインタフェース名
iface eth0 inet static →静的(Static)か動的(dhcp)かループバック(loopback)
address 192.168.31.100
netmask 255.255.255.0
gateway 192.168.31.2
network 192.168.31.0
broadcast 192.168.31.255

編集が終わったら、ファイルを保存し終了します。
ネットワークサービスを再起動し、設定が反映されます。networkingスクリプトを実行します。
cye@ubuntu:~$ sudo /etc/init.d/networking restart

またifconfigコマンドを使って、IPを設定することもできます。(※一時的に有効のようです。再起動したら、/etc/network/interfacesファイルの設定に戻る)
cye@ubuntu:~$ sudo ifconfig eth0 192.168.31.100 netmask 255.255.255.0 broadcast 192.168.31.255

routeコマンドでルーティングテーブルを設定します。
cye@ubuntu:~$ sudo route add default gw 192.168.31.2

DNSの設定はファイル/etc/resolv.confに記述されています。
cye@ubuntu:~$ less /etc/resolv.conf
nameserver 192.168.31.2
domain localdomain
search localdomain

名前解決には/etc/hostsファイルも利用できるので、DNSとhosts、どちらを優先して利用するのかを/etc/nsswitch.confファイルに記述します。
cye@ubuntu:~$ less /etc/nsswitch.conf
......
hosts: files dns
......
→通信時にまずはhostsファイルを参照し、名前解決できなければDNSに問い合わせる。

Debian Linuxでも同じ設定方法だそうです。

※備考
ネットワークインタフェースを有効、無効
#ifconfig eth0 up
#ifconfig eth0 down
ネットワークインタフェース無効、有効をした後に、ブラウザからインタネットにアクセスできない可能性が高いので、ネットワークサービスを再起動したほうがいい。
#/etc/init.d/networking restart


2010年7月28日水曜日

Open DNS Server

  • このエントリーをはてなブックマークに追加

ネットで公開されている無料DNSサーバー

①OpenDNS

優先DNSサーバー:208.67.222.222

代替DNSサーバー:208.67.220.220


②Google

優先DNSサーバー:8.8.8.8

代替DNSサーバー:8.8.4.4

手元のDNSサーバーがうまく動作しない、プロキシーサーバーが壊れているというような場合は、一時的に公開DNSサーバーを使えば助けになるかもしれない。

2010年7月14日水曜日

ARP, GETMAC, MSG コマンド

  • このエントリーをはてなブックマークに追加

ARPテーブルとは、Ethernetの通信に必要なIPアドレスとMACアドレスの対応情報のことです。。これらの情報は通常OSが管理しているので、ユーザーが内容を変更する必要はありません。

ヘルプを表示
  arp -?

GETMACコマンドは、名前のとおり、コンピュータのMACアドレスやトランスポート名を表示するコマンドです。

MSGは、ユーザー名あるいはセッション名やセッションIDを指定して、相手にメッセージを送信するためのコマンドです。

2010年7月12日月曜日

Net Shareコマンドでフォルダを共有する

  • このエントリーをはてなブックマークに追加

C:\Windows\system32>net share ?
このコマンドの構文は次のとおりです:

NET SHARE
共有名
共有名=ドライブ:パス [/GRANT:ユーザー,[READ | CHANGE | FULL]]
[/USERS:ユーザー数 | /UNLIMITED]
[/REMARK:"テキスト"]
[/CACHE:Manual | Documents| Programs | BranchCach
e | None ]
共有名 [/USERS:ユーザー数 | /UNLIMITED]
[/REMARK:"テキスト"]
[/CACHE:Manual | Documents | Programs | BranchCache | None ]
{共有名 | デバイス名 | ドライブ:パス} /DELETE
共有名 \\コンピューター名 /DELETE


例:c:\temp フォルダを共有し、everyoneにフル権限を与える

    net share shareFolderName=c:\temp /grant:everyone,full

例:フォルダ共有の削除

    net share shareFolderName /delete

2010年7月11日日曜日

ROUTE コマンド

  • このエントリーをはてなブックマークに追加

ROUTEコマンドは、ルーティングテーブルの表示や、ルートの追加、削除、変更を行うためのコマンドである。

ROUTEコマンドのオプション一覧

/?            ヘルプを表示
-f             ルートテーブルにあるゲートウェイのエントリをすべてクリアする
-p            [add]コマンドと併用された場合、システムの再起動後もルートは維持される
-4            IPv4の使用を強制
-6            IPv6の使用を強制

ROUTEコマンドのサブコマンド一覧

print          ルートを表示
add           ルートを追加
delete          ルートを削除
change         ルートを変更

①現在のルーティングテーブルを確認する
    route print

②ルートを追加、削除、変更する
    route add <宛先IPアドレス> mask <サブネットマスク> <ゲートウェイ> metric <メトリック> if <インタフェース>
    route delete <宛先IPアドレス>
    route change <宛先IPアドレス> mask <サブネットマスク> <ゲートウェイ> metric <メトリック> if <インタフェース>

※Metric: メトリック値(少ないほど優先度が高くなる)

2010年7月10日土曜日

NSLOOKUP コマンド

  • このエントリーをはてなブックマークに追加

NSLOOKUPは、DNSサーバーに問い合わせを行うためのコマンドである。DNS(Domain Name System)サーバーの動作や設定内容を確認することができます。

NSLOOKUPコマンドのオプション一覧
-all            現在の設定オプションを表示した後、対話モードに入る
-debug          デバックモードに入る
-nodebug        デバックモードを解除する
-d2            詳細なデバックモードに入る
-nod2           詳細なデバックモードを解除する
-defname        指定したホスト名にデフォルトドメイン名を付加して検索
-nodefname       defnameオプションの動作を解除する
-recurse         再起検索を指定する
-norecurse        反復検索を指定する
-search          ドメインサーチリストを付加して検索する
-nosearch       searchオプションの動作を解除する
-vc            TCP接続による検索を行う
-novc           UDP接続による検索を行う
-domain=<ドメイン名>       ディフォルトドメイン名を指定する
-srchlist=<ドメイン名>        ドメインサーチリストを指定する
-root=       ルートDNSサーバーを指定する
-retry=<試行回数>      検索失敗時の試行回数を指定する
-timeout=<タイムアウト秒>  DNSサーバに対するタイムアウト時間を秒数で指定する
-querytype=<検索レコード>    名前解決の対象とするレコードを指定する
-query=<検索レコード>    querytypeと同じ
-type=<検索レコード>     querytypeと同じ
-port=<ポート番号>      DNSサーバーへ接続する際のポート番号を指定する、既定53
-class=<クラス名>      検索するレコードクラスを指定する
-msxfr            高速ゾーン転送モード(many-answers)を指定する
-nomsxfr           msxfrオプションの動作を解除する
-ixfrver=<シリアル番号>   IXFR(Incremental Zone Transfers)差分ゾーン転送モードの使用と、DNSゾーンのシリアル番号を指定する
<ホスト名>/IP/<ドメイン名>  名前解決の対象を指定する

ホスト名からIPアドレスを検索する(正引き)
  nslookup <ホスト名>

IPアドレスからホスト名を検索する(逆引き)
  nslookup

DNSサーバーから特定のレコード情報を取得する
  nslookup -type=<レコード> <ホスト名>
  nslookup -type=<レコード>
  例:nslookup -type=MX hostname.com

  レコードには、主に次のようなものがある。
    ◎A:  ホスト名に対応するIPアドレスを定義
    ◎PTR: IPアドレスに対応するホスト名を定義
    ◎NS:  ネームサーバの定義
    ◎SOA: ドメインの情報を定義
    ◎MX:  メールサーバの定義
    ◎SRV: ネットワークのサービスを定義
    ◎CNAME: ホスト名のエイリアス(別名)の定義

2010年7月9日金曜日

NETSTATコマンド

  • このエントリーをはてなブックマークに追加

今日は、NETSTATコマンドの使い方を書いてみようと思います。
ネットワーク関連のトラブルシューティングにはまだ欠かすことができないツールと言えるでしょう。

Netstatは、ホストの各ポートの使用状況、EthernetおよびIP/TCP/UDP/ICMPの各プロトコルの統計情報の表示、およびルーティングテーブルなどを表示するためのコマンドである。

使い方
    NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]

利用可能なオプションは下記のとおりです。
「オプション一覧」
/?            ヘルプを表示
-a            すべての接続とリッスンポートを表示 [all]
-b            接続中のポートや待機中のポートの作成に使われた実行可能ファイルを表示
-e            Ethernetの統計情報を表示
-n            アドレスとポート番号を数値形式で表示
-o            プロセスIDも表示
-p             指定したプロトコルの接続を表示、TCP,TCPv6,UDPまたはUDPv6を指定する
-r            ルーティングテーブルの内容を表示
-s            プロトコル(IP/ICMP/TCP/UDP)の統計情報を表示
-f            外部アドレスの完全修飾ドメイン名 (FQDN) を表示  
-t            現在の接続のオフロードの状態を表示       

①実行可能なファイルを表示する
netstat -b

アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
TCP 125.0.10.178:50078 download:http CLOSE_WAIT
[cmdagent.exe]
TCP 125.0.10.178:50227 tz-in-f191:http TIME_WAIT
TCP 127.0.0.1:49216 cye-PC:49217 ESTABLISHED
[firefox.exe]

②各プロトコルの統計情報を表示する
netstat -s

IPv4 統計

受信したパケット = 1733016
受信したヘッダー エラー = 0
受信したアドレス エラー = 0
転送されたデータグラム = 0
受信した不明プロトコル = 0
受信後に破棄されたパケット = 364
受信後に配信されたパケット = 1748442
出力要求 = 1762634
ルーティング破棄 = 0
破棄された送信パケット = 4
ルートのない送信パケット = 523
再構築が必要 = 0
再構築 = 0
再構築エラー = 0
正常に断片化されたデータグラム = 0
断片化できなかったデータグラム = 0
作成された断片 = 0
......

-eオプションも併用すると、Ethernetに関する統計情報も表示される
netstat -se

③ポートの利用状況を確認する
netstat -an
-anオプションをつけて実行すると、TCPとUDPプロトコルに関して、各接続のローカルアドレス(IP:Port)と外部アドレス(IP:Port)、さらにTCP接続では状態が表示される。

TCPの接続の状態には、5種類がある。
・LISTENING:    待ち受け状態
・SIN_SENT:     サーバに対して通信開始の要求を送信したが、まだ応答を受け取っていないか、相手が無応答の状態
・ESTABLISHED:  TCPコネクションが確立して通信が行われている状態
・CLOSE_WAIT:   相手からFINを受け取った状態
・TIME_WAIT:   コネクションの終了待ち状態