網(wǎng)絡中數(shù)據(jù)包及路由表是怎么轉(zhuǎn)發(fā)數(shù)據(jù)的,一分鐘了解下
一、路由表
當frame到達路由器的接口以后,路由器檢查frame中的目標地址,如果目標地址為路由器的接口的地址或廣播地址的時候,路由器把、packet從frame中剝離出來,傳遞給Network Layer,然后packet中的目標地址將被檢查,接下來還要檢查protocol字段,最后再發(fā)送給合適的進程。如果packet是可路由的,路由器會查找自己的路由表尋找相應的路由條目。
1. 路由表中的兩個重要要素:
- 目標地址,這個地址是路由器能夠到達的地址,
- 到達目標地址的指向,這個指向也就是所謂的next hop(下一跳)
2. 路由器在地址匹配過程中按最大程度進行匹配,地址按精確程度遞減的排列
- 主機地址
- 子網(wǎng)
- 匯總(summary)地址
- 主網(wǎng)絡號
- 超網(wǎng)(supernet)
- 默認(default)地址
如果在地址匹配過程中,不能和路由表中任何條目所匹配,packet將被丟棄。
【一個名為 Destination Unreachable(目標不可達)的ICMP信息將發(fā)回給源地址】
二、靜態(tài)路由配置
- 為每條鏈路確定地址(包括子網(wǎng)地址和網(wǎng)絡地址)
- 為每個路由器,標識非直連的鏈路地址
- 為每個路由器寫出未直連的地址的路由語句(寫出直連地址的語句是沒必要的)
- Piglet(config)#ip route 192.168.1.0 255.255.255.224 192.168.1.193
- Piglet(config)#ip route 192.168.1.64 255.255.255.224 192.168.1.193
- Piglet(config)#ip route 10.4.6.0 255.255.255.0 192.168.1.193
- Piglet(config)#ip route 10.4.7.0 255.255.255.0 192.168.1.193
設置一條管理距離稍大于正常使用的一條靜態(tài)路由,如下,將一條路由的管理距離設置為 50,這樣正常使用的這條鏈路 down 掉后,被設置為浮動路由的備份鏈路啟用
- Piglet(config)#ip route 10.4.7.0 255.255.255.0 192.168.1.193 50
均衡負載可以是基于目標地址或者是基于每個packet的所謂機遇目標地址的均衡負載,是說假如有兩條到達目標地址的路徑,那么第一個packet將通過第一條鏈路到達第一個目標設備,第二個packet將通過第二條鏈路到達第二個目標設備,第三個packet又將通過第一條鏈路到達第三個目標設備等等,以次類推.當 Cisco 路由器工作在默認的交換模式,Fast Switching(快速交換)模式下,就使用這種類型的均衡負載
4. Fast Switching 的工作原理:
當路由器對第一個 packet 進行發(fā)往目標地址的處理的時候,先查看路由表和選擇出口接口,然后獲取組成frame的信息(比如ARP表的查詢)并進行封裝,然后傳輸。之前獲取的這些路由和數(shù)據(jù)鏈路信息將被保存在快速交換的 cache 中。
接下來,當有要到達和第一個包相同的目標地址的包的時候,就可以不進行路由表和 ARP 表的查詢,直接對 packet 進行交換。
快速交換降低了 CPU 的占用和處理時間,并意味著去往某個目標地址的 packet 都從相同的路由器接口被路由出去。當有到達同一網(wǎng)絡不同主機的 packet,路由器可能會把這些 packet 通過另外一條鏈路進行路由。
因此,路由器能做的最好的就是給予目標地址的均衡負載所謂基于基于 packet 的均衡負載,是說假如有 2 條到達目標地址的路徑,那么第一個 packet 將通過第一條鏈路到達目標設備,第二個packet將通過第二條鏈路到達目標設備,第三個packet又將通過第一條鏈路到達目標設備等等,以次類推(這里考慮的是等價的均衡負載)。