[HOME] > hostname > NetBIOS名の付け方
Created: 2000.12.17
Modified: 2006.2.28
NetBIOSについて、最近やっと重い腰を上げて勉強し始めたばかりのため、 間違いや、技術的に正確さを欠く記述があると思われます。正確な情報は、 関連サイト/参考文献などで、お確かめください m(_ _)m
NetBIOS名というとピンとこない方もいらっしゃるかもしれませんが、 Windowsの「コンピュータ名(*1)」なら「あ〜、あれやん」 となる方が多いかもしれません。
要は、NetBIOS名とは、Windowsネットワーク上で各マシンを識別するための 名前(アドレス)です。
*1: 正確には、コンピュータ名 = NetBIOS名ではありません。例えば、 コンピュータ名には15バイト以上の長さを付けることができたりしますが、 NetBIOS名は15バイトまでになったりします(未確認)。
NetBIOS名は、NetBIOS(NetBEUI)で利用されているアドレスです。
IPではネットワークに接続されたマシン(正確にはネットワークインターフェイス) をIPアドレスと呼ばれる32bit(IPv4)のユニークなアドレスで識別します。 NetBIOS名は、IPのIPアドレスに相当するNetBIOSでのアドレスです。IPのホスト名 とは異なり、あくまでプロトコルで使用されるアドレスです。 ですので、NetBIOS名はNetBIOSの名前空間内でユニークである必要があります。
また、NetBIOS名には、UNIQUEとGROUPの2つの種類(Type)があり、下表の通りです。
Type | 説明 | 実際の用語 |
---|---|---|
UNIQUE | NetBIOS名に対して1つのIPアドレスのみが対応 | 「コンピュータ名」 |
GROUP | NetBIOS名に対して複数のIPアドレスが対応 | 「ワークグループ名」 |
「NTドメイン名」 |
昔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との見方もある(?)ようなので、 もう少し簡略化して、以下のように示せるかもしれません(自信ないです)。
上位層 | SMB/CIFS | - |
---|---|---|
セッション層 | NetBIOS | |
トランスポート層 | TCP/UDP | NetBEUI |
ネットワーク層 | IP | |
データリンク層 | Ethernet | |
物理層 |
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とします。
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