淺談網路-閘道器與路由
現在網路中充斥這各式各樣的資訊,那麼我們們的計算機是如何上網的呢?不知道你是否考慮過這個問題?今天就討論下,我們是如何在外網上網的。
現在我們家庭中一般上網的模式就是,買一個路由器,然後登陸路由器以後,配置好上網資訊,去連線路由,如果沒有開啟DHCP的話,會讓配置IP等資訊等,其中有一點需要注意的就是,需要配置一個名為“閘道器(Gateway)”的東西,配置過後往往就可以訪問目標機器了,訪問外網就需要跨過閘道器。
- 1.跨閘道器訪問外網涉及到哪些相比於區域網的改變?
要說改變的話,可能首當其衝的就該說IP和MAC的改變吧,需注意的是,當前本級的IP地址是當前區域網內的IP,也就是說,並不能在外網中當作識別的“門牌”,那麼它是怎樣變化的呢?請看下我剛從google上找到的一個相關報頭的示意圖我覺得很不錯就直接引用了。
1.這裡來講解下這張圖,在 MAC 頭裡面,先是目標 MAC 地址,然後是源 MAC 地址。
2.協議型別是當前協議的型別,我們們一般訪問網頁啥的會說明我們們用的是IP協議。
3.IP頭中所說的版本號,在我們們當下主流使用的是IPv4。
4.首部長度指明IPv4協議包頭長度的位元組數包含多少個32位。
5.TOS 定義IP封包在傳送過程中要求的服務型別。
6.總長度指的是IP協議頭格式中指定IP包的總長,通常以byte做單位來表示該封包的總長度,需要注意的是此數值包括標頭和資料的總和,佔16位說明其最長為65535位元組,但不是說一個IP資料包就會那麼長,實際上它會被鏈路層進行進一步的拆分傳送。
7.標識是每一個IP封包都有的一個16位的唯一識別碼。
8.標誌,這是當封包在傳輸過程中進行最佳組合時使用的3個bit的識別記號。
9.片位移是指網路包被拆分的順序,由於拆分後,接受的順序不一定是被拆分的順序,所以需要這個。
10.TTL是指生存時間,這個欄位設定了資料包可以經過的最多路由器數,表示資料包在網路上生存多久。
11.這裡的協議就是下一層的協議,也就是,是 TCP 還是 UDP。
12.最重要的就是這個源IP地址和目標IP地址,要通過這個來判斷這個是否要經過閘道器出去到外網。判斷依據就是是否在同一個網段,利用CIDR和子網掩碼可得。
資料發往閘道器的步驟與內網裝置互動相同,先在報文中加入源IP地址和目標IP地址,利用ARP找到閘道器的MAC地址,加入報文,進行傳送。
而閘道器往往是一個路由器,是一個三層轉發的裝置,拿下MAC頭和IP頭,檢視報文要被轉發到哪裡,並進行處理。我曾經看到過對於路由器的一個很好的比喻分享給大家:“路由器是一臺裝置,它有五個網口或者網路卡,相當於有五隻手,分別連著五個區域網。每隻手的 IP 地址都和區域網的 IP 地址相同的網段,每隻手都是它握住的那個區域網的閘道器。 ”,也就是說任何一個想發往其他區域網的包,都會到達其中一隻手,被拿進來,拿下 MAC 頭和 IP 頭,看看,根據自己的路由演算法,選擇另一隻手,加上 IP 頭和 MAC 頭,然後扔出去。
那麼問題來了,發往其他地方的包,該選擇哪個手扔出去呢?並且其中哪些內容要變呢?實際上可以分為兩類,靜態路由和動態路由兩種處理方式
靜態路由:其實就是寫死了很多的規則,想去這個網段的從這個口出,想去另一個網段的,就從另一個口出。
動態路由:通過一定的演算法,生成動態路由表,隨著網路狀態的改變而改變。
前面鋪墊了那麼多基礎知識,那麼到底IP和MAC中哪些變哪些不變呢?(以下按照靜態路由的方式說明,因為簡單)
首先說下MAC地址,由於MAC地址是一個區域網內才有效的地址,所以出閘道器的話肯定會變。IP地址的話一般我們需要按照情況分為兩類討論,兩者主要的區別在於 IP 地址是否改變,不改變該IP地址的,被稱作轉發閘道器,改變IP地址的被成為NAT閘道器。
(安利個畫圖軟體,ProcessOn,還挺好用的,手動滑稽)
1.轉發閘道器
上圖發生的一個變數改變,「靜態路由表,對應網段網口已經配置好,會按配置表跳」:
(1)源MAC:裝置A的MAC;目標MAC:路由A的MAC;源IP:192.168.2.112;目標IP:192.168.4.112
(2)源MAC:路由A的MAC;目標MAC:路由B的MAC;源IP:192.168.2.112;目標IP:192.168.4.112
(3)源MAC:路由B的MAC;目標MAC:裝置B的MAC;源IP:192.168.2.112;目標IP:192.168.4.112
從上面可以知道,源IP和目標IP是不變的,MAC是要變的,報文中不儲存閘道器資訊,也就是說所謂的下一跳是,某個 IP 要將這個 IP 地址轉換為 MAC 放入 MAC 頭中。「需要注意的是,這裡更類似我們所說的拓撲網路,IP地址在三個區域網可見,並且相互不會衝突」
2.NAT閘道器
這裡跟上種形式最大的區別就是,彼此網路中IP可能會產生衝突。就例如北京有個“蓮花街23號”,石家莊也有個“蓮花街23號”。那麼這時候,我們們就需要讓他有一個“國際身份”,凡事要去北京的就先到北京,凡事要到石家莊的就先到石家莊,再去各地的“蓮花街”。如下圖,兩個都是192.168.2.1
上圖發生的一個變數改變
(1)源MAC:裝置A的MAC;目標MAC:路由A的MAC;源IP:192.168.2.112;目標IP:192.168.3.2
(2)源MAC:路由A的MAC;目標MAC:路由B的MAC;源IP:192.168.3.1;目標IP:192.168.3.2
(3)源MAC:路由B的MAC;目標MAC:裝置B的MAC;源IP:192.168.3.1;目標IP:192.168.2.112
從裝置 B 接收的包可以看出,源 IP 為裝置 A 的國際身份,因而回包的時候也應該是A的國際身份,由路由 A 做 NAT,轉換為國內身份。我們們家中所使用的路由器多采用該種模式。
總結一下:
1.如果區域網需要訪問外網的話,就需要過閘道器,過閘道器的判斷標準就是訪問的地址是否在統一網段內,根據CIDR和子網掩碼算下。
2.路由器是一個三層裝置,裡面有如何尋找下一跳的規則,分為靜態路由和動態路由
3.閘道器有兩種,轉發閘道器和NAT閘道器。轉發閘道器MAC地址不變,改變IP;NAT的是關鍵是一個“國際身份”
4.MAC頭和IP頭的那些概念
相關文章
- 家庭路由/閘道器 網路配置折騰日記路由
- Zuul路由閘道器Zuul路由
- 淺談服務閘道器和聯邦雲
- SpringCloud GateWay 使用 閘道器路由SpringGCCloudGateway路由
- API閘道器:第8層網路API
- 在Spring Boot中實現API閘道器與路由Spring BootAPI路由
- Spring cloud(5)-路由閘道器(Zuul)SpringCloud路由Zuul
- SpringCloud之路由閘道器zuul(五)SpringGCCloud路由Zuul
- spring cloud構建網際網路分散式微服務雲平臺-路由閘道器(zuul)SpringCloud分散式微服務路由Zuul
- Fresh tomato做主路由下DHCP閘道器問路由
- SpringCloud-Gateway 閘道器路由、斷言、過濾SpringGCCloudGateway路由
- 使用路由閘道器的全域性過濾功能路由
- 物聯網的閘道器
- 不設定預設閘道器,可訪問網路
- 智慧路燈閘道器特點以及組網方案分析
- Azure Virtual Netwok(二)配置 ExpressRoute 虛擬網路閘道器Express
- ⑤SpringCloud 實戰:引入Zuul元件,開啟閘道器路由SpringGCCloudZuul元件路由
- 網路分流器-淺談網路資料中心IDC網路技術
- 如何有效提升智慧物聯網閘道器工業4G路由器的網速路由器
- Ceph物件閘道器,多區域閘道器物件
- Janusec應用安全閘道器(WAF閘道器)
- 多網路卡 配置多閘道器
- 關於物聯網閘道器WiFi路由器解決方案的WiFi模組WiFi路由器
- 淺談網路最大流
- 有哪些工業網際網路平臺可以接入MQTT閘道器?MQQT
- Spring Cloud Zuul API服務閘道器之請求路由SpringCloudZuulAPI路由
- ⑥SpringCloud 實戰:引入gateway元件,開啟閘道器路由功能SpringGCCloudGateway元件路由
- Asp.Net Core + Ocelot 閘道器搭建:路由簡單配置ASP.NET路由
- 什麼是閘道器?閘道器的作用是什麼,閘道器的作用詳解
- gateway 閘道器Gateway
- 閘道器GatewayGateway
- 物聯網閘道器與物聯網平臺有什麼功能
- 淺談前後端路由與前後端渲染後端路由
- API閘道器,企業級閘道器可擴充套件API套件
- 《springcloud 二》微服務動態閘道器,閘道器叢集SpringGCCloud微服務
- 淺談大型網際網路的安全
- Spring Cloud Zuul與閘道器中介軟體SpringCloudZuul
- Ocelot閘道器(二)