820 likes | 1k Views
Microsoft ネットワーク 「?」のポイント. 簡単に自己紹介. 大川原 啓玄 ( おおかわら よしはる ) NT-Committee2 所属 数年前から新潟でときどき勉強会を開いています 新潟インターネット研究会と同じようなポリシーをもつ 非営利団体 あおい情報システム株式会社 代表取締役 半年前に設立しました。 そのまえは、マイクロソフト株式会社マーケティング本部 そのまえは、日立系列会社で SI をやってました Windows だけでなく Solaris や Linux をつかってました. もくじ. Microsoft ネットワークは独自規格?
E N D
簡単に自己紹介 • 大川原 啓玄(おおかわら よしはる) • NT-Committee2 所属 • 数年前から新潟でときどき勉強会を開いています • 新潟インターネット研究会と同じようなポリシーをもつ非営利団体 • あおい情報システム株式会社 代表取締役 • 半年前に設立しました。 • そのまえは、マイクロソフト株式会社マーケティング本部 • そのまえは、日立系列会社でSIをやってました • WindowsだけでなくSolarisやLinuxをつかってました
もくじ • Microsoft ネットワークは独自規格? • マイクロソフトはオープンソースが嫌い? • NetBEUI と NetBIOS • NetBIOS 名前解決 • 名前解決は二つある • ブラウジング機能 • 認証とSMB • パスワードハッキング • Sambaとの関係 • Active Directory 機能紹介
Microsoftネットワークは独自規格? • いちおう RFC1001 と RFC1002に規定されています • http://www.cse.ohio-state.edu/cgi-bin/rfc/rfc1001.html • http://www.cse.ohio-state.edu/cgi-bin/rfc/rfc1002.html • RFC1001とRFC1002をマイクロソフトがさらに拡張したものが、現在のMicrosoft ネットワークです • この「さらに拡張した」という部分だけみれば Closed な仕様 • 問題はこの「拡張した」部分の基礎的な技術情報が提供されていないということ
Microsoftネットワークは独自規格? • 余談 • マイクロソフトには生産的で画期的なアイデアはどんどん重用される社内文化がある • 技術やユーザビリティなどの観点から「イイ(・∀・)!」仕様はどんどんインプリメントされる • たぶんいい方向になると思って作ってるうちに、こうなっちゃったんじゃないかな? • なのでドキュメントもあとから作るから大変に・・・ それは イクナイ (・A・)/
なぜ仕様をオープンにしないのか? • ソフトウエアの仕様(設計やコードなど)も知的財産のひとつであり法的に守られるべき権利として考えている • お金と手間をかけてつくったものを全部公開すると産業としてなりたたない • 良心的に解釈すると、ITベンチャーを擁護すると言い換えられなくもない
マイクロソフトはオープンソースが嫌い? • マイクロソフトはオープンソースを否定しているわけではない • Shared Souce Codeプログラムなどで制限はあるが仕様は公開している • 一部のソフトウエアはオープンソース化している • MS.comで提供されている技術情報は他社に比べれば、かなり開示しているほう • 有効な開発手法であることは認めている • Internet Week 2004 1,dec マイクロソフト株式会社 法務・政策企画本部 統括本部長 平野氏 講演
オープンソースって何? • 「オープンソースとは単にソースコードを公開するというだけではなく、ディストリビュータ・ハッカー・ユーザという立場の異なる三者の利害を調整し、そのソフトウェアをより良くしていくものでなければならない 」GNU・Debian 八田氏 • 八田氏「ライセンスに関しては、現在普及しているオープンソースライセンスでは、今後の状況に対応できないような限界があるのも事実 」 • 両者とも主張が数年前に比べて少しずつ変わってきている
マイクロソフト曰く「GPLが問題」 • GPL第7条による特許などに認められなければ「無償、自由な配布」 • 特許にならなければ、企業として研究開発資金は回収できない • 「特許やビジネスの構造を否定する発想」平野氏 • 余談 • アイデア泥棒、仕様泥棒はホント腹が立つ • 特許に守られることがない システムインテグレートは提案資料からいいとこどりを、既存の業者に流されることも多い
話をもどして・・・ • とにもかくにも、ユーザとしては仕様が公開されているかどうかよりも、閲覧できる基礎的資料がないってことが一番困る • 前回、前々回のおさらいに補足しながら、ActiveDirectoryの話などをしていきます
NetBEUI と NetBIOS • 原型はDOS時代(1980年代の半ば)にできるだけ簡単なアーキテクチャという方針で設計されたプロトコル • 名前もなかった。NetBIOSというプロトコルとインターフェースをかねた総称で呼んでいた • ルーティング不可 • Ethernetだけでなくトークンリングでも使っていた • 実はもともとはIBMやマイクロソフトが共同で定めたベンダー独自規格 • マイクロソフトはこの仕様をあとあとまで引きずることになる
NetBEUI と NetBIOS • 原型をTCP/IPに対応させて、IPネットワーク上で使えるようにとアーキテクチャを整理した • ここで NetBEUI (第2+3層)とNetBIOS over TCP/IP (NBT 第4層)、NetBIOSインターフェース (第4層と5層のインターフェース)、SMB(第5層)が規定される 第5層 NetBEUIの原型(広義のNetBIOS) SMB NetBEUI NBT 第4層 TCP/UDP IP 第3層 Ethernet 第1,2層 Ethernet
NetBEUI と NetBIOS • NetBIOSインターフェースをTCP/IP上で使うため NetBIOS over TCP/IP (NBT)が規格化された • RFC1001、RFC1002 で規定(ポート137、138、139 で通信を行うプロトコル) • あわせてNetBIOSは IPX/SPX上で使うこともできるようになった • SMB • NetBIOSを上でファイル共有やプリンタサービスを共有するためのプロトコル • NetBIOS名前解決がされていないと使用できない • Hostname名前解決だけではダメ
NetBEUI/NetBIOSを使った通信 • NetBEUI/NetBIOSベースのネットワークではNetBIOS名は一意であり、重複が許されない • IPアドレス の考え方と一緒 • NetBIOS名 は host名みたいなものと思いがちだがIPアドレスに変わるものと理解したほうがよい • NetBEUIでもNBT+TCP/IPでも本質は変わらない • よくみるポップアップ「ネットワーク上に同じコンピュータ名が存在します。~」
NetBIOS名 と コンピュータ名 • NetBIOS名 = コンピュータ名 + 識別子 • Ex. yoshihao01<00> = yoshihao01 + <00> • <00> ファイル・プリンタ共有クライアント機能 有効 • <20> ファイル・プリンタ共有サーバ機能 有効 • Etc・・・ • 同様にNetBIOSグループ名 = グループ名(ワークグループまたはドメイン) + 識別子
NetBIOS名による通信 NetBIOSグループ名による通信 NetBIOS名 と NetBIOSグループ名 GroupB に通信 ClientB へ通信 ServerA ServerA 破棄 受信 GroupX ClientA 受信 破棄 受信 GroupX 破棄 ClientB ClientC GroupZ
通信方式の違い • UNIXでの通信は TCP/IPベース (hostsname解決) • Hostname はIPのAllies • DNSやhostsで名前を解決して、IPベースで通信 • マイクロソフト ネットワークの通信は NetBIOSベース(NetBIOS名解決) • NetBIOSをIPにカプセル化して通信 • IPアドレスがあっていても、宛先コンピュータ名があってないと通信できない • 何度も言うが 「NetBIOS名 は IPアドレスに変わるもの」
NetBIOS名前解決 • NetBIOS名前解決の原則はブロードキャストによる名前解決 • でも、それだとセグメント越えられないよね?NetBEUIだとルーティングできないしね • じゃ、NetBEUIやめて、NBTにすればセグメント越えられるじゃん
セグメントを越えてのNetBIOS名前解決 • LmhostsファイルによるNetBIOS名前解決 • hostsファイルと同様な記述をする • 192.168.0.100 computerA • 192.168.1.200 computerB
セグメントを越えてのNetBIOS名前解決 • WINSを使う場合はWINSサーバで管理する • Hostsと同じように、クライアントごとにlmhostを書いてたら大変 • サービスとしては ほぼダイナミックDNSと一緒 • クライアント側でWINSサーバを設定すると、そのWINSサーバに自分のNetBIOS名を書き込みに行く • クライアントはWINSサーバにNetBIOS名前解決を問い合わせることにより、NetBIOS名に対するIPアドレスを取得できる • WINSの導入により、ブロードキャスト宛のトラフィックは削減される
セグメントを越えてのNetBIOS名前解決 • WINSを使う場合はWINSサーバで管理する • 使用するポート番号は 42 • WINS = Windows Internet Naming Server の略 • こんな言い方をするから、ややこしくなるんだ! • 実はNetBIOSの各種の問題を簡単に解決するためにはWINSサーバを立てるのが一番
NBTを使った通信 • NBTを使うことで、コンピュータ名の代わりにIPアドレスが使える • Windows NT 3.1、Windows 98 SP1以降がNBTに対応(だったはず) • 「\\computerA\share」という共有名を「\\192.168.0.100\share」と置き換えることができる • Windows 95のネットワークでは使えない • ただ基本的に「コンピュータ名を通信のベースとして使う」ことはかわらない」
どこまでいってもNetBIOS通信 • 「コンピュータ名を通信のベースとして使う」ことはかわらない」 • このことを実感するためには、わざと設定を間違えてみるとわかる
間違えてみよう コンピュータ名:ComputerAIPアドレス :192.168.0.100 コンピュータ名:ComputerBIPアドレス :192.168.1.200 Hostsファイル192.168.1.200 computerB2Lmhostsファイル 192.168.1.200 computerB2 ホスト名、コンピュータ名が 間違ってる IPベース通信 通信 コンピュータ名:ComputerB2IPアドレス :192.168.1.200 NetBIOS通信 コンピュータ名が間違ってる IPベースでの通信はできても、NetBIOSでの通信ができない!
ここで重要なことは • Ping [IP Address] では Relay がある • でもファイル共有ができない • でも、ping [hostname] だとNGだ • そうか!名前解決ができていないんだ • そこまではいいんです。厄介なのは次の場合
罠 コンピュータ名:ComputerAIPアドレス :192.168.0.1 コンピュータ名:ComputerBIPアドレス :192.168.0.2 Hostsファイル192.168.0.2 computerBLmhostsファイル 192.168.0.2 computerB2 コンピュータ名だけが間違ってる IPベース通信 通信 コンピュータ名:ComputerB2IPアドレス :192.168.0.2 NetBIOS通信
罠と呼ばれる理由 • Ping computerB では Relay がある • Hosts ファイルで名前解決してるからね • 名前解決が完全にできていると思い込む • 実は hostname名前解決だけで、NetBIOS名前解決はできていない • 当然だが、IPベース通信の SMTPやPOP3 などもHostnameで通信可能 • でもファイル共有だけができない • 名前解決ができてるのに、どうして・・・・と悩む • ちょっとネットワークに詳しいと「 ポート137-139をどっかがブロックしてんじゃないの?」とか難しいほうにいってしまう
違うんです! • ファイル共有できないのは、NetBIOS名前解決ができてないからなんです • 名前解決がhostname名前解決とNetBIOS名前解決の二つがあって、それぞれ違うものだという理解がないと原因が見えてこない • 悲しいかな、hostsもlmhostsも正しく記述されてると、名前解決が二つあるとは実感できない
そして、統合へ • 名前解決が二つあるのは、やっぱりややこしいということでWindows 2000 Server 以降、WINSとDNSを統合させた。 • Active Directory 環境下ではDNSの名前解決を、WINSの名前解決に使うことができる • Windows 2000以降のクライアントOSをActive Directory に参加させるとDNSサフィックス名が自動で付加される • 当然、hostnameとNetBIOS名は同一
統合しても • Hostname名前解決と、NetBIOS名前解決はやっぱり違うものなんです! • 便利になると本質を見失っちゃいますね • クルマについてるABSとかも一緒ですよねー
マイクロソフト心の叫び(たいんじゃないかと思う)マイクロソフト心の叫び(たいんじゃないかと思う) • すべては歴史が悪いんです。。。。下位互換性をもちながらVerUpするのは大変なんですよぉ • もともとはIBMの独自規格なのに、マイクロソフトはそれに縛られ続ける。。。。でも、IBMはNetBIOSを捨て さっさと Linuxへ(ヲイッ • こんなことなら FTPベースでのファイル共有を拡張したほうがよかったんじゃないの?
ここまでの内容 • 理解できました? • Microsoftネットワークを理解するうえではNetBEUI/NetBIOSを理解していないとダメなんです • これがわからないと次に進めません • つぎはやっとブラウザの話です・・・
ブラウジング機能 • ブラウジングとは? • コンピュータ一覧を提供するサービスのことです • 「ネットワークコンピュータ」をダブルクリックすると他のコンピュータが見えますよね?あれです • 表示されるコンピュータ一覧を「ブラウズリスト」といいます • ブラウズリストをもっているコンピュータを「ブラウザ」といいます • サーバーサービスですが「ブラウザ」です
ブラウジング機能 • こまったことに、ここにもNetBIOSがでてきます • 名前解決と同じようにWINSサーバを構築することでブラウジング機能を正しく簡単に運用することができます • ですが、名前解決と同様に理解するためには、NetBIOSブロードキャストによるブラウジング機能の手順を理解する必要があります
ブラウザの種類 • ドメインマスタブラウザ • ドメイン環境下で、マスタブラウザを統合する • マスタブラウザ • ドメインマスタブラウザと区別する意味で、ローカルマスタブラウザと呼ばれることもあります • バックアップブラウザ • マスタブラウザからコピーを受け取り、クライアントからのブラウズリストの要求にこたえます • ポテンシャルブラウザ • ブラウザの機能は有しますが、現在はサービスを提供していない状態です
「ネットワークを参照できません」 • ネットワークコンピュータをダブルクリックすると「ベン!」という気に障る音と一緒に表示されるあの忌まわしいメッセージです • これはクライアントがマスタブラウザに接続できなくなると表示されるメッセージなんです • マスタブラウザからブラウズリストがもらえないとこのポップアップメッセージがでてきます
ブラウズリストの取得 • OS起動後「ネットワークコンピュータ」をダブルクリックすると NetBIOSグループ名に対して、「ブラウズリストをもってる奴、応答せよ」とブロードキャストします • するとブラウザが「俺様だ」と反応を返します • この時点ではレスポンスだけでブラウズリストは渡していません GroupB に通信 ServerA 受信 GroupX 受信 GroupX 破棄 GroupZ
ブラウズリストの取得 • このリクエストにレスポンスするのは、マスタブラウザだけでなく、バックアップブラウザもレスポンスします • クライアントはそのレスポンスの中から、任意のブラウザを選択して、ブラウザのアドレス(NetBIOS名)をキャッシュします • クライアントはキャッシュしたブラウザに対して「ブラウズリスト」を要求します
誰でもブラウザになれたんじゃ? • ブラウザに接続できないと「ネットワークを参照できません」というメッセージが表示されます • でも「Microsoft ネットワーク共有サービス」をインストールしてるWindows OSは、優先順位があるものの「ポテンシャルブラウザ」です • 優先順位は前回お話があったとおりです • つまり、ブラウザに接続できず、自分がブラウザになれる場合は・・・
空っぽのネットワークコンピュータ • 「誰もブラウザじゃないのか、じゃ俺様ブラウザ」ということになり、自分自身がブラウザになります • これがWindows 98でよく発生してた、ネットワークコンピュータを開いたら「空っぽ」の正体です • マスタブラウザが同じNetBIOSグループ名の中に複数できてしまう可能性が発生します
マスタブラウザの王様争い • マスタブラウザはNetBIOSグループに対して12分ごと(Windows 9x系は 15分)に自分自身がマスタブラウザであることを通知します • 「俺が王様だ!」 • ところがブラウザには優先順位があり、自分より優先順位の高いマスタブラウザからの通知を受け取ったマスタブラウザは、マスタブラウザであることをやめなくてはなりません • より強いマスタブラウザの傘下に収まるわけです
マスタブラウザの統一 • こうして同一NetBIOSグループの中は時間をかけてひとつのマスタブラウザに集約されます • ブラウザの王様が決定されます • つまり勘違いしてマスタブラウザになってしまったクライアントは最大12分間、ネットワークコンピュータが空っぽの状態になってしまいます • まさに裸の王様ですね
バックアップブラウザと優先マスタブラウザ • バックアップブラウザの決定の優先順位もマスタブラウザと同様です • グループ内クライアント数によってバックアップブラウザの台数がかわります(1台+ 32台につき1台追加) • リソースキットには 16台につき1台追加と書かれているらしい • プライマリドメインコントローラはブラウザの優先順位が最も高く、バックアップドメインコントローラとあわせて優先マスタブラウザと呼ばれます • 皇帝といった感じでしょうか
ブラウズリストの内容 • ところで、ブラウズリストって何が書いてあるんでしょう • NetBIOS名 • コメント(マイコンピュータのプロパティで記述するコメント) • コンピュータの属性 • Macintoshサービスが稼動 • Netwareサービスが稼動 • LAN Managerドメインのメンバ • プリントサーバが稼動 • RASサーバが稼動 • UNIXサーバである • Windows NT系OSである • Windows for Workgroup Windows 9x系のOSである • その他数種類の情報を含む • ワークステーション機能が稼動 • サーバ機能が稼動 • SQL Serverが稼動 • PDC機能が稼動 • BDC機能が稼動 • Time サーバが稼動 • スタンドアロンサーバである • ポテンシャルブラウザである • バックアップブラウザである • マスタブラウザである
ブラウズリストへの登録 • 各クライアントは自分の情報をブラウズリストへ登録する • そのタイミングは、 • Windows NT系 Computer Browerサービス起動/停止 • Windows 9x系 Microsoft ネットワーク共有サービス起動/停止(実際はコンピュータの起動/停止) • 定期 12分間隔 • 定期登録は自らが利用可能であることをアナウンスします
ブラウズリストの更新 • 定期登録連絡が3回連続で来なかった場合はブラウズリストから削除されます • 正常なシャットダウンが行われなかった場合が想定されます • 最大で12分x3回=36分間ブラウズリストには残る • たまにシャットダウンしたPCがネットワークコンピュータに残ってますねえ • 最新のブラウズリストは、最長12分おきにクライアントに配信される • 36分+12分 = 最大48分 幽霊クライアントが存在することになる
複数ワークグループのブラウジング • 同一セグメント内に複数のワークグループがある場合マスタブラウザはワークグループの数だけ存在することになります • NetBIOSグループ名が違うので統合はされません • マスタブラウザが他のワークグループのブラウズリストを保持する • 3つのワークグループがあれば、ひとつのマスタブラウザは3つのブラウズリストをもつ
セグメントをまたいだワークグループ • ルータをまたいで構成されるワークグループはブロードキャストが届かない • NetBEUI はセグメントを越えられない • 必然的に NBTによるネットワークになる • 名前解決同様、ブラウジングが正しくできるよう設定すれば難しいことはない • ただしLmhostsを使って名前解決やブラウジングを設定することは管理上は大変 • 動作原理を理解したうえで、WINSサーバの使用が推奨
気づきました? • NetBIOS名前解決とブラウジングは別物です • もちろん相互連携はあります • つまり「ファイル共有すること」と「ネットワークコンピュータで共有パソコンが みえること」は別な事象なんです • ネットワークコンピュータで見えなくても、共有フォルダのパスを直接指定すれば共有できるっていう理由がこれです
NTドメインの構成は必須ではない • NBTを使うことにより複数セグメント間で複数ワークグループを構成することは不可能ではない • NetBIOS名前解決もブラジングもできますからねえ • 一部の書籍では「セグメントをまたぐ場合はドメインが必須」と書かれている場合もありますが・・・ • ただ面倒です。楽なほうがいいですよねえ • Hostsファイルでhostname名前解決するよりDNSサーバ • LmhostsファイルでNetBIOS名前解決/ブラウジングするよりWINSサーバ