天天看點

路由基礎-第一章

目錄

​​第零層:前言​​

​​第一層:路由基礎​​

​​第二層:靜态路由​​

​​第三層:動态路由​​

第零層:前言

路由基礎這一節的複習沒有看任何老師的講解視訊,而是看了《hncp路由交換指南》的路由基礎這一章節之後的自我梳理。在一年之前看《hcnp路由交換指南》的時候還是一種“不識廬山真面相,隻緣身在此山中”的感覺,現在再看時就能夠把握住作者想說的話和每一章的結構,能基本上了解每一句話,能大概判斷下一句話要講什麼,感覺真的是太棒了!當我寫這篇自我梳理的時候,我認為我完全沒必要按照作者對這一章節的架構來梳理,完全可以按照自己的方式。

當看完整個章節之後,發現整個章節都是圍繞着路由表擴充開始講的。

路由表裡面有協定這一字段,這一字段擴充來講其實也沒有什麼好講的,無非是直連、靜态、動态、而動态又分距離矢量和鍊路狀态路由這兩種類型,這一字段其實是概括性的,沒什麼好說的;

還有目标網絡和掩碼這一字段,這一字段裡面講了路由比對和最長掩碼比對這兩個重要的知識點。在下一跳接口和下一跳ip這裡知識點比較重要,強調了各種路由書寫方式導緻的不同後果,既然講到下一跳接口,又擴充到路由黑洞,通過路由黑洞又可以擴充出路由彙總、nat這些知識點;

優先級和路徑成本也是相對簡單的,講了路由是如何比對的,當遇到不同的情況路由器是如何處理的,以及利用優先級可以做浮動路由,通過浮動路由雙引出了企業雙鍊路負載均衡;最後通過靜态路由的缺點又引出了nqa和bfd;

标記位,通過标記引出了fib和路由表,其實fib是可以與路由書寫那個小節産生聯系,可以讓我們更好的了解;

另外,作者這一章節還”抖了兩個激靈“,一個是在路由書寫時如果書寫錯誤會導緻意外,但通過一種手段(arp代理)就能彌補這個錯誤;另一個是在路由彙總這一個小節當中,如果真的彙總錯誤之後,我們還可以通過路由黑洞加入彌補。

作者在最後的環節出了幾道題目,有幾道題目真的有點意思,我雖然可以答出一些答案,但是無法将這個問題回答完美,比如這個問題有三個答案,我能回答出來兩個,但也從側面反應出我對知識的整合是不足的。

第一層:路由基礎

什麼是路由?

路由就是轉發,什麼轉發呢?就是根據目标ip查找路由表進行轉發。

路由表裡面有什麼内容?

協定、目标ip和掩碼、下一步接口和ip、優先級和路徑成本、标記

路由條目當中的協定是什麼意思?

代表着通過什麼途徑得到這個路由協定,比如靜态or動态orospf

優先級是什麼意思?越大越好還是越小越好?

優先級就是路由比對時候用到的優先級,路由協定有很多,有的優秀,有的不那麼優秀,就是通過優先級來差別,越是優秀的路由協定優先級越小,越小也就意味着越高,使用的幾率就會越大。

優先級什麼時候會起作用?

當通過不同的路由協定學到去往同一個目标網段的路由時,優先小的優先使用。

說一下直連、靜态、rip、ospf、mpls、isis、bgp各自的優先級是多少

直連是0,靜态是60,ospf内部路由是比較優秀的,僅次于直連是10,isis又次于ospf是15.

rip是100,ospf_ase和nssa都是150,bgp的ibgp和ebgp都是255.

直連路由被加載到路由表的前提是什麼?

實體接口狀态和協定狀态都必須是up的才可以。

cost、路徑成本是什麼意思?

就是開銷的意思,就是從源到目标要用多少開銷。

cost開銷的意義

優先級是規定死的,不能更改的,但是開銷是可以更改的,對于從同一種路由協定學到的路由條目,這時候無法通過比較優先級了,因為優先級是一樣的,這時候就得開銷出馬了。

像是rip、ospf的開銷都得是根據實際情況來的,靜态和直連的的開銷預設都是0.

第二層:靜态路由

靜态路由其實很簡單,隻要配置的時候稍微注意一點,還要掌握與其關聯的三個東西:浮動路由、bfd、nqa

在配置靜态路由時,什麼時候必須指定下一跳ip?

廣播多路通路(bma)環境當中,比如以太網環境當中,有很多主機,如果僅指定下一跳接口,裝置不知道将資料包交給誰。

在配置靜态路由時,什麼時候不需要指定下一跳ip?

在點到點的環境當中,這個時候隻需要指定出接口也可以,因為這個接口隻對應一台主機,不會出錯。

如果一個路由條目的優先級一樣、開銷也一樣,比如兩條靜态路由優先級都是60,開銷也一樣,怎麼選擇呢?

面對這種一模一樣的環境,路由器也會傻眼了,會形成負載分擔的結果;

如果想破壞這種負載分擔的場景,變成一主一備怎麼搞呢?

其實很簡單了,将其中的一條路由的優先級更大一點,讓其中一條勝出就可以了,當主的挂了,備的會自動頂上。

什麼時候會用到上述這種機制?

比如說有兩個公網出口的時候,這樣的備份就會好很多;

靜态路由與浮動路由之間有什麼關系?

當有兩種等價的靜态路由條目,優先級和開銷都一樣時,會用到修改開銷的方式隐藏一條路由,等到正在用的那一條消失後,自動浮出來,這就是兩者之間關系

直連和靜态路由什麼時候會消失?

當所指向的接口斷電之後,路由就會消失。

這種斷電消失的機制有什麼問題?

如果我在兩個路由器之間加一個交換機,斷交換機一個接口,另一個接口所接入的路由器因為感覺到路由器的接口還有電,是以路由并不會消失,可是路明明已經斷了。

怎樣避免這種問題?

bfd和nqa

bfd與nqa與調用它們的路由條目是什麼關系?

是串連關系,我行你才行,我不行你也不行,bfd和nqa行,調用它們的路由條目才生效,如果bfd和nqa不行,靜态路由條目也會立馬失效;

bfd裡面最重要的關鍵詞是什麼?解釋一個這個關鍵詞的意思?

bfd(bidirectional forwarding detection雙向轉發檢測),最重要的關鍵詞是“雙向”,bfd其實有點意思,兩端都需要配置,兩端互相做為用戶端和服務端,平時有規律互動心跳封包,任何一端隻要發現對端不通了,就會通知bfd關聯的的靜态路由消失。

nqa是什麼?

nqa(network quality analysis網絡品質分析),這個naq有點zabbix的意思,能做的事情很多,可以調用很多的探測工具,調用icmp、dns、http都是很正常的,我們可以讓其調用icmp,做一個單向的探測,模拟zabbix的簡單探測,不需要被監控端做什麼。

同樣的,需要關聯靜态路由,與靜态路由關系依然是串行的關系,一旦naq探測失敗了,就會讓靜态路由也失效。

bfd與nqa有什麼差別?

bfd是雙向的,而nqa可以是單向

路由下一跳僅指下一跳接口

我們我們故意在一個廣播多路通路環境當中指路由時不指下一跳ip,就要指一個接口,這意味着什麼?為什麼要指下一跳時盡量不要指接口?

因為一旦指了接口,就會讓路由器偷懶不再計算,認為目标網段就是自己的直連接配接口,去往目标網段的時候就直接發arp廣播!

還有一種情況,下一跳ip和接口都指了,接口指對了,但下一跳ip指錯了,這時候資料是怎樣轉發的?

在這種情況下,下一跳接口和下一跳ip就是關聯關系,路由器在收到目标網段的資料時,會通過下一跳接口arp廣播詢問下一跳ip的mac,如果詢問不到,那就完蛋了。

以後兩種情況下,怎樣通呢?

在對端接口上開啟了arp代理,這樣如果對端裝置擁有目标網段的路由時,就會用自己的mac位址進行回應。

存在僅指ip

把ip指對了,就特别正常,下一跳掊會自動被上,如果把ip指錯了,這時候就又分為兩種情況。

如果下一跳ip是可以根據已知路由推算出來的,那這時候路由器會糾正下一跳,糾正之後會有fib表當中展現,如果是靜态這麼寫的:”告訴a裝置去往d需要通過c的轉發“,經過查詢路由表發現去往c需要經過b,這時候a裝置會自動将糾正将去往d的流量交由b來轉發,下一跳是b的ip,通過b的ip再來計算下一跳接口。

如果從已知的路由條目當中無法找到去往目标路由的下一跳時,将不會在路由表當中展現出來

如果我們即指了下一跳接口,又指了下一跳ip,對路由來着意味着什麼?

如果兩者都皆有,路由器會直接加載,路由器會認為去往目标網段交給此下一跳ip,會在發送者arp廣播下一跳的mac,如果下一跳能收到就還正常,如果因為寫錯了,就不可到達了,如果通過一些小手段,比如arp代理之類的也能解決。

第三層:動态路由

距離矢量和鍊路狀态路由最關鍵的差別

一個通告的是鍊路狀态,另一個通告的是路由資訊,這就導緻一個現象,那就是距離矢量路由協定不知道整個網絡的拓撲,它隻知道去哪裡該怎麼走、有多遠(跳數)

距離矢量路由協定是以什麼做為路徑成本?距離矢量将直連網段的路徑成本做為多少?通告時怎麼做?

跳數,距離矢量路由協定将直接路由的路徑成本做為0,但通告給其它路由器的時候要加1。

最長掩碼比對

路由條目的最長比對是怎麼比對的?

所謂的路由比對最長原則就是拿目标ip與路由條目的掩碼做與運算得出目标位址的網絡位,與路由條目的網絡位做對比,拿哪一個路由條目能比對的上,如果網絡位一樣,就按照路由條目的指向進行轉發。

什麼情況下會比對到兩條路由呢?

比如目标ip是172.16.2.1,但路由器卻有兩條這樣的路由:

按照最長比對原則,這兩條都能比對的上,但用的時候會用條目2,因為條目1前16位和目标ip是網絡位是一樣的,而條目2,前24位和目标ip的網絡位是一樣的,24比16要長,是以要用條目2,這就是最長比對原則。

還可以利用最長比對原則來做什麼?

利用最長比對原則其實是可以影響對端路由器的,比如兩個路由器都運作rip,那宣告的時候可以通過改變宣告掩碼的長度影響對端路由器的轉發。

如果兩條帶寬用的不是動态的rip,而是靜态的話,那用什麼辦法呢?

用優先級做浮動路由就可以

路由彙總

路由彙總的子網路遮罩是向哪個方向移動的?

是向左邊移動的

什麼情況下會引發路由環路的情況發生?

比如r1連接配接三個網段192.168.1.0、192.168.2.0、192.168.3.0,預設網關指向了172.16.0.1這個r2路由器,而r2路由做了錯誤的彙總,将192.168.0.0/16的下一跳全都回指向了r1路由器,這種情況下,如果有黑客登入到了r1路由器發送目标是192.168.3.x的垃圾封包,這時候r1指向r2,r2又指向了r1,會不斷的循環。

如果真的發生上述情況,應該怎麼避免呢?

通過路由黑洞,在r1上配置ip route-s 192.168.0.0/22 null0,這樣r1再遇到發往192.168.3.x的封包時會直接丢棄

上述黑洞會不會誤傷?為什麼?

還是因為最長比對的原則

在配置nat的什麼情況下,會用到路由黑洞?

fib

路由表和fib表的差別?

路由表和fib的資訊是同步的,但是fib表人更難以了解,fib的轉發速度更快,用的是特殊的存儲方式,猜是一種鍵值存儲,讀取速度非常快,fib更真。

路由表當中的rd和d是什麼意思?

d是已經下載下傳到fib表的意思,r是遞歸的意思。

什麼時候會出現r?

出現r意味着路由表和fib可能下一跳ip會不一緻。

在這裡可以與配置靜态路由時的注意事項關聯一下

配置了靜态路由但是卻沒有生效,三種原因

接口down

去往同樣目标網段的另一條路由優先級更高

下一跳ip沒有遞歸查詢成功

說出兩種路由負載分擔的方法

通過優先級做浮動路由

通過最長掩碼的規則影響對端路由