Linux 如何处理将请求路由到其自己的 IP 的情况?

Linux 如何处理将请求路由到其自己的 IP 的情况?

尤其是 CentOS。假设机器位于 1.2.3.4 上运行 httpd 并发出请求http://1.2.3.4,机器是否立即知道该请求是发给自己的,因此在内部路由它,或者它是出去又回来?

我有兴趣了解这是如何工作的。

答案1

是的,机器立即知道该请求是发给它自己的。它通过将数据包的目标地址与分配给网络接口的所有已知 IP 地址进行比较,将数据包标记为当地的,查询一个特殊的路由表 ( ip route show table local ),该表会根据本地分配的 IP 地址的规则自动更新,并替换网络接口以传递它lo,即使目标地址不是(在 ping 本地地址时127.0.0.1尝试)。tcpdump -ni lo

您还可以使用它ip route get 1.2.3.4来显示 Linux 内核如何对路由 ( local) 进行分类,以及它将通过什么接口传递数据包,以及网关等其他信息。

相关内容