[HOME] > hostname > NetBIOS名の付け方

NetBIOS名の付け方

Created: 2000.12.17
Modified: 2006.2.28

INDEX

ポイント

NetBIOSについて、最近やっと重い腰を上げて勉強し始めたばかりのため、 間違いや、技術的に正確さを欠く記述があると思われます。正確な情報は、 関連サイト/参考文献などで、お確かめください m(_ _)m

概要

NetBIOS名というとピンとこない方もいらっしゃるかもしれませんが、 Windowsの「コンピュータ名(*1)」なら「あ〜、あれやん」 となる方が多いかもしれません。

要は、NetBIOS名とは、Windowsネットワーク上で各マシンを識別するための 名前(アドレス)です。

*1: 正確には、コンピュータ名 = NetBIOS名ではありません。例えば、 コンピュータ名には15バイト以上の長さを付けることができたりしますが、 NetBIOS名は15バイトまでになったりします(未確認)。

NetBIOS名

NetBIOS名は、NetBIOS(NetBEUI)で利用されているアドレスです。

IPではネットワークに接続されたマシン(正確にはネットワークインターフェイス) をIPアドレスと呼ばれる32bit(IPv4)のユニークなアドレスで識別します。 NetBIOS名は、IPのIPアドレスに相当するNetBIOSでのアドレスです。IPのホスト名 とは異なり、あくまでプロトコルで使用されるアドレスです。 ですので、NetBIOS名はNetBIOSの名前空間内でユニークである必要があります。

また、NetBIOS名には、UNIQUEとGROUPの2つの種類(Type)があり、下表の通りです。

NetBIOS名のType
Type 説明 実際の用語
UNIQUE NetBIOS名に対して1つのIPアドレスのみが対応 「コンピュータ名」
GROUP NetBIOS名に対して複数のIPアドレスが対応 「ワークグループ名」
「NTドメイン名」

NBT...SMB/CIFS

昔NetBIOSは、NetBEUIと呼ばれるネットワークプロトコルにおける トランスポート層プログラミングインターフェイスだったそうです。

しかし、現在は、IPネットワークが標準環境となったため、無理矢理 NetBEUIのパケット構造をTCP/IPネットワーク上で利用できる ようにカプセル化した:NBT(NetBIOS over TCP)として利用されることが 多いと思います。

で、このNBTについてMicrosoftが標準化のために、 RFC1001, RFC1002 を策定しようとしたらしいのですが、結局正式なRFCにはならなかったそうです。 あと、現在のNBTはこのRFCをさらにMicrosoftが拡張したそーです...

さらに、このNBTを利用した上位プロトコルとして、SMB(ServerMessageProtocol) /CIFS(CommonInternetFileSystem)が存在します。

えー、もうこの辺から何がなんだがわからなくなってきますX-) そんなあなたと私のために:-)、 "UNIXを中心とした共有術"にOSI参照モデルでのNetBIOS,NetBEUI, SMB,CIFSの関係が示されています。ただ、SMB=CIFSとの見方もある(?)ようなので、 もう少し簡略化して、以下のように示せるかもしれません(自信ないです)。

OSI参照モデル
上位層 SMB/CIFS -
セッション層 NetBIOS
トランスポート層 TCP/UDP NetBEUI
ネットワーク層 IP
データリンク層 Ethernet
物理層

NetBIOS名・命名規約

NetBIOS名のサイズ

NetBIOS名は、RFCでは16Byteのサイズ制限が存在します。しかーし、Microsoft のNetBIOS名は、ユーザが指定可能なサイズは 15 Byteなので注意して ください。

Microsoftでは、 NetBIOS名の16Byte目をNetBIOS Type(副指数)として利用しています。 このTypeは、TCP/IPでいうと、NetBIOS名がIPアドレスで、ポート番号が Typeにあたるものと考えると理解しやすいよーです。事実、NetBIOS名のType には、Workstation Service(<00h>),Master Browser(<03h>)などサービスを識別する 値が付与されます。

現在は、MicrosoftベースのNetBIOS名が一般的ですので、ここではユーザが指定可能な NetBIOS名のサイズ制限は 15 Byteとします。

NetBIOS名に使えるコード

RFC1001によると、次の制限があります。

"Alphanumeric"の定義もいろいろあるみたいですが、 この定義が一番正しいような気がするので、これに基づくことにします。 (参考: JIS X 0201文字コード表)

すると、以下の文字が利用できることになります。

   !  "  #  $  %  &  '  (  )  *  +  ,  -  .  /
0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?
@  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O
P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _
`  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o
p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~
	

hostname

Written by kabada