路由器做什麼工作(路由器如何工作)
【好玩的網路】系列面向普通人的網路科普視訊。
本期知識點
路由器的作用是什麼?
如何實現跨子網通訊?
路由器的工作原理簡介, route表。
好玩的網路第三期!不定期更新。視訊傳送門。
本系列視訊/教程
路由器引數解讀傳送門。
嗨,大家好!我是你們的小夥伴果子。上一期視訊,我們對IP地址,網段,子網有了一定的認識,我們知道,只要配置好IP地址和子網掩碼,使兩臺主機的IP地址屬於同一個網段,這兩臺主機就能通訊了。這一期,我們講講跨子網通訊和路由器。
1.引言
我們之前講過交換機,交換機是一個資料轉發裝置,在OSI模型中的第二層,資料鏈路層工作,通過MAC地址和交換機埠號的對應關係來轉發資料包,忘記的小夥伴可以看我的第1期視訊。而我們今天要講路由器在OSI模型中的第3層“網路層”工作,是一個三層轉發裝置。我們所說的多少層,不是說裝置只在這一層工作,而是最少能到達到這一層。
路由器在OSI模型中的工作層級
2.路由器的結構與分類:
路由器的本質就是一臺電腦,通常插著兩張網絡卡,其中一張網絡卡連線廣域網WAN,另外一張網絡卡連線區域網LAN。WAN的IP地址由上級網路分配,LAN的IP地址我們可以自己設定。家用路由器一般有自己的預設Lan口IP地址,一般是192.168.1.1/24,在包裝說明書或路由器背面的銘牌中都有寫明,此地址也是路由器的預設管理地址。
路由器的本質,另外家用路由器是路由交換一體機
更高階的路由器可以有多個WAN口,甚至可以新增虛擬網絡卡,可以實現“單線多播”負載均衡疊加網速等更高階的功能。另外,路由器也分為硬體路由器和軟路由。所謂的硬路由就是我們直接從網上購買到的路由器,主要實現路由功能。而軟路由則是在普通電腦上安裝openwrt,愛快等路由器系統,實現路由功能的裝置,主要是為了實現廣告過濾,搭建網路隧道等功能。我們以後會在centos系統中實現部分功能。
3.路由器的功能1:定址與轉發
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 http://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的全稱為Dynamic Host Configuration Protocol,也叫動態主機配置協議。 路由器有自帶的DHCP伺服器,為接入的裝置自動分配IP地址,若要使用此功能,需要在路由器上開啟DHCP功能。通過DHCP伺服器,可以將配置好的IP地址池,子網掩碼,閘道器資訊,DNS資訊下發給下聯的網路裝置。需要注意的是,即便路由器的DHCP功能是開啟的,主機仍然可以強制手動設定IP地址,子網掩碼等,只要這些和路由器管理地址處於同一個網段,IP地址不衝突,仍然可以正常和路由器通訊以及上網。特別值得注意的是,同一個LAN中,最多隻能有一個DHCP伺服器處於開啟狀態,否則可能會導致下聯的裝置不能正確的獲取網路配置,從而導致無法上網。
路由器的DHCP功能
5.路由器的功能3:源地址轉換NAT
路由器第三個重要功能,就是利用NAT技術為本地區域網做源IP地址轉換SNAT。
NAT的全稱是Network Address Translation,S的含義是source,也叫IP偽裝技術。我們知道,區域網主機ip地址192.168.0.4/24是一個私有地址,可能鄰居家也有這個地址。假設傳送到公網的地址也是用這個地址的話,百度主機要給我們返回資料包的時候,由於目的地址是私有地址,中途根本不知道會傳到哪裡。所以,資料包在出路由器之前,路由器會將該資料包的源IP地址偽裝成路由器WAN口的公網IP地址,這樣百度想要返回資料包時,目的地址是公網IP地址了,資料包就能順利傳回來了。路由器收到傳回來的資料包後,會自動做目的地址轉換DNAT,將目的地址從公網IP轉換為剛才傳送訊息的主機192.168.0.4,這樣內部主機就能順利接收資訊了,路由器內部所有的裝置也都能通過這種方式上網了。
區域網能訪問公網的原理
6.路由器的功能4:目的地址轉換,埠對映,DMZ主機
路由器第四個重要功能,是埠對映或dmz主機。
這個也是利用NAT技術做目的IP地址轉換或目的埠轉換。不過此行為的目的是為了從公網主動訪問內網。一般情況下,一臺計算機從公網想要主動連線區域網內的一臺計算機是不可能的,因為資料包的目的IP地址是公網地址,傳送到路由器WAN口後,路由器以為這個資料包是傳給自己的,然而實際卻不是給自己的。在路由器上配置埠對映後,當公網主動傳來資料包時,路由器判斷是否要將資料轉發給內部主機。假設在路由器上配置dmz主機,內網主機地址為192.168.0.4,那麼路由器收到公網傳送的資料包後,會把資料包的目的IP地址改為192.168.0.4,重新封裝後轉發給內部的樹莓派。此行為相當於將樹莓派主機直接對映在公網環境中,這樣就能實現從公網主動訪問內部主機了。
公網能主動訪問區域網主機的原理
7.無線路由器:無線橋接和有線橋接
無線路由器和有線路由器,除了無線發射功能外沒有本質區別,只是在LAN口橋接了一個無線網,能夠收發無線訊號而已。
無線橋接和有線橋接功能理解起來也非常簡單,唯一的目標是想辦法把兩個路由器的LAN合併到一起。
我們只需要知道下面兩個關鍵點,就能掌握好橋接。
1.在一個lan中IP地址必須唯一,因此,從路由的LAN必須和主路由屬於同一網段並IP地址唯一。
2.在一個lan中最多隻能有一個dhcp伺服器,因此要把從路由的DHCP功能關閉。
無線橋接和有線橋接
8.本期總結
到現在為止,我們已經可以實現跨子網的訪問了,並知道如何去配置路由器。
如何配置靜態路由和dmz主機?如何從公網訪問內網主機以及穩定的ddns?
歡迎關注博主,學習更多網路知識!有問題,歡迎評論區討論!
本期視訊問題及參考答案:(私“Q1”看答案) 問題1:使用橋接,從路由的Wan口充當什麼角色?“從路由”充當什麼角色?
問題2:我在最後講無線橋接時,在視訊中講到“必須”要保證路由器的LAN口ip地址和主路由Lan口IP地址在同一網段而且唯一。真的是這樣嗎?請大家思考一下,如果主路由配置不變192.168.0.1/24(開啟dhcp),從路由強制設定Lan口IP地址為192.168.5.1(關閉dhcp)。這時,1.通過從路由無線網接入的裝置(裝置獲取IP方式為dhcp或自動獲取),是否能正常上網?2.裝置獲取到的IP地址屬於哪個網段?3.現在如何訪問從路由管理介面?
下一期視訊,帶大家分析家庭組網,包括如何設計接線,裝置擺位等等,非常簡單!希望你們有收穫。
後期再對評論中的一些其他方法一一做解釋,比如改掩碼,靜態路由等等。
路由器引數解讀傳送門。
圖文編輯: 旋律果子 貓小爪
歡迎關注博主,一起學習網路知識!有問題,歡迎私信、在評論區留言討論。
旋律果子: 網路Geek/Linux開發者/中國科學院大學在讀博士/科技數碼博主/國家二級建造師/優質科技領域創作者