網絡協議之路由是怎么回事?

寫在前面

要想去外面的世界看看, 就離不了路由器,而路由器工作的原理就是路由,那么具體是怎么路由的呢?本文就一起來看下這部分內容。

1:路由的配置

配置一條路由無非就是在配置以下三個信息:

1:包要去哪里,即目的IP
2:從路由器的哪個網口出去
3:下一跳的IP地址是啥?

知道了以上信息,就能以在局域網環境中傳輸包方式來完成一跳了,還是ARP獲取MAC,修改目標MAC等操作。
那么如何配置呢,最簡單的方式就是直接配置,如下:

 ip route add 10.176.48.0/20 via 10.173.32.1 dev eth0

意思就是如果是包要去10.176.48.0/20,就要從eth0這個網口出去,下一跳的地址是10.173.32.1,就像這樣:
在這里插入圖片描述
當然這樣子按照目的IP來配置路由器是完全可行的,但是一個個配置工作量還是蠻大的,所以也支持其他的配置方式,比如策略配置方式,即通過源IP,TOS等方式等方式來配置,如下根據源IP來進行配置:

ip rule add from 192.168.1.0/24 table 10 如果是來源IP是192.168.1.0/24則使用路由表10
ip rule add from 192.168.2.0/24 table 20如果是來源IP是192.168.2.0/24則使用路由表20

也可以配置多個出口,來實現負載均衡:

ip route add default scope global nexthop via 100.100.100.1 weight 1 nexthop via 200.200.200.1 weight 2

下一跳有倆,分別是100.100.100.1,權重1,200.200.200.1,權重2。
接著我們來看一個出口可以二選一的實際場景。
我家在有孩子之前只買了一家運營商的網絡,因為我家對網絡的要求不高,我跟我老婆基本上都不看視頻什么的對網速要求比較高的網站,最多也就是看看新聞,查查工作中遇到的問題啥的,但是呢,后來有了孩子,孩子要上網課,所以我們又買了另一家運營商的網絡,寬帶呢更高,但是家里的路由器支持一個出網網口,即只能接一個外網,為此,我們還專門買了一個可以支持兩個外網網口的更高級的路由器,最終,我們家的網絡就像這樣子:
在這里插入圖片描述
其中eth2和eth3就是兩個外網網口。
此時我們家的路由配置如下:

$ ip route list table main 
60.190.27.189/30 dev eth3  proto kernel  scope link  src 60.190.27.190
183.134.188.1 dev eth2  proto kernel  scope link  src 183.134.189.34
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.1
127.0.0.0/8 dev lo  scope link
default via 183.134.188.1 dev eth2

意思是:

如果是要去60.190.27.189/30,即運營商2則從eth3口出
如果是要去183.134.188.1,即運營商1則從eth2口出
如果是去內網192.168.1.0/24,則從eth0出,此時只是在局域網內,不到外網
如果是去127則走lo,回環網口,此時是自己跟自己玩
默認走eth2

因為我們需要孩子屋使用高速網絡,我們屋使用低速網絡,為此還要進行如下的配置:

  • 我們屋走低速網絡
添加新的路由表:# echo 200 slow >> /etc/iproute2/rt_tables
配置slow路由表:# ip route add default via 60.190.27.189 dev eth3 table slow# ip route flush cache 
配置來自我們的IP走slow路由表:# ip rule add from 192.168.1.102 table slow

這樣我們屋走路由表slow,而路由表slow走eth3網口,下一跳的IP的60.190.27.189。

  • 孩子屋走高速網絡
添加新的路由表:# echo 200 fast >> /etc/iproute2/rt_tables
配置slow路由表:# ip route add default via 183.134.188.1 dev eth2 table fast# ip route flush cache 
配置來自我們的IP走slow路由表:# ip rule add from 192.168.1.101 table fast

這樣孩子屋走路由表fast,而路由表fast走eth2網口,下一跳的IP是183.134.188.1。
當然簡單的網絡環境,比如我家里的網絡,手動擋搗鼓搗鼓還是問題不大的,但是當網絡環境比較復雜時,手動的方式就顯得力不從心了,此時就需要自動的方式來進行了。

2:動態路由配置

其實我們抽象的來看所有路由器,組成的其實就是一個圖,而路由器無非就是找到一條最短路徑而已,所以動態路由配置其實就是轉化為了圖的最短路徑問題了,而解決最短路徑問題,主要是Bellman-Ford 算法和Dijkstra 算法。具體在動態路由配置算法有以下兩種。

  • 距離矢量路由算法
    該算法基于bellman-ford,適用于小型網絡。
  • 鏈路狀態路由算法
    該算法基于dijkstra算法。適用于大型網絡。
    但是只有算法還是工作不起來的,還需要具體協議的支持,畢竟先干嘛后干嘛還是要有一個規范的嗎,所以就有了以下的具體協議:
  • 基于鏈路狀態路由算法的 OSPF
    OSPF(Open Shortest Path First,開放式最短路徑優先)就是這樣一個基于鏈路狀態路由協議,廣泛應用在數據中心中的協議。由于主要用在數據中心內部,用于路由決策,因而稱為內部網關協議(Interior Gateway Protocol,簡稱 IGP)。
    即,這是一個內網環境的路由協議。
  • 基于距離矢量路由算法的 BGP
    這是一個外網環境的路由協議。我們稱為外網路由協議(Border Gateway Protocol,簡稱 BGP)。
    網絡世界一個獨立的內網環境,比如一個公司網絡,我們稱為一個AS(Autonomous System),自治系統分為以下幾類:
Stub AS:對外只有一個連接。這類 AS 不會傳輸其他 AS 的包。例如,個人或者小公司的網絡。
Multihomed AS:可能有多個連接連到其他的 AS,但是大多拒絕幫其他的 AS 傳輸包。例如一些大公司的網絡。
Transit AS:有多個連接連到其他的 AS,并且可以幫助其他的 AS 傳輸包。例如主干網。 

每個AS之間都有邊界路由器。BGP分為eBGP和iBGP,其中AS之間使用eBGP通信,AS內部使用iBGP,如下圖:
在這里插入圖片描述

寫在后面

參考文章列表

網絡協議之不能老在家里晃悠,也得出去看看啊! 。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91721.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2106. 摘水果,梳理思路

文章目錄題目概要java 解法詳解題目概要 在一個無限的 x 坐標軸上,有許多水果分布在其中某些位置。給你一個二維整數數組 fruits ,其中 fruits[i] [positioni, amounti] 表示共有 amounti 個水果放置在 positioni 上。fruits 已經按 positioni 升序排列…

深入理解消息隊列(MQ)核心原理與設計精髓

引言:從一個“不堪重負”的訂單系統說起想象一個簡化的電商下單流程:用戶點擊“下單”后,系統需要:在訂單數據庫中創建一條記錄。調用庫存服務,扣減商品庫存。調用營銷服務,給用戶發放積分和優惠券。調用通…

前端手撕題總結篇(算法篇——來自Leetcode牛客)

鏈表指定區域反轉 找到區間(頭和為 for循環當**時)->反轉鏈表(返回反轉過后的頭和尾)->連接 function reverseBetween( head , m , n ) {//preEnd&cur&nextStart cur.next斷開if(mn)return head;const vHeadNode…

從Excel到工時管理系統:企業如何選擇更高效的工時記錄工具?

還在為手工統計員工工時而頭疼嗎?月末堆積如山的Excel表格、反復核對的數據、層出不窮的差錯,這些問題正在拖慢企業的發展步伐。8Manage工時管理系統發現,傳統手工記錄不僅耗費大量人力,更讓寶貴的工時數據難以轉化為有效的管理決…

Java設計模式之《命令模式》

目錄 1、介紹 1.1、命令模式定義 1.2、對比 1.3、典型應用場景 2、命令模式的結構 2.1、組成部分: 2.2、整體流程 3、實現 3.1、沒有命令模式 3.2、命令模式寫法 4、命令模式的優缺點 前言 java設計模式分類: 1、介紹 1.1、命令模式定義 命…

【動態規劃算法】路徑問題

什么是動態規劃算法動態規劃(Dynamic Programming,簡稱 DP)是一種通過分解復雜問題為重疊子問題,并存儲子問題的解以避免重復計算,從而高效求解具有特定性質(重疊子問題、最優子結構)問題的算法…

Java基本技術講解

一、基礎語法三要素 暫時無法在飛書文檔外展示此內容 🔑 黃金法則?:每個變量都要聲明類型!二、程序邏輯控制(游戲行為核心) 條件判斷:if-else - “岔路口選擇” // 撿到金幣邏輯 if (isTouching(Coin.clas…

【網絡基礎2】路由器的 “兩扇門”:二層接口和三層接口到底有啥不一樣?

目錄 前言:路由器不是只有 “插網線的口” 一、先搞懂一個基礎:路由器是 “網絡交通樞紐” 二、二層接口:“小區內部的單元門”,只認 “住戶身份證” 1. 啥是二層接口? 2. 用 “小區內部串門” 理解二層接口 步驟 1:手機打包數據,寫上 “收件人身份證” 步驟 2:二…

MLIR TableGen

簡介 TableGen 是一種領域特定語言(DSL),TableGen 的設計目標是允許編寫靈活的描述,并將記錄的通用特性提取出來,從而減少重復代碼并提高代碼的可維護性。 TableGen的工作流程: 前端解析: Ta…

2、docker容器命令 | 信息查看

1、命令總覽命令作用docker ps查看運行中的容器(-a查看所有容器)docker logs [CONTAINER]查看容器日志(-f實時追蹤日志)docker inspect [CONTAINER]查看容器詳細信息(JSON格式)docker stats [CONTAINER]實時…

【MySQL】MySQL中鎖有哪些?

一、按照粒度分類: 粒度越小,并發度越高,鎖開銷越大。 1.全局鎖: 作用: 鎖定整個MySQL實例(所有數據庫)。適用場景: 全庫邏輯部分。(確保備份期間數據的一致性。)實現方式: 通過 FLUSH TABLES W…

語義分割--deeplabV3+

根據論文網絡結構圖講一下:網絡分為兩部分:encoder和decoder部分。 Encoder:DCNN就是主干網絡,例如resnet,Xception,MobileNet這些(主干網絡也要使用空洞卷積),對dcnn的結…

Azure DevOps 中的代理

必知詞匯 深入研究 Azure DevOps 中的代理之前需要掌握的基本概念: 代理:Azure DevOps 中的代理是一個軟件組件,負責執行流水線中的任務和作業。這可能包括數據中心內的物理服務器、本地或云端托管的虛擬機,甚至是容器化環境。這些代理可以在各種操作系統和環境中運行,例如…

AUTOSAR進階圖解==>AUTOSAR_SRS_ADCDriver

AUTOSAR ADC驅動詳解 基于AUTOSAR標準的ADC驅動模塊需求規范分析目錄 ADC驅動模塊概述 關鍵概念定義 ADC驅動架構 ADC驅動在AUTOSAR分層架構中的位置ADC驅動的主要職責 ADC驅動配置結構 通用配置(AdcGeneral)硬件單元配置(AdcHwUnit)通道配置(AdcChannel)通道組配置(AdcChanne…

寶馬集團與SAP聯合打造生產物流數字化新標桿

在德國雷根斯堡的寶馬工廠,每57秒就有一輛新車下線。這座工廠不僅是汽車制造的基地,更是寶馬集團向SAP S/4HANA云平臺轉型的先鋒項目。通過“RISE with SAP”計劃,寶馬將該工廠的運營系統全面遷移至SAP S/4HANA Cloud Private Edition&#x…

Go 語言實戰:構建一個高性能的 MySQL + Redis 應用

引言:為什么是 Go MySQL Redis?在現代后端技術棧中,Go MySQL Redis 的組合堪稱“黃金搭檔”,被廣泛應用于各種高并發業務場景。Go 語言:以其卓越的并發性能、簡潔的語法和高效的執行效率,成為構建高性能…

Excel超級處理器,多個word表格模板中內容提取到Excel表格中

在職場中,很多人習慣在word里插入表格,設計模板,填寫內容,一旦有多個word文件需要整理在excel表格中,最常見的工作方式就是每個word文件打開,復制,粘貼到excel表格里,這樣的工作方式…

前端工程化:ES6特性

本文為個人學習筆記整理,僅供交流參考,非專業教學資料,內容請自行甄別 文章目錄一、let與var1.1、越獄問題1.2、變量的重復聲明1.3、變量提升問題二、解構2.1、數組解構2.2、對象解構2.3、方法解構三、鏈判斷四、參數默認值五、箭頭函數六、模…

大屏項目展示

一、項目克隆與基礎操作 我們參考的項目 互聯網設備可視化平臺---IofTV-Screen: ??一個基于 vue、datav、Echart 框架的物聯網可視化(大屏展示)模板,提供數據動態刷新渲染、屏幕適應、數據滾動配置,內部圖表自由替換、Mixins注入等功能,持續更新.... 將次項目克隆到本…

基于R語言地理加權回歸、主成份分析、判別分析等空間異質性數據分析實踐技術應用

在自然和社會科學領域有大量與地理或空間有關的數據,這一類數據一般具有嚴重的空間異質性,而通常的統計學方法并不能處理空間異質性,因而對此類型的數據無能為力。以地理加權回歸為基礎的一系列方法:經典地理加權回歸,…