當主機配置IP及網關地址不在當前網段,請求報文會發到哪?

當主機配置IP及網關地址不在當前網段,報文會發到哪?

哪都去不了,報文應該發不出去。

測試

如下:我當前主機所在網段的網關是172.18.65.1,我本機配置的ip是172.18.65.61。這是沒有問題的,可以正常上網。
在這裏插入圖片描述
現在修改我本機的ip地址172.18.63.61,網關是172.18.63.1,注意:配置的IP與網關兩個地址需要在同一網段,儘管手動配置的靜態ip地址與我當前實際網關(172.18.65.1)不在同一網段。
在這裏插入圖片描述
然後,重啓網卡,使配置生效。
這個時候是上不了網的。

原因

會不會有朋友猜測,報文發出去了,但是到路由器這裏丟了?
實際上應該沒發出去。
接下來我解釋下原因(其實是我自己的一些推測及驗證,如果有解釋不正確的地方,請在評論中及時指正,謝謝)
簡單解釋下請求報文如何尋址。

  1. 在IP路由表,根據目的ip,可以知道下一跳路由器,或者直達目的網絡接口。
  2. 基於arp協議,可以找到目的ip映射的mac地址,也就是說這個IP對應的是哪塊網卡(網絡接口),然後從這個網卡發出去。
    現在實際情況是修改了IP不在當前網段後,報文發不出去了。
    原因我接着往下說:
    首先,沒改IP前,看下arp表和路由表:
    在這裏插入圖片描述
    在這裏插入圖片描述
    看標紅框的地方,是網關,比如我打開瀏覽器,訪問百度,這個比喻不合適,因爲報文發不出去,還怎麼解析域名。
    但是,現在打個比方,比方我現在向百度的實際IP發一個請求報文,百度的實際IP肯定和上面路由表中的幾個網段不在同一個網段
    在這裏插入圖片描述
    所以最終會選擇從接口enp3s0發向網關。
    好了,現在我把本機IP及本機網關地址配置與當前不在一個網段:
    172.18.65.1 -> 172.18.63.1
    172.18.65.61 -> 172.18.63.61
    這時候看下arp表和路由表:
    在這裏插入圖片描述
    在這裏插入圖片描述
    首先,從路由表中,知道要要到達目的IP(39.156.66.18),當前要先發到網關172.18.63.1,因爲不是直達麼。但是在arp表中,可以看到:172.18.63.1的mac地址呢???
    雖然接口是enp3s0,但是現在誰能告訴它,mac地址是多少,要發給誰???因爲沒有目的mac地址,所以這個包最終應當是不會交到物理層的,也就是網卡這裏不會發到物理層。
    抓個包可以看到:
    在這裏插入圖片描述
    我本機(戴爾的一款筆記本)一直在發arp請求,想知道192.18.63.1的mac地址是多少,但是永遠不會收到arp應答。因爲當前網段上根本就不存在這個ip,所以這個包也就發不出去了。

寫在最後,小弟才疏學淺,好多東西怕是還沒掌握,就擔心有理解錯誤的地方,如有問題,請及時指正,不要讓我一直錯下去。好人一生平安。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章