もろず blog

もろちゃんがITに関しての様々なトピックを解説します

LPICレベル3技術解説セミナー に参加してきました


f:id:chanmoro999:20140327213647j:plain

先週ですが、
LPI-Japan主催のLPICレベル3 300技術解説セミナー に参加してきました

300試験を受けるつもりは全くないんですが、
休日に開催で参加費が無料だったので行ってみました

講師の方の説明がとても分かりやすくて、
受験するかはともかく参加できてよかったです


LPIC をご存知ない方もいるかもしれませんのでサクっと説明します
LPICLinux技術者認定試験 というもので Linux の構築や管理に関する資格です

レベル1〜3まであり レベル3は1番上のレベルです
ちょうど今年から出題範囲と試験の体系が変わりレベル3は以下の区分に分かれています

  • 300 Mixed Environment
  • 303 Security
  • 304 Virtualization & High Availability

上記のうちどれか1つでも合格すればレベル3の認定がもらえます

※詳しくは LPI-Japan 公式サイトへ
IT資格といえば LPI-Japan | LinuC/OSS-DB/HTML5/ACCEL/OPCEL/LPIC


今回のセミナーでは300試験の以下の3つのトピックについて解説をして頂きました

  • Sambaの基礎
  • Sambaの共有の設定
  • Sambaのユーザとグループの管理

300試験ではこの3つのトピックだけで全体の半分を占めるそうです
※60問中29問がこの範囲からの出題


勉強になった内容を復習も兼ねてまとめます
今後この知識を使うときが来るかは分かりません
※たぶん、つkw…


この記事では、
1.ファイル共有プロトコルについて
2.SMB と CIFS
3.NetBIOS ってなにもの?
4.最後に
について説明します


1.ファイル共有プロトコルについて

会社などでファイルサーバーを利用していると思いますが、
ファイルはサーバー上にあっても 自分のPC内の他のファイルと同じように
エクスプローラーでフォルダを開いて中を見たりコピペしたりできますよね?

こんな便利なファイル共有

Linux では

  • NFS (Network File System)

Windows では

  • SMB (Server Message Block)
  • CIFS (Common Internet File System)

というプロトコルを利用して実現されています

f:id:chanmoro999:20140326004512j:plain

LinuxWindows ではファイル共有に利用されるプロトコルが違いますが、
Samba を使うことで Linux サーバーを
Windows 環境のファイルサーバーとして利用することができます

f:id:chanmoro999:20140326005429j:plain


Samba の名前は SMB をちょっとモジっているような感じですが、
商標の問題があってこの名前に落ちついたそうです


記事の先頭に戻る


2.SMB と CIFS

SMB は

  1. NetBEUI + NetBIOS
  2. TCP/IP + NetBIOS (NBT)

CIFS は

  1. TCP/IP

プロトコルが通信に利用されています

SMB では NetBIOS が利用されているという点が SMB と CIFS の大きな違いです

f:id:chanmoro999:20140324013637j:plain

また、SMB ではトランスポート層の通信に NetBEUI か TCP/IP が利用されており、
NetBEUI を利用する方式の方はよりレガシーなものです


2つの SMB にどんな違いがあるかというと、
NetBEUI で通信できる範囲は同一ネットワーク内のみでルーターを跨いだ通信ができない
という致命的な弱点があります

昔はそれでも特に問題がなかったようですが、
時代が変わり大規模ネットワークでの通信が当たり前になりこの部分が問題となりました


そこで TCP/IP で通信ができるように NetBIOS を改良し 大規模ネットワークやインターネットを介した通信に対応したそうです

特にこれは NBT (NetBIOS over TCP/IP) と呼ばれています

※昔の MicrosoftTCP/IP を完全に無視していて、
各ベンダーが独自に Windows 用の TCP/IP を実装していたらしいです


SMB で利用される NetBIOS は Microsoftが独自に開発したAPIなので
SMB 自体は Microsoft の事情だけで作られています

これを Windows 以外のOSでも利用できるように SMB を拡張し、
仕様をオープンにしたプロトコルが CIFS です


記事の先頭に戻る


3.NetBIOS ってなにもの?

SMB の中核をなす NetBIOS って一体なにものなんでしょうか?

NetBIOS は
アプリケーションから NIC へアクセスするためのAPIを指すもので、
通信プロトコルではないそうです

なので、下位の通信プロトコルに何が利用されているかによらず、
アプリケーションからは同じ NetBIOS のAPIのままどちらでも利用することができます

f:id:chanmoro999:20140324020417j:plain

NetBEUI → TCP/IP への移行がアプリケーションに影響しないよう、こういった仕様になっているんだと想像できますね


ちなみに、当然ですが通信するノード間でのプロトコルは同じでないといけないです

NetBIOS を使っているからといって
NetBEUI ⇔ NBT で通信できるわけではありません

なんだか複雑な感じですね


そんな NetBIOS は Windows ネットワークに利用されています

ついでに、NetBIOS がどんな通信をしているのか?
というのを調べてみました


NetBIOS を利用した通信では
通信先の特定に NetBIOS名 という名前で
それぞれのコンピューターを識別します


自分の名前が他のコンピューターと被っては困るので
ネットワークにつないだ時に自分の NetBIOS 名を
ブロードキャストでネットワーク全体に送って重複がないか確認します

f:id:chanmoro999:20140327204710j:plain


通信を行う際は
相手の NetBIOS 名を同じようにブロードキャストでネットワーク全体に送って
通信相手を探すということをします

f:id:chanmoro999:20140327204715j:plain


そして各コンピューターがシャットダウンするときに、
NetBIOS名を解放したことをネットワーク全体に送ります
解放された NetBIOS名は他のコンピューターが利用できるようになります

f:id:chanmoro999:20140328131308j:plain


なんだかすごいですね
いちいち全員にパケットが送られるので
ネットワークがパケットだらけになりそうなのが想像できますね

実際に、パケットの量が多くなりすぎて
性能が低下するという問題もあるそうです


こういった通信の流れになるので
コンピューター自身が名前の管理を自律的にやってくれます

別の管理用のサーバーから割り振るという手間がかからないのがメリットらしいです

また、WINS という名前解決サービスを利用することもでき、
実際の SMB 運用環境では WINS を利用することで
ブロードキャストのパケットを送らないように対策しているようです


そんな NetBIOS という仕組みはちょっと独特すぎますよね
なので、NetBIOS を使わない CIFS が作られました


記事の先頭に戻る


4.最後に

NetBIOS の話がほとんど、という感じになってしまいました

Windows のPCを使っていると、
"コンピューター名"というのがやたら意識されているなぁとなんとなく思っていましたが
これは NetBIOS による通信で NetBIOS名 が利用されている、
という背景があったんですね

普段の仕事でこのような知識をそのまま使うことはまず無いですが、
原理原則を知る事で理解のスピードと応用の幅がグッと広がると思います


以上、
役に立つときがくるのかもわからない技術講座でした


記事の先頭に戻る