我了解位址解析協定以及它如何向子網路上的所有裝置廣播以查找目標的 MAC 位址。我知道當電腦無法透過 ARP 找到目的地時,它會斷定它必須位於另一個子網路上,因此會將其發送到路由器。
如果目的地確實跨越了半個地球,而且路由器必須跳到您的 ISP 路由器,那麼路由器首先如何找到其預設閘道的 IP 位址?
答案1
第一段不對,是相反的。
當已知目的地位於目前網路上時,使用 ARP。順序是這樣的:
檢查路由表以尋找目的地
路由表按照特異性順序進行測試,因此雖然條目 192.0.0.0/8 和 192.168.0.0/16 都與 192.168.1.1 匹配,但第二個條目是更具體的匹配。 0.0.0.0/0 符合所有內容,並且是預設路由。
連接或路由?
匹配的路由要么是已連接的網路(發送設備在同一網路上具有 IP 位址),要么不是。如果已連接,則會發出 arp 並檢索 MAC 位址(假設裝置存在),然後將封包傳遞到第 2 層(乙太網路)進行傳輸。
如果網路不是連接網絡,則它將有一個網關 IP 位址。那個IP位址必須位於已連線的網路上。因此,再次針對檢索到的 mac 位址的閘道 IP 位址發出 arp,並將封包切換到第 2 層以傳送至閘道 IP。
在下一跳
一旦到達那裡,就會遵循完全相同的過程。網關在連接的介面上具有目標 IP 位址,或將其傳遞給另一個路由器。
建立路由表
填充路由表的方法有很多種。連接網路的路由始終由作業系統根據介面位址進行配置。在使用 DHCP 的環境中,會將 IP 位址指派給接口,並且通常會附帶一個預設網關。因此,一旦 DHCP 完成,設備就有了連接的網路路由和預設路由。
更基本的設定是靜態的。該設備的配置中有一個靜態分配的 IP 位址、一個預設網關,或許還有一些靜態路由。這些都是在設備本身上手動配置的。
動態路由
顯然,在處理像互聯網這樣複雜的事物時,手動添加靜態路由將是一個困難的提議。它仍然在某些層面上發生,但一切都得到了動態路由協定的幫助。這實際上是路由器「擁有」一組 IP 位址範圍並將其傳達給其他路由器的地方。所有路由器都互相學習路由。
這意味著 ISP 可以獲得新的 IP 範圍,並將其添加到其配置中,並將其通告到其網路之外,而互聯網的其餘部分無需進一步配置即可了解它。
免責聲明
請注意,整個描述是所發生情況的簡化版本,有許多例外、警告和不同的技術可以改變該過程的展開方式,但這就是它在基本層面上的工作方式。
答案2
這就是 DHCP 伺服器發揮作用的地方。
然而,這就是 MAC 位址發揮作用的地方,發現封包被封裝到資料鏈路層乙太網路封包中,目標 MAC 位址為 FF:FF:FF:FF:FF:FF,來源是網路介面 MAC位址是。
第一個收到 FF:FF:FF:FF:FF:FF 封包的交換器將從每個交換器端口轉發該發現數據包,除了它來自的端口,因為它不知道誰 FF:FF:FF: FF :FF:FF 是其中之一,直到DHCP 伺服器發現它為止。如果 DHCP 伺服器是第一個交換機,它不會轉送請求,因為交換器是 DHCP 伺服器,它將收到此幀,然後將訊息傳回 IP 255.255.255.255,因為它不知道誰在聯絡因為來源ip 是0.0 .0.0,但它確實知道聯繫它們的mac 位址,因此它將封裝提供資料包,其中來源mac 是dhcp 伺服器,目標mac 是發送發現資料包的裝置及其發送方式單播而不是廣播。
然後設備收到此提議,然後請求租用,DHCP 伺服器然後確認租用
另請注意,如果預設網關意味著您的通訊必須通過其他設備,則通常表示路由是靜態設定的,或者換句話說,手動設定的,而不是動態路由,因為某些設定將使設備無法了解哪個設備實際上是預設網關。
答案3
大多數網路連線使用 PPP 形式 - DSL 的 PPPoA 或電纜的 PPPoE。
PPP 是一種點對點協定(這畢竟是它的名稱),因此預設閘道始終是 PPP 連接另一端的閘道。
無需以任何方式檢測到這一點,因為它就是這樣。唯一的問題是是否主動使用 PPP 連接的遠端作為預設網關,通常情況下您會這樣做。