close
linux路由子系統是學習系統網絡技術的基礎之一,但之前這一塊了解較少,嘗試帶著問題去了解路由子系統。先了解大致原理,再根據實際需求去閱讀文檔和源碼。
先需要了解基本概念:
(1)路由表
可以這樣來理解路由表: 指定發送網絡包時需要遵守的轉發路徑。
查看路由表的方法:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.21.48.0 0.0.0.0 255.255.248.0 U 0 0 0 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1008 0 0 bond0
0.0.0.0 172.21.55.254 0.0.0.0 UG 0 0 0 bond0
Destination:目的IP
Gateway:網關
Genmask:目標網絡的子網掩碼
Flags: 路由標誌,具體含義請man
Metric: 目的IP的跳數
Ref: 路由的應用計數
Use: 路由查詢次數
Iface: 包發送接口
(2)路由cache
路由cache的作用:
當數據包進入網絡層後,根據目的地址是否是本機決定是接收、轉發還是丟棄數據包。如果是轉發的話,需要從哪個接口將包轉發出去需要查找路由表。為了提高路由表的查詢效率,將已經通過路由表查詢得到的結果緩存起來,後續查詢時先查找路由cache,如果cache命中,路由查找工作就完成了,否則,再進入查找路由表的環節。
查看路由cache的方法:
方法1) netstat -rn --cache
Kernel IP routing cache
Source Destination Gateway Flags MSS Window irtt Iface
172.24.102.210 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.24.102.210 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 10.242.252.21 172.21.55.254 1500 0 0 bond0
172.23.197.6 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 10.207.0.34 172.21.55.254 1500 0 0 bond0
127.0.0.1 127.0.0.1 127.0.0.1 l 16436 0 0 lo
172.21.48.6 10.204.98.36 172.21.55.254 1500 0 0 bond0
10.207.0.13 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 10.204.98.34 172.21.55.254 1500 0 0 bond0
172.18.252.2 172.21.48.6 172.21.48.6 l 0 0 0 lo
127.0.0.1 127.0.0.1 127.0.0.1 l 16436 0 0 lo
172.21.0.8 172.21.48.6 172.21.48.6 l 0 0 0 lo
10.249.252.42 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.24.6.17 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.21.0.7 172.21.55.254 1500 0 0 bond0
172.21.48.6 10.207.0.13 172.21.55.254 1500 0 0 bond0
172.21.48.6 172.18.252.2 172.21.55.254 1500 0 0 bond0
172.23.197.2 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.21.0.8 172.21.55.254 1500 0 0 bond0
172.23.121.10 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.23.12.32 172.21.55.254 1500 0 0 bond0
10.204.98.34 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.21.0.19 172.21.55.254 1500 0 0 bond0
172.21.48.6 172.23.121.10 172.21.55.254 1500 0 0 bond0
10.207.0.34 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.24.102.210 172.21.55.254 1500 0 0 bond0
172.21.48.6 172.24.102.210 172.21.55.254 1500 0 0 bond0
172.21.48.6 172.23.197.6 172.21.55.254 1500 0 0 bond0
172.21.0.19 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.23.197.7 172.21.55.254 1500 0 0 bond0
172.21.48.200 172.21.55.255 172.21.55.255 ibl 0 0 0 lo
172.23.197.7 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 10.249.252.42 172.21.55.254 1500 0 0 bond0
10.242.252.21 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.0.7 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.24.6.17 172.21.55.254 1500 0 0 bond0
172.21.48.6 172.23.12.32 172.21.55.254 1500 0 0 bond0
方法2) route -Cn
Kernel IP routing cache
Source Destination Gateway Flags Metric Ref Use Iface
172.21.48.6 172.23.121.10 172.21.55.254 0 48 47 bond0
10.242.252.8 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 10.207.0.13 172.21.55.254 0 0 18 bond0
172.21.0.8 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.24.6.17 172.21.48.6 172.21.48.6 l 0 0 0 lo
172.21.48.6 172.24.6.17 172.21.55.254 0 0 0 bond0
10.207.0.34 172.21.48.6 172.21.48.6 l 0 0 12 lo
172.21.48.6 172.23.197.7 172.21.55.254 0 0 14 bond0
172.23.121.10 172.21.48.6 172.21.48.6 l 0 0 235803 lo
172.21.48.6 172.21.0.254 172.21.55.254 0 0 45 bond0
172.23.197.6 172.21.48.6 172.21.48.6 l 0 0 26 lo
172.21.48.6 172.23.197.2 172.21.55.254 0 1 0 bond0
172.21.48.6 172.24.102.210 172.21.55.254 0 1 0 bond0
172.21.48.6 172.23.12.32 172.21.55.254 0 0 3 bond0
127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 77 lo
172.21.48.6 172.21.0.8 172.21.55.254 0 0 0 bond0
172.21.48.6 172.21.0.254 172.21.55.254 0 0 45 bond0
172.21.48.6 10.242.252.8 172.21.55.254 0 0 0 bond0
172.24.102.210 172.21.48.6 172.21.48.6 l 0 0 479 lo
127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 2 lo
172.21.48.6 172.23.197.6 172.21.55.254 0 1 0 bond0
10.207.0.13 172.21.48.6 172.21.48.6 l 0 0 26 lo
172.23.197.2 172.21.48.6 172.21.48.6 l 0 0 2 lo
172.21.48.200 172.21.55.255 172.21.55.255 ibl 0 0 0 lo
172.21.0.19 172.21.48.6 172.21.48.6 l 0 0 39 lo
172.21.48.6 172.21.0.19 172.21.55.254 0 1 12 bond0
172.21.48.6 172.23.12.32 172.21.55.254 0 0 1 bond0
172.23.197.7 172.21.48.6 172.21.48.6 l 0 0 14 lo
172.21.0.254 172.21.48.6 172.21.48.6 l 0 0 45 lo
清空路由cache的方法:
ip -s -s ro flush cache
(3)策略路由(Policy-based routing)
一句話描述: 策略路由為管理員提供了比只根據目的IP設置路由策略更為強大和靈活的路由策略設置方法。
查看策略路由的方法:
ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
選擇一個路由表進行查看:
ip route list table 0
172.21.48.0/21 dev bond0 proto kernel scope link src 172.21.48.6
169.254.0.0/16 dev bond0 scope link metric 1008
default via 172.21.55.254 dev bond0
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 172.21.55.255 dev bond0 table local proto kernel scope link src 172.21.48.6
broadcast 172.21.48.0 dev bond0 table local proto kernel scope link src 172.21.48.6
local 172.21.48.6 dev bond0 table local proto kernel scope host src 172.21.48.6
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
全站熱搜