LLMNR协议、MDNS协议、NBNS协议

LLMNR协议

LLMNR定义

LLMNR全称Link-Local Multicast Name Resolution

LLMNR协议是一种用于在本地网络上解析主机名的协议。它允许在没有本地DNS服务器的情况下进行名称解析,通常用于IPv6环境,但也可以在IPv4环境中使用。LLMNR协议的提出,主要是为了弥补IPv6环境下的局域网主机名解析的不足。

在实际应用中,当Windows主机在局域网中需要解析主机名时,会先使用LLMNR协议发送解析请求。如果有其他主机知道所需的名称,它们可以回复一个LLMNR响应,提供相应的IP地址。这样,即使在没有配置DNS服务器的情况下,依然可以实现主机名的解析,提高了局域网中主机名解析的可用性和速度。

此外,LLMNR协议使用组播地址和UDP协议,允许客户端之间进行通信,而无需在每个网络节点之间建立传统的服务器/客户端模型。这使得LLMNR成为一种轻量级的协议,传输速度快,并可以减少潜在的网络拥塞问题。

LLMNR工作过程

当主机需要解析本地主机名时,它会首先在自己的内部名称缓存中查询该名称。如果在缓存中没有找到该名称,主机将开始执行后续的查询步骤。

如果在缓存中没有找到所需的名称,主机会向自己配置的主DNS服务器发送查询请求。如果主机没有收到主DNS服务器的回应或收到了错误信息,主机还会尝试搜索配置的备用DNS服务器。

如果主机没有配置DNS服务器,或者如果在连接DNS服务器时没有遇到错误但失败了,那么名称解析会失败,并转为使用LLMNR协议。

当主机决定使用LLMNR协议时,它会通过用户数据报协议(UDP)发送多播查询,查询主机名对应的IP地址。这个查询会被限制在本地子网(也就是所谓的链路局部)内

链路局部范围内每台支持LLMNR协议,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。

如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。

MDNS协议

MDNS定义

MDNS全称Multicast DNS

MDNS协议是一种在局域网内实现设备和服务自动发现的协议。具体来说,它允许设备在无需依赖中央服务器或配置文件的情况下,通过组播地址发送和接收DNS查询和响应,从而发现局域网中的其他设备和服务。MDNS协议基于DNS(协议,但使用组播地址来进行通信,因此能够在局域网中快速且高效地实现服务发现。

当设备启动时,它会发送一个MDNS查询,询问局域网中是否有其他设备或服务可用。如果其他设备知道所需的名称,它们会回复一个MDNS响应,提供相应的IP地址。通过这种方式,设备可以在没有传统DNS服务器的情况下,通过其名称来互相发现和访问彼此。

MDNS协议通常基于UDP协议,使用的端口号是5353。它遵从DNS协议,使用现有的DNS信息结构、名语法和资源记录类型,但没有指定新的操作代码或响应代码。MDNS协议在局域网中广泛应用,如物联网设备和app之间的通信,可以实现局域网设备的快速发现和通信。

MDNS工作过程

设备启动和宣告:当一个新的设备连接到局域网并启动mDNS服务时,它会向局域网内的所有主机发送一个宣告(Announcement)消息。这个消息包含设备的主机名、IP地址和其他标识信息。

缓存和发现:其他设备收到这个宣告消息后,会将发送设备的信息存储在本地的mDNS缓存中。这样,其他设备就可以通过查询mDNS缓存来发现其他设备的存在。

查询:当一个设备需要解析一个主机名或查找某个服务时,它会发送一个mDNS查询消息(称为“Query”)。这个消息包含要解析的域名或服务的类型。

响应:其他设备收到查询消息后,会检查本地的mDNS缓存。如果有匹配的域名或服务,设备会发送一个mDNS响应消息(称为“Response”),其中包含与查询相关的IP地址、服务信息或其他数据。

解析和使用:发送查询消息的设备收到响应后,会解析其中的数据,如IP地址或服务信息,并将其存储在本地的DNS缓存中。这样,设备就可以使用这些信息来与其他设备或服务进行通信。

NBNS协议

NBNS定义

NBNS全称NetBIOS Name Service Protocol

是一种用于在局域网中解析计算机名和IP地址对应关系的网络协议。它允许计算机通过名称查找其他计算机的IP地址,从而实现网络通信。

当一个计算机在局域网上启动时,它会向网络发送一个名字注册请求,该请求会被广播到整个局域网上。其他计算机可以通过NBNS协议来查询这个计算机的名称和IP地址对应关系。NBNS协议是基于UDP协议的,使用端口号137。

需要注意的是,NBNS协议主要用于早期的Windows系统,现在已经被更先进的协议如DNS(域名系统)所取代。但在某些特定的网络环境中,如某些企业网络或旧的Windows系统环境中,NBNS协议仍然被使用。

NBNS工作过程

名字注册:当一个计算机在局域网上启动时,它会向网络发送一个名字注册请求。这个请求包含了计算机名和IP地址的对应关系。

缓存保存:网络上的其他计算机在收到这个注册请求后,会将该对应关系保存在本地的缓存中。

名字查询:当一个计算机需要解析另一个计算机的IP地址时,它会发送一个名字查询请求。这个请求会被广播到整个局域网上。

响应:其他计算机在收到这个查询请求后,会检查自己的缓存。如果缓存中有这个对应关系,就直接回复一个查询应答,提供所需的IP地址。

转发:如果本地计算机没有找到对应关系,它会将查询请求转发给网络中的其他计算机,直到找到对应的计算机或确定无法找到为止。

需要注意的是,NBNS协议中的消息是明文传输的,没有加密机制,因此在使用时需要注意安全风险。例如,攻击者可以发送虚假的NBNS响应,欺骗其他设备将数据发送到错误的地址。


不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
LLMNR (Link-Local Multicast Name Resolution)、mDNS (Multicast DNS)和DNS (Domain Name System) 是三种常见的域名解析协议。 1. LLMNR (Link-Local Multicast Name Resolution) 是一种在局域网内解析域名的协议。它允许设备在没有 DNS 服务器的情况下进行名称解析。设备可以通过广播消息的方式向局域网内的其他设备查询域名,其他设备可以回应解析结果。LLMNR 主要用于 Windows 系统。 2. mDNS (Multicast DNS) 是一种基于多播的域名解析协议,用于在局域网内解析主机名和服务名称。它不需要依赖中央 DNS 服务器,而是通过在局域网内广播查询消息和回应消息的方式,实现设备之间的域名解析。mDNS 主要用于支持 Zeroconf(零配置网络)的设备,如 Apple 的 Bonjour 和 Linux 的 Avahi。 3. DNS (Domain Name System) 是互联网上最常用的域名解析协议。它是一个分布式的系统,用于将域名映射到对应的 IP 地址。当用户在浏览器中输入一个域名时,操作系统或本地域名服务器会向上级 DNS 服务器发送查询请求,逐级查询直到找到对应的 IP 地址。DNS 使用 UDP 或 TCP 协议进行通信,默认使用 UDP。它是互联网上的标准解析协议。 总结来说,LLMNR 和 mDNS 主要用于局域网内的域名解析,而 DNS 则是用于互联网上的域名解析。它们各自采用不同的机制和协议,但都能实现将域名解析为对应的 IP 地址。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值