这个 IP 地址是什么:169.254.169.254?

pra*_*tri 82 networking linux windows ip ip-address

即使我没有连接到 Windows 操作系统中的任何网络,我也总是注意到路由表中有一个 IP 为“169.254.xx”。

在 Linux 中,当我列出我的路由表时。

$ ip route show 
Run Code Online (Sandbox Code Playgroud)

我得到一个条目

169.254.0.0/16 dev eth0  scope link  metric 1000 
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这个IP地址实际上是什么。是否类似于 127.0.0.0/8 系列。

编辑:在 ec2 中,每个实例都可以通过向该 IP 发出 HTTP 请求来获取有关它们自己的元数据。

$ curl -s http://169.254.169.254/user-data/
Run Code Online (Sandbox Code Playgroud)

那么有人能告诉我这个 IP 地址实际上分配给谁吗?

Mic*_*ton 109

这些是动态配置的链路本地地址。它们只在单个网段上有效,不能被路由。

特别值得注意的是,169.254.169.254 用于 Amazon EC2 和其他云计算平台,以将元数据分发到云实例

  • 蓝色文本表示您可以单击以获取更多信息的链接。请这样做。 (21认同)
  • @pradeepchhetri 它没有分配给任何人。这是一个[特殊用途地址](http://tools.ietf.org/html/rfc5735)。 (7认同)
  • @pradeepchhetri,要回答“谁”的具体问题,是亚马逊自己(尽管它是私有 IP 的警告适用);就像Charter在许多家庭中“拥有”192.168.100.1一样(只有Charter将它用于调制解调器WebUI,而不是亚马逊分发元数据的服务)。 (2认同)

Cho*_*er3 16

在几乎所有情况下,这是由一个接口自动分配的 IP,该接口设置为通过 DHCP 获取其 IP,但无法获取。


pfo*_*pfo 11

它是一个 IPv4 链接本地地址,如 rfc3927 中所定义。通常 ZeroConfig/Bonjour/mdns 等启用的框设置为具有 IPv4 ll 地址以启用(家庭)网络,而无需 DHCP 或单播 DNS 服务器。


mck*_*nzm 6

这是 APIPA 地址的一个特例。OP 不要求 169.254.xx

除了作为 APIPA 地址之外,这是 AWS EC2 实例通过 HTTP(例如 curl)用于 EC2META 查询的内部地址。

curl http://169.254.169.254/latest/meta-data/instance-id
Run Code Online (Sandbox Code Playgroud)

将返回不带换行符的实例 ID,这对于编写脚本很有用。它不用于“分发”元数据。相反,它用于查询这些属性。

  • 它说不应该,不应该不。从技术上讲,您可以违反 SHOULD 并且仍然被视为符合规范。参见 RFC2919:_"SHOULD NOT This短语,或短语"NOT RECOMMENDED"意味着在特定情况下,当特定行为是可以接受甚至有用的时,可能存在有效的理由,但应理解全部含义,并在此之前仔细权衡案例实现使用此标签描述的任何行为。”_ :) (4认同)
  • “_这是 APIPA 地址的特殊情况。_ RFC 不允许这样的使用。‘169.254.0.0/16’中的地址不允许以固定方式分配,该范围不能划分子网,并且范围内的数据包无法路由。我不会使用任何违反标准的东西。 (2认同)
  • “_请注意,不应手动或通过 DHCP 服务器配置 169.254/16 前缀中的地址。手动或 DHCP 配置可能会导致主机使用 169.254/16 前缀中的地址,而不遵循有关重复检测和自动配置的特殊规则属于此前缀中的地址。_”这意味着您无法在该范围内设置固定地址。主机需要在该范围内随机选择一个地址。 (2认同)
  • “_希望配置自己的本地地址(使用手动配置、DHCP 服务器或本文档中未描述的任何其他机制)的管理员应使用现有专用地址前缀之一 [RFC1918],而不是 169.254/16 前缀_” (2认同)

小智 6

从此 IANA 页面找到一些信息,这些信息可能比 RFC3927 更容易理解。引述如下:

特殊用途地址

  • “自动配置”IP 地址:

      169.254.0.0 - 169.254.255.255
    
    Run Code Online (Sandbox Code Playgroud)

    大多数网络设备在配置为使用 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
    
    Run Code Online (Sandbox Code Playgroud)

    Internet 上的每台计算机都使用 127.0.0.0/8 来标识自己。127.0.0.0 到 127.255.255.255 被指定用于所谓的“环回”。这种结构允许计算机确认它可以使用 IP,并允许在同一台机器上运行的不同程序使用 IP 相互通信。大多数软件仅使用 127.0.0.1 进行环回(此范围内的其他地址很少使用)。环回地址中的所有地址在互联网路由中都受到相同级别的限制,因此很难将此块中的任何其他地址用于除节点特定应用程序(通常是引导)之外的任何其他用途。RFC 6890 中记录了这一点。