博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于LLMNR
阅读量:6340 次
发布时间:2019-06-22

本文共 2126 字,大约阅读时间需要 7 分钟。

什么是LLMNR

在DNS 服务器不可用时,DNS 客户端计算机可以使用本地链路名称解析 (LLMNR—Link-Local Multicast Name Resolution)(也称为多播 DNS 或 mDNS)来解析本地网段上的名称。例如,如果出现故障,从网络上的所有 DNS 服务器切断了,则支持 LLMNR 的子网上的客户端可以继续在对等基础上解析名称,直到网络连接还原为止。

LLMNR(本地链路组播名称解析)在DNS服务器不可用时,DNS 客户端计算机可以使用本地链路组播名称解析,通过UDP发送到组播地址224.0.0.252:5355,来解析本地网段上的名称,使用的也是普通DNS的数据包格式。类似的另一种协议是mDNS(组播DNS),通过UDP协议发送到组播地址224.0.0.251:5353,用于家庭局域网等小型网络。

LLMNR为使用IPv4、IPv6或者同时使用这两种地址的设备提供了点对点名称解析服务,可以让同一子网中的IPv4和IPv6设备不需要WINS或DNS服务器就可以解析对方的名称。

例如,如果路由器出现故障,从网络上的所有 DNS 服务器切断了子网,则支持 LLMNR 的子网上的客户端可以继续在对等基础上解析名称,直到网络连接还原为止。除了在网络出现故障的情况下提供名称解析以外,LLMNR 在建立临时对等网络方面也非常有用。

除了在网络出现故障的情况下提供名称解析以外,LLMNR 在建立临时对等网络(例如,机场候机区域)方面也非常有用。

LLMNRs

工作过程

  1. 主机在自己的内部名称缓存中查询名称。如果在缓存中没有找到了名称,那么主机就会向自己配置的主DNS服务器发送查询请求。如果主机没有收到回应或收到了错误信息,主机还会尝试搜索配置的备用DNS服务器。如果主机没有配置DNS服务器,或者如果在连接DNS服务器的时候没有遇到错误但失败了,那么名称解析会失败,并转为使用LLMNR。
  2. 主机通过用户数据报协议(UDP)发送多播查询,查询主机名对应的IP地址,这个查询会被限制在本地子网(也就是所谓的链路局部)内。
  3. 链路局部范围内每台支持LLMNR,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。

基于LLMNR的WebServer

#include 
#include
#include
#include
const char* ssid = "replace_me";const char* password = "replace_me";ESP8266WebServer web_server(80);void handle_http_not_found() { web_server.send(404, "text/plain", "Not Found");}void handle_http_root() { web_server.send(200, "text/plain", "It works!");}void setup(void) { Serial.begin(115200); // Connect to WiFi network WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); // Start LLMNR responder LLMNR.begin("esp8266"); Serial.println("LLMNR responder started"); // Start HTTP server web_server.onNotFound(handle_http_not_found); web_server.on("/", handle_http_root); web_server.begin(); Serial.println("HTTP server started");}void loop(void) { web_server.handleClient();}

本文还在持续更新中,后续内容还敬请关注

转载地址:http://rmeoa.baihongyu.com/

你可能感兴趣的文章
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>
互联网生态建设落地五大挑战——保险科技生态建设 ...
查看>>
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>
25G DAC无源高速线缆和25G光模块之间的区别
查看>>
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>