Linux系統下通過策略路由實現多預設路由

2021-09-16 14:23:10 字數 1650 閱讀 5000

現需要同時存在兩條預設路由。資料報通過何種預設路由,由程式指定(或根據規則)。資料報通過特定的路由規則**到對應的路由器。

在下文中,我們以如下的拓撲為例,介紹如何通過策略路由來實現上述需求。

我們要實現的選路策略:

通過多張路由表和策略路由實現上述的配置需求。

1.建立路由表

# echo "10 eth1table" >> /etc/iproute2/rt_tables

# echo "20 eth2table" >> /etc/iproute2/rt_tables

2.配置路由表,新增預設路由

# 本機與預設閘道器的路由,否則會顯示路由不可達

# ip route add 192.168.1.0/24 dev eth1 table eth1table

# ip route add 192.168.2.0/24 dev eth2 table eth2table

# 預設閘道器

# ip route add default via 192.168.1.254 table eth1table

# ip route add default via 192.168.2.254 table eth2table

3.配置策略路由

# ip rule add from 192.168.1.1/32 table eth1table

# ip rule add from 192.168.2.1/32 table eth2table

為了方便,通過靜態arp配置,模擬下一跳路由器。

# arp -s 192.168.1.254 aa:bb:cc:dd:ee:ff

# arp -s 192.168.2.254 11:22:33:44:55:66

利用nc工具傳送udp報文,設定源ip位址為192.168.1.1,即

# nc -s 192.168.1.1 -u 202.202.202.202
在網絡卡p7p1上執行tcpdump命令捕包。

# tcpdump -i p7p1 -e
結果:

15:39:36.225020 e8:61:1f:18:ef:24 (oui unknown) > aa:bb:cc:dd:ee:ff (oui unknown), ethertype ipv4 (0x0800),

length 51: 192.168.1.1.46399 > 202.202.202.202.31337: udp, length 9

類似地,設定源ip位址為192.168.2.1,通過tcpdump在p7p2上捕獲得

15:42:11.157252 e8:61:1f:18:ef:25 (oui unknown) > 11:22:33:44:55:66 (oui unknown), ethertype ipv4 (0x0800), 

length 48: 192.168.2.1.39107 > 202.202.202.202.31337: udp, length 6

[1]

so_bindtodevice是socket(7)手冊中提供的方法,與本法有一些區別,尚待查明。

Linux 路由 策略路由

目錄二 ip策略 刪除ip策略規則 三 永久生效,寫入配置檔案 etc sysconfig network scripts rule ethx 注意 本文中使用 隔開的命令等價 從linux 2.2開始,核心把路由歸納到許多路由表中,這些表都進行了編號,編號數字的範圍是1到255。可以在路由表配置檔...

Linux策略路由

前面講的路由規則都是基於目標ip位址為匹配依據設定的路由規則,策略路由則更加靈活,它可以根據多個引數來配置路由。假設如下的使用場景 在192.168.10.0子網中,除了主機192.168.10.123要訪問網際網路時是通過電信運營商 192.168.20.0 24 之外,其他主機都使用移動運營商 ...

Linux策略路由

linux策略路由 策略性路由 策略性是指對於ip包的路由是以網路管理員根據需要定下的一些策略為主要依據進行路由的。例如我們可以有這樣的策略 所有來直自網a的包,選擇x路徑 其他選擇y路徑 或者是 所有tos為a的包選擇路徑f 其他選者路徑k cisco 的網路作業系統 cisco ios 從11....