Networking

CIDR 中的 .0/32 和 .1/24 有什麼區別?

  • March 19, 2015

我們在 AWS 規則中指定 CIDR 地址,我遇到了一些我不明白的事情。

/32表示一個地址。所以10.0.0.0/32只表示單個地址10.0.0.0。但是以結尾的地址.0是廣播地址,對吧?所以實際上,這個單一地址意味著範圍內的任何地址10.0.0.1 - 10.0.0.255

/24表示 255 個地址。所以 10.0.0.1/24 表示範圍內的任何地址10.0.0.1 - 10.0.0.255。(我不在10.0.0.0/24這裡使用,因為它包括我們上面得到的 .0 “擴展”,我試圖與之對比。)

上述說法是否正確?.0/32和之間的有效區別是什麼.1/24


編輯

我當然可能會很困惑,我很欣賞為我解惑的嘗試。

我對 .0 地址在某些方面的特殊性的困惑源於我的同事告訴我確實如此。我們在 AWS 集群上設置了一條規則,允許來自 10.0.1.0/32 的連接,它似乎允許來自 10.0.1.25 的連接。對此還有其他解釋嗎?


編輯2

事實證明,我的同事大錯特錯,即使在向我報告他在新 AWS 規則中使用的地址和子網時也是如此。對困惑感到抱歉。如果我可以刪除這個問題,我會的。

您肯定沒有正確掌握 CIDR。

廣播地址的定義不是以 .0 結尾的。這是一個所有主機位都設置為零的地址。在 /32 中,沒有主機位。/32 甚至不是真實世界的網路地址。毫無疑問,它被用來表示寫入的數字實際上是一個 IP 主機地址。

你的網路有點混亂。所有主機位都設置為 0 的 IPv4 ip 地址是網路地址。所有主機位都設置為 1 的 IPv4 IP 地址是廣播地址。IPv4 主機 IP 地址中的 .0 或 .255 完全有效,具體取決於使用的​​子網遮罩。混亂來自太多的書籍、學校和教師懇求學生“永遠不要在主機 IP 地址中使用 .0 或 .255!” - 因為只教它然後教它們如何以及何時完全有效更容易。

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