我的 LAN 主机名存储在哪里

Ale*_*502 4 domain-name

当我在计算机上配置时hostname,我可以这样查找:

$ hostname
example
Run Code Online (Sandbox Code Playgroud)

然后从同一 LAN 上的另一台计算机执行 ping 或 ssh:

$ ssh example
user@example's password:
Run Code Online (Sandbox Code Playgroud)

我的另一台计算机在哪里查找该主机名的地址?以前的计算机是否以某种方式向路由器注册了它?第二台计算机是否只是询问 LAN 上的每个 IP 地址“你是吗example?”?

example即使我拔掉第二台计算机似乎也知道对应的IP地址example。该信息是否缓存在第二台计算机中?或者以hostnamectl某种方式向路由器注册此主机名。

如果我现在将这些计算机插入另一个网络,它们是否仍然能够使用这些主机名找到彼此?

它是怎么运行的?

Esa*_*nen 5

有以下几种方法:

  • 使用 IP 多播 ( RFC 1112 ) 的零配置网络协议将 UDP 数据包发送到 LAN 上的许多设备将其视为消息发送给它们的特殊地址。因此,无需询问网络上的每个 IP 地址。它们还使用保留的 MAC 地址将数据包转发到交换机上的每个端口。

    • 组播 DNS(mDNS、RFC 6762

      • UDP端口5353
      • IPv4 224.0.0.251/MAC地址01:00:5E:00:00:FB
      • IPv6 ff02::fb/MAC地址33:33:00:00:00:FB
    • 链路本地多播名称解析(LLMNR、RFC 4795

      • UDP端口5355
      • 网络224.0.0.252地址01:00:5E:00:00:FC
      • 网络ff02::1:3地址33-33-00-01-00-03
  • 可能涉及动态主机配置协议( DHCP):

    • 连接特定的 DNS 后缀、DHCP 选项 15(RFC 2132、3.17)为客户端提供一个域名,该域名将作为后缀添加到这些非 FQDN 查询中。因此,您的example可能会成为example.example.com用于 DNS 查询的。

    • 可以使用DHCP 客户端 FQDN 选项( RFC 4702 ) 自动更新 DNS。

  • 网络BIOS。请参阅 Robert L Bogue:NetBIOS 名称解析的真正工作原理

  • 对等名称解析协议(PNRP)。Microsoft 技术需要 IPv6。