即使我没有连接到 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 地址实际分配给了谁吗?
这些是动态配置的链路本地地址。它们只在单个网段内有效,不被路由。
需要特别说明的是,169.254.169.254在AWS、Azure等云计算平台中用于托管实例元数据服务。
在几乎所有情况下,这是一个由接口自动分配的 IP,该接口设置为通过 DHCP 获取其 IP 但无法获取。
它是 IPv4 链路本地地址,如 rfc3927 中所定义。通常 ZeroConfig/Bonjour/mdns 等启用的盒子被设置为具有 IPv4 ll 地址以启用(家庭)网络而无需 DHCP 或单播 DNS 服务器。
这是 APIPA 地址的特例。OP 不要求 169.254.xx
除了作为 APIPA 地址之外,这是 AWS EC2 实例用于通过 HTTP(例如 curl)进行 EC2META 查询的内部地址。
将返回不带换行符的实例 ID,这对脚本很有用。它不用于“分发”元数据。相反,它用于查询这些属性。
从此IANA 页面中找到了一些信息,这些信息可能比 RFC3927 更容易理解。引用如下:
并且,其以下部分提供了并排比较,用于 OP 的第二个问题“有人能解释一下这个 IP 地址实际上是什么吗?它是否类似于 127.0.0.0/8 系列。”