即使我没有连接到 Windows 操作系统中的任何网络,我也总是注意到路由表中有一个 IP 地址“169.254.xx”。
在 Linux 中,当我列出我的路由表时。
$ ip route show
我得到了一个像这样的条目
169.254.0.0/16 dev eth0 scope link metric 1000
有人能解释一下这个 IP 地址到底是什么吗?它是否类似于 127.0.0.0/8 系列。
编辑:在 ec2 中,每个实例都可以通过向该 IP 发出 HTTP 请求来获取有关自己的元数据。
$ curl -s http://169.254.169.254/user-data/
那么有人能告诉我这个 IP 地址实际上分配给了谁吗?
答案1
这些都是动态配置的链路本地地址。它们仅在单个网段上有效,并且不可路由。
特别值得注意的是,169.254.169.254 用于AWS,Azure,地理信息中心以及其他云计算平台来托管实例元数据服务。
答案2
在几乎所有情况下,这都是由设置为通过 DHCP 获取 IP 但无法获取的接口自动分配的 IP。
答案3
它是 IPv4 链接本地地址,如 rfc3927 中所定义。通常,启用 ZeroConfig/Bonjour/mdns 等的盒子会设置为具有 IPv4 ll 地址,以便在没有 DHCP 或单播 DNS 服务器的情况下启用(家庭)网络。
答案4
找到了一些信息此 IANA 页面这可能比 RFC3927 更容易理解。引用如下:
特殊用途地址
“自动配置” IP 地址:
169.254.0.0 - 169.254.255.255
当大多数网络设备配置为使用 IP、没有分配静态 IP 地址且无法使用 DHCP 获取 IP 地址时,它们会自动使用 169.254.0.0 至 169.254.255.255 范围内的地址。
此流量旨在限制在本地网络中,因此本地网络管理员应查找配置错误的主机。一些 ISP 也会无意中允许此流量,因此您可能还需要联系您的 ISP。这在 RFC 6890 中有记录。
并且,其下一部分提供了并排比较,针对 OP 的第二个问题“有人可以解释一下这个 IP 地址实际上是什么吗?它是否类似于 127.0.0.0/8 系列。”
“环回” IP 地址:
127.0.0.0 - 127.255.255.255
互联网上的每台计算机都使用 127.0.0.0/8 来标识自己。127.0.0.0 到 127.255.255.255 被指定用于所谓的“环回”。此构造允许计算机确认它可以使用 IP,并允许在同一台机器上运行的不同程序使用 IP 相互通信。大多数软件仅将 127.0.0.1 用于环回目的(此范围内的其他地址很少使用)。环回地址内的所有地址在互联网路由中都受到相同级别的限制,因此很难将此块中的任何其他地址用于除节点特定应用程序(通常是引导)之外的任何用途。这在 RFC 6890 中有记录。