基本說明

基本說明

誰能為我澄清網關分配?

0.0.0.0新增網關和分配特定 IP 位址作為網關有什麼不同?

答案1

0.0.0.0具有「未指定」的具體意義。在網關的上下文中,這大致翻譯為「沒有」。當然,這假設網路是本地連接的,因為沒有中間躍點。機器將從該介面發送封包,就像發送到連接到該網段的機器一樣,這在乙太網路中意味著將使用目標主機的 MAC 位址,而不是下一跳網關的 MAC 位址。

作為目的地,0.0.0.0/0它是特殊的:如果沒有網路位,則網路號碼中也不能有任何內容。所以,自然是無法確定的。對於前綴匹配,它會屏蔽所有位,因此所有位址都在0.0.0.0/0;內。因此,它在路由表中表示“預設網關”。它也是最不特定的可能路線,因此優先考慮特定性的選擇將選擇任何其他可用的內容並匹配0.0.0.0/0作為最後的手段。

然而,堅持你的問題,是的,它確實有特殊的含義。這意味著網路在該介面上進行本地連接,不需要更多的躍點即可到達該介面。

答案2

來自維基百科頁面0.0.0.0:

摘抄

在網際網路通訊協定版本 4 中,位址 0.0.0.0 是不可路由的元位址,用於指定無效、未知或不適用的目標。帶內訊號的應用是為無效的資料賦予特殊意義。

來自維基百科頁面預設路由

摘抄

Internet 協定版本 4 (IPv4) 中的預設路由被指定為 CIDR 表示法中的零位址 0.0.0.0/0,通常稱為四零路由。子網遮罩為 /0,它有效地指定所有網絡,並且是可能的最短匹配。與任何其他路由都不匹配的路由查找將回退到該路由。類似地,在 IPv6 中,預設路由由 ::/0 指定。

在網路的最高層級網段中,管理員通常會將給定主機的預設路由指向與網路服務供應商有連接的路由器。因此,目的地是組織區域網路以外的資料包(通常是 Internet 或廣域網路上的目的地)將被轉送到與該提供者有連接的路由器。

預設路由指向的裝置通常稱為預設網關,它通常執行其他功能,例如資料包過濾、防火牆或代理伺服器操作。

例子

根據你的提問,我假設你有這樣的情況:

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

這就是說,對於每個網路目標(192.168.1.0 或 169.254.0.0),預設閘道是 0.0.0.0 目標,如果封包是不是發往該特定網路內的任何位址。對於 0.0.0.0 目標,請使用 IP 位址 192.168.1.254。

這些規則的作用是將與我們所知道的任何路由都不匹配的所有流量匯集到預設路由。

幾個例子

假設我們有一個 IP 為 192.168.1.110 的封包。檢查第一條規則並且該 IP 與該網路匹配,因此它被傳遞。

如果我們有一個封包 150.12.13.1,則第三條規則將生效,封包將被路由到 192.168.1.254。

答案3

看,0.0.0.0 僅用於路由表中,而不用於分配給主機。

主機(具有 IP 位址的電腦)會維護路由表來解決如何將訊息傳送到正確的位置。

情境 1:PC-A 想要向同一網路上的 PC-B 傳送訊息:

1) PC-A 檢查其路由表以查看是否有與目標 IP 位址相符的內容。 2) 路由表顯示目的地在同一網路內,找到連接到該網路的接口,然後將訊息從該接口直接轉發到目的地。

場景 2:PC-A 想要向 REMOTE NETORK(不是同一網路)上的 Server-Z 傳送訊息:

1) PC-A 檢查其路由表,但找不到匹配項(當然,因為主機不追蹤遠端網路上的主機-這是路由器的工作)。

2) 但是,PC 配置有映射到路由器(其他、遠端、不同網路的預設閘道)的四零 IP 位址和子網路遮罩,如下所示:

(0.0.0.0 0.0.0.0 192.168.0.1 介面)

零是什麼意思?這意味著沒有。因此,如果您的電腦不追蹤遠端主機的位置,並且每次要發送訊息時都會檢查其路由表,以查看是否需要將其發送到同一(本地)網絡,或者是否需要將其發送到遠端網絡,那麼它如何將訊息發送到遠端網路呢?

它將封包傳送到路由器,並讓路由器完成沿著最佳路徑路由封包的工作。因此,主機/PC/電腦需要知道,如果它在路由表中找不到向何處發送訊息的條目(又名 0.0.0.0),那麼它就知道將其發送到路由器,即 IP與(0.0. 0.0 0.0.0.0 192.168.0.1 介面)條目關聯的位址,並使用與其連接的關聯介面/NIC/網路適配器。

因此,主機和路由器上的路由表使用0.0.0.0 來了解在找到零個如何到達目的地的匹配項時將某些內容發送到何處,並且必須將0.0.0.0 映射到路由器的IP 位址和接口以到達該路由器。

答案4

基本說明

0.0.0.0 具有特殊意義預設網關但也符合 0.0.0.0目的地入口。

乍一看,您可能會認為無論如何一切都通過預設網關進行。然而,要完全理解這個概念,您必須在具有多個網路介面(乙太網路、Wi-Fi、藍牙等)的裝置的上下文中看待它。

作為網關

當指定網關為 0.0.0.0 時,表示:讀取以 0.0.0.0 為目的地的行,並透過該介面路由資料包。

但是,當您有第二個或更多網路介面時,您可以將這些網路介面之一的 IP 指定為網關而不是 0.0.0.0,並且封包將透過它們進行路由。

作為目的地

解析路由表以搜尋最特定的目的地(符合最大的前綴號)。

至少,如果沒有找到更具體的目標,您將始終匹配 0.0.0.0/0(CIDR 表示法相當於 0.0.0.0,掩碼為 0.0.0.0),因為如果您在目標 IP 和mask 0.0.0.0,它符合任何IP位址,包括0.0.0.0 IP本身。

這就是為什麼 0.0.0.0 被用作預設網關條目,並且當您有多個可能的網關(設備上有多個網路介面)時特別有用。

相關內容