作者wst2080 (有寶妮小天使真棒)
看板Network
標題Re: [請益] Routing Table 的 Next hop
時間Thu Jun 17 19:41:34 2010
原文我就吃光光好了!!! XDDD
回歸正題~~~
假設我的環境的Router介面為 (我簡單用cisco native IOS CLI 介面來舉例)
show ip route
R 192.168.1.0/28 [120/2] via 192.168.20.2, xxx , Serial 0/1
R 192.168.1.0/24 [120/2] via 192.168.100.200, xxx , Fastethernet 0/0
R 192.168.2.0/24 [120/2] via 192.168.200.200, xxx , Fastethernet 0/1
R 192.168.3.0/24 [120/3] via 192.168.200.200, xxx , Fastethernet 0/1
C 192.168.1.1/32 is directly connected, Loopback0
C 192.168.20.0/24 is directly connected, Serial 0/1
C 192.168.100.0/24 is directly connected, FastEthernet 0/0
C 192.168.200.0/24 is directly connected, FastEthernet 0/1
假設路由器收到封包而要轉的目的地為 192.168.1.1
這時候比對路由表~ 就會發現有一筆相符 192.168.1.1/32 然後就會丟給 loopback0
這個介面
再來假設
若路由器收到封包而要轉的目的地為 192.168.1.2
這時候比對路由表~ 就會發現有一筆相符 192.168.1.0/28 然後就會丟給 Serial0/1
再來假設
若路由器收到封包而要轉的目的地為 192.168.1.200
這時候比對路由表~ 就會發現有一筆相符 192.168.1.0/24 然後就會丟給 Fa0/0
再來假設
若路由器收到封包而要轉的目的地為 192.168.2.2
這時候比對路由表~ 就會發現有一筆相符 192.168.2.0/24 然後就會丟給 Fa0/1
所以舉一反三,就應該可以知道 192.168.3.23 會轉給 Fa0/1
那假設收到要轉往 172.16.33.22 封包要轉往的目的地呢???
一樣~ 路由器都是看路由表來轉送封包~~~ 根據比對~ 沒有相符~ 所以封包就會丟掉!!!
若想把封包轉往更大的路由器來幫忙轉送呢???
其實這時候就可以設定預設路由(default route)
Router(config)#ip route 0.0.0.0 0.0.0.0 192.168.200.200
Router(config)#do show ip route
R 192.168.1.0/28 [120/2] via 192.168.20.2, xxx , Serial 0/1
R 192.168.1.0/24 [120/2] via 192.168.100.200, xxx , Fastethernet 0/0
R 192.168.2.0/24 [120/2] via 192.168.200.200, xxx , Fastethernet 0/1
R 192.168.3.0/24 [120/3] via 192.168.200.200, xxx , Fastethernet 0/1
C 192.168.1.1/32 is directly connected, Loopback0
C 192.168.20.0/24 is directly connected, Serial 0/1
C 192.168.100.0/24 is directly connected, FastEthernet 0/0
C 192.168.200.0/24 is directly connected, FastEthernet 0/1
S* 0.0.0.0/0 [1/0] via 192.168.200.250
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^這邊就會多一條預設路由...
所以再次收到 172.16.33.22 比對路由表的規則的時候~ 就會比對不到之後
通通都會丟給 192.168.200.250(對方路由器) 來幫忙路由~
若這樣的設定, 路由器再收到目標為 10.0.0.100 呢?
其實是一樣的 依序比對~ 比對下來的結果~ 還是一樣!!! 會丟給預設路由的....
路由表的比對順序會先從最接近的開始比對
意思是說若是相同的網段(舉上面的案例來說)
/32 /28 /24
若以 /32 完全符合 就會丟給 /32 這個介面
若先 /28 符合的話 就會丟給 /28 這個介面
若在 /24 符合的話 就會丟給 /24 這個介面
(是以"精準度"來進行傳遞,越接近者則會先以該項路由進行傳遞)
192.168.1.1 由於路由表上已經有完全相符的路由 所以會丟給lo0這個介面
192.168.1.2 由於路由表上有 192.168.1.0/28 與 /24
這時候就會先丟給 192.168.1.0/28 ~
因為 192.168.1.2 符合 /28 的規則~
(這時候若還不會計算 192.168.1.0/28 的網段範圍的話,那真的該打屁屁)
所以 192.168.1.0/24 這個並不會優先採用傳遞~ 而是以/28來進行
至於 192.168.1.200 由於這個已經超過 192.168.1.0/28的範圍
所以在往下比對發現 192.168.1.0/24 相符~ 所以才會丟往這個介面...
以此類推~~~
若路由表上有 預設路由(default route) 的話,那麼就會將以上比對不到的封包
通通往這個預設路由進行傳遞...
希望以上說的~ 能夠讓你懂!!!
※ 編輯: wst2080 來自: 122.116.248.253 (06/17 19:55)
推 FT6034:感謝!瞭解 預設路由(default route) 的意思了 06/18 08:12
推 zaknafein:推推推 06/18 23:03
推 stator:謝謝w大 06/19 16:24