Linux

127/8 地址沒有傳遞到 IP 堆棧?

  • June 25, 2015

我使用目標 IP 地址在 127/8 範圍內的原始套接字發送 IP/UDP 幀 - 例如 127.0.0.6。因此,數據包可以通過網路發送(使用目標設備上的 tcpdump 檢查)。

但是在目標 linux PC 上這樣的幀沒有被處理,即沒有被發送到 UDP 套接字伺服器(綁定到 0.0.0.0)。如果目標 IP 是 eth1 介面的地址 - 數據包被正確處理。

為什麼 Linux 不想使用本地主機 IP 處理數據包?是核心錯誤嗎?

我需要地址 127.xxx,因為 LSP Ping 使用此地址 (RFC 4379)。

這是設計使然,整個 127.XXX 地址範圍保留用於環回,如 RFC1700 中所定義:

http://www.ietf.org/rfc/rfc1700.txt

這在這裡討論得更多:

為什麼環回 IP 地址是從 127.0.0.1 到 127.255.255.254?

僅僅因為 MPLS 在內部使用它(無論出於何種原因),這並不意味著目標伺服器可以監聽它並使用該範圍。

引用自:https://serverfault.com/questions/701589