NetBIOS 名称解析

NetBIOS 名称解析

NetBIOS 名称解析意味着成功地将 NetBIOS 名称映射成 IP 地址。NetBIOS 名称是用于标识网络上的 NetBIOS 资源的 16 字节地址。NetBIOS 名称要么是唯一的(独占),要么是组(非独占)名称。当 NetBIOS 进程与特定计算机上的特定进程通讯时,会使用唯一名称。当 NetBIOS 进程与多台计算机上的多个进程通讯时,会使用组名称。
使用 NetBIOS 名称的进程的一个例子是运行 Windows XP Professional 的计算机上“Microsoft 网络的文件和打印机共享”。启动计算机时,该服务将根据计算机名称注册一个唯一的 NetBIOS 名称。服务使用的准确名称是 15 个字符的计算机名加上第 16 个字符 0x20。如果计算机名不是 15 个字符长,则插入空格一直到长度为 15 个字符为止。
当您尝试通过使用计算机名称建立到该计算机的共享文件连接时,在指定的文件服务器上的“Microsoft 网络的文件和打印机共享”服务对应于特定的 NetBIOS 名称。例如,当您尝试连接称为 CORPSERVER 的计算机时,与那台计算机上的“Microsoft 网络的文件和打印机共享”服务相应的 NetBIOS 名称是:
CORPSERVER   [20]
注意用空格填充计算机名。建立文件和打印共享连接之前,必须先创建 TCP 连接。要建立 TCP 连接,NetBIOS 名称 "CORSERVER [20]" 必须解析成 IP 地址。
NetBIOS 名称解析成 IP 地址的确切机制取决于为 NetBIOS 节点配置的节点类型。RFC 1001“TCP/UDP 传输上的 NetBIOS 服务的协议标准:概念和方法”定义了 NetBIOS 节点类型,如下表所列。

 

节点类型 描述
B-节点(广播)
B-节点使用广播 NetBIOS 名称来注册和解析名称。B-节点有两个主要问题:(1) 广播将干扰网络上的每个节点,(2) 路由器通常不转发广播,所以只能解析本地网络上的 NetBIOS 名称。
P-节点(端对端)
P-节点使用 NetBIOS 名称服务器 (NBNS),如 WINS 服务器来解析 NetBIOS 名称。P-节点不使用广播,而是直接查询名称服务器。
M-节点(混合)
M-节点是 B-节点和 P-节点的组合。默认情况下,M-节点作为 B-节点使用。如果 M-节点无法通过广播解析名称,则使用 P-节点查询 NBNS 服务器。
H-节点(混合)
H-节点是 P-节点和 B-节点的组合。默认情况下,H-节点作为 P-节点使用。如果 H-节点无法通过 NBNS 解析名称,则使用广播解析名称。
运行 Windows Server 2003 的计算机默认是 B-节点,配置 WINS 服务器时变成 H-节点。这些计算机也可以使用本地数据库文件 (Lmhosts) 来解析远程 NetBIOS 名称。Lmhost 文件存储在 systemroot\System32\Drivers\Etc 文件夹中。详细信息,请参阅 TCP/IP 数据库文件
强烈建议您对基于 Windows 的计算机配置 WINS 服务器的 IP 地址,以便解析远程 NetBIOS 名称。如果基于 Active Directory 的计算机(例如 Windows XP Professional 和 Windows Server 2003 操作系统)要与运行 Windows NT、Windows 95、Windows 98、Windows 2000 或 Windows Millennium Edition(不是基于 Active Directory)的计算机通讯,必须配置这些计算机上 WINS 服务器的 IP 地址。
 
 
NetBIOS:
是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API
历史
NetBIOS是一个网络协议,在上世纪80年代早期由IBM和Sytec联合开发,用于所谓的PC-Network。虽然公开发表的文档很少,协议的API却成为了事实上的标准。
随着PC-Network被令牌环和以太网取代,NetBIOS也应该退出历史舞台。但是,由于很多软件使用了NetBIOS的API,所以NetBIOS被适配到了各种其他的协议上,比如IPX/SPX和TCP/IP。
使用令牌环和以太网传输的NetBIOS现在被称为NetBEUI。在Micrsoft Windows 98发布之前,一直广泛使用。在TCP/IP上运行的NetBIOS称为NBT,由RFC 1001和RFC 1002定义。NBT的基本思想是在基于IP的络上模拟基于NetBIOS的PC-Network。NBT在Windows 2000中引入,是现在首选的NetBIOS传输。
概述
不管使用哪一种传输方式,NetBIOS提供三种不同的服务:
名字服务:名字登记和解析
会话服务:可靠的基于连接的通信
数据包服务:不可靠的无连接通信
当NetBIOS是数据链路层协议时,可以通过5Ch中断访问其功能。传递给这些函数的消息使用NCB格式。
NetBIOS和NetBEUI被设计为仅仅用于局域网,因此不支持路由,并且最多只能处理72个节点或者设备。NetBIOS和NetBEUI经常使用广播实现,尤其是名字服务的相关操作。
NBT使用一个或多个NBNS(NetBIOS Name Server(s))将名字服务扩展到多个子网。NBNS是动态DNS的一种,Microsoft的NBNS实现称为WINS。另外,为了将虚拟的NetBIOS网络扩展到多个IP子网,WINS标准还引入了一个或者多个NBDD(NetBIOS Datagram Distribution) 服务器。不幸的是,微软的NBDD实现从来没有工作过。
 
  NBNS(NetBIOS Name Service)
名字服务。名字服务器。
类似于TCP/IP协议中的DNS,它负责查找目标机器相应的节点地址(TCP/IP协议中为IP地址),并赋予一个NetBIOS名称。
NetBIOS的缺陷危及到NBNS(NetBIOS Name Service)。特定情况下,对于NBNS(NetBIOS Name Service)请求,目标系统内存的随机数据会做出响应。这些数据可以是目标系统用户正在浏览的html页面数据的一部分,也可以是存在于目标系统内存的数据。***者可以发送一个特定的NBNS请求到目标系统,然后可以获得可能包含目标系统内存的数据。如果用户涉及的安全级别很高,关闭了 UDP 137端口,那么基于Internet的***就不可能实现。
NetBIOS Name Server
 
最近也发现很多接入交换机出现类似的情况,因为接入交换机端口所属VLAN在核心交换机上也有,最终竟然导致接入交换机和汇聚交换机、核心交换机间的链路阻塞,使得网络变得基本不通

初步分析了一下捕获到的数据,基本认定原因在于好多个人计算机内包含恶意/流氓软件,会不停地访问btamail.net、bar.baidu.com、sobar.baidu.com等域名,同时,windows的名字解析机制的顺序是:
1. hosts
2. net bios, wins, lmhosts
3. dns

所以,就会在网络中产生大量nbns的数据包

解决办法(准备测试):
设置交换机的ACL禁用源端口137、目的端口137,如果要用到wins服务,另当别论