OpenWRT 跨网段解析 mDNS 域名

在局域网中,由于 IP 地址都是动态分配的,很难确定每一台电脑的 IP 地址。此时使用 mDNS 使用局域网域名解析就非常方便。

对于 windows10 系统电脑。只需要在知道电脑设备的名字,即可通过 ping 设备名称.local 命令知道电脑的 IP 地址。

注意: 域名不区分大小写。

对于 IPv4,mDNS 设备间通过使用 udp 组播通信,组播地址为 224.0.0.251,端口 5353。组播规定为同一个局域网之间通信,无法实现跨不同网段间通信。

在上面这种网络结构之中,pc1 无法通过 mdns 发现 pc2 设备(知道 pc2 的 ip 地址)。之前通过在在路由器B上配置 mDNS 端口映射的方式实现 pc1 通过 mDNS 发现 pc2。但是过程相对比较复杂,并且不支持 pc2 发现 pc1。

Avahi 实现跨网段的解析 mDNS

  • 在 路由器B (openwrt系统) 上安装 Avahi
opkg update
opkg install avahi-daemon
  • 配置 Avahi 跨网段解析 mDNs,打开 /etc/avahi/avahi-daemon.conf :
[server]
#host-name=foo
#domain-name=local
use-ipv4=yes
use-ipv6=yes
check-response-ttl=no
use-iff-running=no
allow-interfaces=br-lan,eth0.2  # 添加这一行: 接口 br-lan 为局域网接口,eth0.2 为 wan 口接口,根据实际情况修改[publish]
publish-addresses=yes
publish-hinfo=yes
publish-workstation=no
publish-domain=yes
#publish-dns-servers=192.168.1.1
#publish-resolv-conf-dns-servers=yes[reflector]
enable-reflector=yes # 修改这一行: 将 no 改为 yes 支持跨网段mdns
reflect-ipv=no[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=30
rlimit-stack=4194304
rlimit-nproc=3

可以使用 ifconfig 命令就可以查询网络接口。

  • 重启 avahi 服务,并设置开机启动。
 /etc/init.d/avahi-daemon restart/etc/init.d/avahi-daemon enable
  • 设置防火墙

Luci -> 网络 -> 防火墙 -> 通信规则 -> 新增

  • 测试

在 pc1 上:

ping pc2.local

在 pc2 上:

ping pc1.local

结果都会返回对应设备的 IP 地址。

注意:虽然 pc2 可以解析到 pc1 的 IP 地址。但是由于 NAT 特性,仍然需要在路由器B上设置端口映射,通过访问路由器B来访问到 pc1 上的服务。

参考链接

Resolving mDNS across VLANs with Avahi on OpenWRT

Avahi mDNS reflection

OpenWRT 跨网段解析 mDNS 域名相关推荐

  1. 使用WINS服务器实现跨网段名称注册解析和释放

    2.1 示例:使用WINS服务器实现名称注册解析和释放 实验目的: ü 安装WINS服务器 ü 配置计算机使用WINS服务器实现计算机名称注册,名称解析和名称释放 ü 查看WINS服务器名称注册 企业 ...

  2. 将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT+实践]

    原文地址: 1.https://typcn.com/legacy/blog/posts/openwrt-dnscypt.html 2.http://www.openwrt.pro/post-376.h ...

  3. linux跨网段获取主机名,跨网段NetBios主机名无法解析该如何处理

    跨网段NetBios主机名无法解析该如何处理 本文主要给大家详细的介绍了对于用户主机如果与他要访问的主机不在同一个网段的话,就可能无法把主机名转换为IP地址就无法通过主机名来访问另一个网段的主机.遇到 ...

  4. BadTunnel:跨网段劫持广播协议

    xlab · 2016/06/19 11:38 Author:[email protected] 0x00 简介 本文提出了一种新的攻击模型,可以跨网段劫持TCP/IP广播协议,我们把它命名为&quo ...

  5. 不能用主机名访问跨网段的网站服务.

    这两天发现在公司外当我使用SSL ×××接入到公司内网后, 不能直接使用主机名访问在公司总部的跨网段的劳动力管理系统的测试环境了.一开始没当回事,每次修改DNS为公司内网的DNS就可以了.可是时间长了 ...

  6. 通过×××路由器实现跨网段访问

    下面讲解如何通过×××路由器来实现跨网段访问 首先设备的选购: 选择2台tplink r6110或者6120系列 实战技术: 设置步骤: 一).基本设置: 1.设置路由器的WAN口模式:基本设置→WA ...

  7. ARP协议在同网段及跨网段下的工作原理

    一.ARP在同个网段下的工作原理 首先,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系.当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP ...

  8. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...

    前言:ARP协议是在链路层通讯中,已知目标IP地址,但是,仅有IP 地址是不够的,因为IP数据报必须封装成帧才能通过数据链路进行发送,而数据帧必须要有目的MAC地址,每一个网络设备在数据封装前都需要获 ...

  9. 安卓GB28181跨网段语音对讲

    GB28181语音对讲实际使用中遇到的主要问题是跨网段后rtp udp包不能穿透,针对这个问题有两套解决方案. 方案一,安卓端语音发送走实时视音频点播通道,把编码后的语音数据封装到PS包中,和视频帧一 ...

最新文章

  1. Python初学者必学的20个重要技巧
  2. offsetLeft 解析
  3. 编码(encode)问题
  4. JS判断当前的浏览器类型
  5. 别再龟速炼丹了!聊聊怎样科学提升训练效率
  6. 渗透测试入门26之给你一个网站你是如何来渗透测试的?
  7. 用最通俗易懂的语言告诉你什么是信息熵
  8. 腾讯云Ubuntu服务器安装Python3.6的虚拟环境
  9. 附录B. Design Motivations【设计意图】
  10. 投票和排名系统C语言顺序表,电视大赛观众投票及排名系统C语言设计.docx
  11. 数据搜索的新战场,我们为什么需要向量数据库?
  12. Ubuntu / Debian: sudo 出现 unable to resolve host 错误解决办法
  13. X360吉他英雄4鼓套装 1 TB硬盘入手
  14. python基础:面向对象的应用--烤地瓜。
  15. 第4章 需求分析和model设计
  16. 2023年深圳技能大赛——大鹏新区潮式风味菜烹饪职业技能竞赛
  17. vue 前端解析Excel
  18. 加拿大综合类大学排名获关注,盘点高校对雅思要求
  19. 阿里云 验证四要素 服务
  20. 一个有潜在危险的要求。从客户端中检测到(ctl00$ $ $ contentplaceholder2submit1

热门文章

  1. VantUI(ZanUI)框架使用async-validator进行表单数据校验
  2. 三年硬件工程师薪水_硬件工程师薪资虚高,你认可吗?
  3. 乐高四光感巡线思路解说
  4. h5在ios上图片资源显示不出来
  5. Kubernetes Ingress 兼容 IE 浏览器
  6. 游戏的分类,游戏立项前的关键步骤!
  7. matlab trapz求二重积分,matlab求积分(超详细,含int integral integral2/3 quad trapz
  8. GPU 核心和 CPU 核心
  9. 泰然金融:60后“老文工”分享泰友故事 见面会后重拾理财信心
  10. Metal Shader language (着色语言规范)总结