網關的作用是什么?
1.網關的解釋:
提到網關,我們就不得不提路由器的工作原理(詳細介紹請往下看),我們先看看網關。
先在某度檢索,得到大概這樣的描述:網關(Gateway)是一個網絡連接到另一個網絡的“出口”。可知:1.它是一道門;2.與我們的數據傳輸有關。3.與廣域網、局域網通訊有關(子網、跨子網通訊有關,關于子網掩碼、子網、網段,可以 關注博主>主頁>文章)。
Gateway有2層含義,在硬件層面上,也就是你的出口路由器。例如你家里路由模式下的光貓,家里的路由模式的主路由器等。如果家里的路由器開的是AP模式,那就不是網關了。
Gateway在軟件層面,有個別稱,叫“下一跳”。你可能會經常聽到默認網關,靜態路由等詞,都和網關有關系,主要是告訴你下一站的地址。
因為硬件層面的Gateway比較好解釋,這一期,我們主要解釋一下軟件層面的“網關”。
既然是一道“門”,那么,誰在指揮“門”的發揮關卡的作用呢?自然是理由器!它是一個指揮、數據處理中樞與樞紐。
路由器分硬路由與軟路由(軟路由之所以能夠屏蔽廣告,也與其“關卡”的作用有關;所謂的硬路由就是我們直接從網上購買到的路由器,主要實現路由功能。而軟路由則是在普通電腦上安裝openwrt、愛快、Centos,routerOS等路由器系統,實現路由功能的設備,主要是為了實現廣告過濾,搭建網絡隧道等功能。我們以后會在centos系統中實現部分功能。),我們來看看果子關于路由器介紹的節選:
2.路由器的結構與分類:路由器的本質就是一臺電腦,通常插著兩張網卡,其中一張網卡連接廣域網WAN,另外一張網卡連接局域網LAN。WAN的IP地址由上級網絡分配,LAN的IP地址可自行設置。家用路由器默認Lan口IP地址(一般是192.168.1.1/24),在包裝說明書、路由器背面的銘牌中有寫明,也是路由器的默認管理地址。路由器的本質,另外家用路由器是路由交換一體機
更高級的路由器可以有多個WAN口,甚至可以添加虛擬網卡,可以實現“單線多播”負載均衡疊加網速等更高級的功能。3.路由器的功能1:尋址與轉發我們之前講過交換機,交換機是一個數據轉發設備,在OSI模型中的第二層,數據鏈路層工作,通過MAC地址和交換機端口號的對應關系來轉發數據包,忘記的小伙伴可以看果子的第1期視頻。而我們今天要講路由器在OSI模型中的第3層“網絡層”工作,是一個三層轉發設備。
我們所說的多少層,不是說設備只在這一層工作,而是最少能到達到這一層。
路由器在OSI模型中的工作層級
3.1.路由規則路由器最主要的作用就是實現跨網段的數據傳輸與轉發。就像交通路標一樣,指引著車輛和行人的行動,這種指引行為就叫路由,路由器通過路由表來記錄轉發規則。我們先來看看路由表長什么樣。因為普通路由器無法查看路由表,所以果子在centos7系統上進行演示。路由器主要是為了實現跨子網的傳輸
我們在centos系統中輸入route -n命令,就可以查詢路由表,查詢到的路由表有8列,其中第1列Destination為目的地址,第2列Gateway為網關地址,也叫“下一跳”,第3列Genmask為網關掩碼,第8列Iface為網卡接口。查詢路由表的方法,路由表
我們將第1列與第3列合并起來,會驚奇地 發現,第一列不就是網絡地址嗎?忘記的同學可以翻看第2期視頻。Flag帶有G的規則代表網關規則,若數據包的目的IP地址與路由表中目的地址匹配,路由器會將數據包轉發到Gateway中的網關地址。如果flag不帶G,說明本條規則不是網關規則,目標地址肯定就在本地鏈路,通過同一個交換機相連。如何看路由表
舉個例子,如果想發送數據給某度的服務器39.156.69.79,匹配到的目的地址是0.0.0.0/0,那么這個數據包就會被轉發給網卡eth0,走默認網關192.168.0.1。局域網內發送消息給百度
如果數據包的目的地是果子的辦公室的主機,IP地址為192.168.2.12,那么會同時符合兩個目的網段,0.0.0.0/0和192.168.2.0/24,但是路由器會優先匹配更精確的規則,所以數據包通過tun0網卡轉發給網關192.168.10.12。數據包發送到辦公室
3.2網絡數據包的長距離傳輸:網絡數據包長距離傳輸的過程中,會經過一個個的路由器,我們拿局域網內一臺主機和百度的通訊舉個例子,假設局域網內一臺主機192.168.0.4/24要訪問公網上的百度主機39.156.69.79。主機查詢自己的路由表,把數據包發送給誰呢?主機查詢自己的路由表,把數據包發送給默認網關192.168.0.1(路由器LAN端IP地址)。路由器收到數據包后,繼續發送給更上級的默認網關(運營商的路由器),經過多個路由的傳遞,最終百度主機就會收到信息了。我們在centos系統中,可以使用traceroute -n baidu.com的命令查看中途經過了哪些路由器。我們很清晰地看到,第一個經歷的路由器就是我們自己的路由器192.168.0.1,第二個路由器是運營商的路由器,27.19.176.1,中間的路由器都是城市路由的節點。到百度主機經歷的路由器
3.3.路由規則的獲得路由器如何獲得路由規則?路由器想要實現路由功能,首先路由器本身得知道數據應該向哪里傳。路由器得知這些信息的方式大致有3種,第一種方式是直連路由;第二種是通過手動添加路由規則,也就是靜態路由。第三種是通過動態路由協議獲得的路由,一般在城市或大型企業網絡運用比較多,家庭網絡甚至小型企業根本用不上,我們主要了解一下前兩種方法。第一種方式是直連路由。當主機正確配置好一個IP地址后,會自動生成一條目的地址為該子網的路由。例如樹莓派的網卡eth0通過dhcp獲得192.168.0.4/24的ip地址,那么會自動產生一條目的地址為網段192.168.0.0/24的路由。如果我在網卡tun0上手動設置IP地址為192.168.10.4/24,也會增加192.168.10.0/24的路由。第二種方式是手動添加靜態路由。例如果子添加目的地址為果子辦公室的子網192.168.2.0/24,網關地址為192.168.10.12,因為樹莓派本機根本不知道192.168.2.0/24的子網在哪里,所以必須手動設置。再例如,在mac系統中,手動配置IP地址時,填寫的網關或路由,會生成路由表中的默認路由。4.路由器的功能2:DHCP服務器功能路由器的第二個功能為DHCP服務器。DHCP,也叫動態主機配置協議。路由器有自帶的DHCP服務器,為接入的設備自動分配IP地址,在路由器上開啟DHCP功能,便能使用設備自動分配IP地址功能。通過DHCP服務器,可將配置好的IP地址池,子網掩碼,網關信息,DNS信息下發給下聯的網絡設備。需要注意的是,即便路由器的DHCP功能是開啟的,主機仍然可以強制手動設置IP地址,子網掩碼等,只要這些和路由器管理地址處于同一個網段,IP地址不沖突,仍然可以正常和路由器通訊以及上網。特別值得注意的是,同一個LAN中,最多只能有一個DHCP服務器處于開啟狀態,否則可能會導致下聯的設備不能正確的獲取網絡配置,從而導致無法上網。路由器的DHCP功能
5.路由器的功能3:源地址轉換NAT路由器第三個重要功能,就是利用NAT技術為本地局域網做源IP地址轉換SNAT。NAT,也叫IP偽裝技術。局域網主機ip地址是一個私有地址,別人家也可能有相同的地址。假設發送到公網的地址是局域網主機ip地址,百度主機要返回數據包時,不知會傳到哪。所以,數據包在出路由器之前,路由器會將該數據包的源IP地址偽裝成路由器WAN口的公網IP地址,當百度主機想返回數據包時,目的地址便是我們的公網IP地址了。路由器收到傳回來的數據包后,會自動做目的地址轉換DNAT,將目的地址從公網IP轉換為剛才發送消息主機IP地址,內部主機順利接收信息,路由器內部所有的設備也都通過這種方式上網。局域網能訪問公網的原理
路由器工作原理詳細介紹,具體可 關注 博主>主頁>文章 看具體介紹:
《路由器如何工作?作用是什么?最硬核科普!學會后可網工級組網》
圖文編輯: 旋律果子 貓小爪旋律果子: 網絡Geek/Linux開發者/中國科學院大學在讀博士/科技數碼博主/國家水利水電二級建造師/優質科技領域創作者