- AWS企业VPC
http代理存在
没有 HTTP 代理,curlhttp://169.254.169.254/lastest/元数据成功,但断开互联网连接。此 IP 地址不是类别 A、B、C。使用此 URI 从 AWS 获取元数据。
使用HTTP代理,curl相同的URI失败,但可以连接到Intenet。
于是我就在想原因。根据我的理解,
如果没有 HTTP 代理,URI 首先从 DNS 获取 IP,然后根据路由表将此请求发送到 Internet 或以太网。如果有HTTP代理,请求会从哪个阶段发送到HTTP代理?
如果没有 DNS 阶段,URI 会直接发送到 HTTP 代理,那么 DNS 在 HTTP 代理中是否工作?
对此很困惑......
答案1
关于您的问题内容,有几点需要指出,应该可以回答您:
- IP 地址不会生成 DNS 查找。它只是生成一个被路由的连接请求。
- 任何系统上代理服务器的存在本身并不决定流量会发生什么。所做的就是路由表和防火墙规则。
- 这
Internet
不是物理连接类型,很可能通过您的Ethernet
端口。决定您是否可以访问 Internet 的因素同样取决于您计算机上的路由表和防火墙规则,但也可能受到主机系统上的影响。
因此,如果您制定正确的路由和防火墙规则,则很可能使这两种方案都能正常工作以获取您的 AWS 元数据。
答案2
IP 169.254.169.254 位于分配用于自动专用 IP 寻址的网络块 168.254.0.0/16 中。它永远不应该被路由到互联网。如果您的 IP 地址在该块中,您将无法直接连接到互联网。但是,您也许可以使用代理连接到 Internet 上的站点。
有多种机制可用于发现代理服务器:
- DHCP 可以包含代理服务器选项。这不适用于自动专用 IP 寻址。
- Web 代理自动发现协议提供了一种代理发现机制。
- 代理可以使用 Zeroconf 协议来声明自己。
如果您通过自动专用 IP 寻址以外的某种机制获得地址,则您不太可能与该网络块中的服务器进行通信。
HTTP 可与 IP 地址或 DNS 域名配合使用。使用 IP 地址会限制服务器的功能,因为它无法复用域。许多服务器提供虚拟主机,其中多个主机共享相同的 IP 地址,并且路由由主机标头完成。可以使用 IP 地址,并将主机标头注入到请求中。但是,除非您有可用的名称解析服务,否则响应中的 URL 可能无法工作。这通常由 DNS 提供,但也可以通过其他机制来完成,包括 mDNS (Zeroconf) 和主机文件。