靜態路由是指由用戶或網絡管理員手工配置的路由信息。當網絡的拓撲結構或鏈路的狀態發生變化時,網絡管理員需要手工去修改路由表中相關的靜態路由信息。靜態路由信息在缺省情況下是私有的,不會傳遞給其他的路由器。當然,網管員也可以通過對路由器進行設置使之成為共享的。靜態路由一般適用於比較簡單的網絡環境,在這樣的環境中,網絡管理員易於清楚地瞭解網絡的拓撲結構,便於設置正確的路由信息。
本文章以華為設備為主。
如圖所示,如果R2需要訪問R3就需要通過路由去尋址訪問。
(查看路由表命令:display ip routing-table)
正常情況下路由器配置好IP地址之後都會自動生成“直連路由”如下圖。
在R1無論是訪問192.168.20.2 還是 192.168.10 2 都能夠正常訪問的,因為R1與R2、R3都是直連的,系統會自動生成直連路由。(Direct為直連路由)
再來看看R2的路由表
由於R2並不是與R3上直連所有不會生成直連路由,如需要訪問R3則需要手動添加靜態路由,當然也可以使用動態路由,不過動態路由不在今天的討論範圍內。
命令:
system-view
[R2]ip route-static 192.168.10.0 255.255.255.0 192.168.20.1
添加完畢之後再看看R2的路由表,多了一條 192.168.10.0/24 的路由。
分析以下這條命令
ip route-static 192.168.10.0 255.255.255.0 192.168.20.1
Ip route-static 這是靜態路由的意思
192.168.10.0 255.255.255.0這是目的地址,就是你需要訪問到的IP地址段
192.168.20.1 這是下一跳(NextHop)
靜態路由最核心的部分就是“下一跳”
例子:當R2收到需要發往R3的報文,R2就會檢查報文中的目的地址,發現與192.168.10.0/24的靜態路由相符合,那麼R2就會把這個報文發往 192.168.20.1那裡去。
怎樣判定“下一跳”?
與當前設備有物理連接且距離目的地址最近的三層設備的IP地址。
如本例子一樣,R2到R3的靜態路由下一跳為192.168.20.1(當然你也可以把下一跳寫到192.168.10.1 或者 192.168.20.2 但這樣寫的前提條件是必須有有路由能夠到達這兩個地址段,但不建議這樣寫,這樣寫的效率不高,因為這樣寫的話設備要檢查更多次路由表)
靜態路由需要配置兩部分,有去有回
在R2配置了 ip route-static 192.168.10.0 255.255.255.0 192.168.20.1
就必須在R3配置 ip route-static 192.168.20.0 255.255.255.0 192.168.10.1
這樣一條回程路由,不配置的話,R3上也沒有192.168.20.0 的路由表 就算能收到來自192.168.20.0的報文也無法進行轉發,最終只能丟棄。
擴展:默認路由
ip route-static 0.0.0.0 0.0.0.0 192.168.20.1
這條路由一般寫在網絡出口設備上
意思就是把去往所有目的地址的報文都發往192.168.20.1去