作者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)
1F:推 FT6034:感谢!了解 预设路由(default route) 的意思了 06/18 08:12
2F:推 zaknafein:推推推 06/18 23:03
3F:推 stator:谢谢w大 06/19 16:24