數據的負載分擔方式有很多種,可以基于鏈路的負載,也可以使用路由來實現負載。其中靜態路由是最為簡單,也最常用的一種方式。
負載分擔又分為兩種:
1.逐流負載
2.逐包負載
逐流負載是按照五元組來確定一條數據流,一條數據流會按照一條鏈路來轉發,來回路徑一致。如圖:client1訪問client2時的數據走的是R1-R3之間的鏈路。
逐包負載是按照每個數據包來轉發,一條流有很多包,每個包都會分別跑在不通的鏈路上最終到達目的地。如圖:client1訪問client2時的數據包可能兩個走R1-R3到之間的鏈路,三個走R1-R2之間的鏈路。
上述兩種方式使用抓包的形式就可以看得很清楚。
但是在實驗過程中遇到了一個比較奇怪的問題:
當三個路由器之間的靜態路由成環的時候,改為逐包負載的分擔方式竟然可以打破環路,正常訪問,簡直 太 狗血了。
至于這個問題到底是模擬器BUG,還是其他原因還未核實,有興趣的可以模擬一把看一下。
靜態路由環路的關鍵配置如下:
R1:
GigabitEthernet0/0/0 10.0.12.1/24 up up
GigabitEthernet0/0/1 10.0.13.1/24 up up
ip route-static 0.0.0.0 0.0.0.0 10.0.12.2
ip route-static 0.0.0.0 0.0.0.0 10.0.13.3
R2:
GigabitEthernet0/0/0 10.0.23.2/24 up up
GigabitEthernet0/0/1 10.0.12.2/24 up up
ip route-static 0.0.0.0 0.0.0.0 10.0.12.1
ip route-static 0.0.0.0 0.0.0.0 10.0.23.3
R3:
GigabitEthernet0/0/0 10.0.23.3/24 up up
GigabitEthernet0/0/1 10.0.13.3/24 up up
ip route-static 0.0.0.0 0.0.0.0 10.0.23.2
ip route-static 0.0.0.0 0.0.0.0 10.0.13.1