ip route / ip rule /iptables 配置策略路由
Linux 使用 ip route , ip rule , iptables 配置策略路由
要求192.168.0.100以內(nèi)的使用 10.0.0.1 網(wǎng)關(guān)上網(wǎng),其他IP使用 20.0.0.1 上網(wǎng)。
首先要在網(wǎng)關(guān)服務(wù)器上添加一個(gè)默認(rèn)路由,當(dāng)然這個(gè)指向是絕大多數(shù)的IP的出口網(wǎng)關(guān)。
ip route add default gw 20.0.0.1之后通過 ip route 添加一個(gè)路由表
ip route add table 3 via 10.0.0.1 dev ethX (ethx是10.0.0.1所在的網(wǎng)卡,3 是路由表的編號(hào))之后添加 ip rule 規(guī)則
ip rule add fwmark 3 table 3 (fwmark 3是標(biāo)記,table 3 是路由表3 上邊。 意思就是凡事標(biāo)記了 3 的數(shù)據(jù)使用table3 路由表)之后使用iptables給相應(yīng)的數(shù)據(jù)打上標(biāo)記
iptables -A PREROUTING -t mangle -i eth0 -s 192.168.0.1 -192.168.0.100 -j MARK --set-mark 3因?yàn)閙angle的處理是優(yōu)先于 nat 和fiter表的,所以相依數(shù)據(jù)包到達(dá)之后先打上標(biāo)記,之后在通過ip rule規(guī)則,對(duì)應(yīng)的數(shù)據(jù)包使用相應(yīng)的路由表進(jìn)行路由,最后讀取路由表信息,將數(shù)據(jù)包送出網(wǎng)關(guān)。
ip rule:
進(jìn)行路由時(shí),根據(jù)路由規(guī)則來進(jìn)行匹配,按優(yōu)先級(jí)(pref)從低到高匹配,直到找到合適的規(guī)則.所以在應(yīng)用中配置默認(rèn)路由是必要的
路由規(guī)則的添加
ip rule add from 192.168.1.10/32 table 1 pref 100如果pref值不指定,則將在已有規(guī)則最小序號(hào)前插入
PS: 創(chuàng)建完路由規(guī)則若需立即生效須執(zhí)行
ip route flush cacheFrom -- 源地址To -- 目的地址(這里是選擇規(guī)則時(shí)使用,查找路由表時(shí)也使用)Tos -- IP包頭的TOS(type of sevice)域Linux高級(jí)路由-Dev -- 物理接口Fwmark -- iptables標(biāo)簽采取的動(dòng)作除了指定路由表外,還可以指定下面的動(dòng)作:Table 指明所使用的表Nat 透明網(wǎng)關(guān)Prohibit 丟棄該包,并發(fā)送 COMM.ADM.PROHIITED的ICMP信息 Reject 單純丟棄該包Unreachable丟棄該包, 并發(fā)送 NET UNREACHABLE的ICMP信息Usage: ip rule [ list | add | del ]SELECTOR ACTIONSELECTOR := [ from PREFIX ] [ toPREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]ACTION := [ table TABLE_ID ] [ natADDRESS ][ prohibit | reject | unreachable ][ flowid CLASSID ]TABLE_ID := [ local | main | default| new | NUMBER ]詳解看http://blog.csdn.net/scdxmoe/article/details/38661457
linux策略路由,路由策略(高級(jí)路由設(shè)置,多出口)
FROM http://rfyiamcool.blog.51cto.com/1030776/768562
功能說明:
由Linux實(shí)現(xiàn)流量分割,
1, 到202.96.209.133的數(shù)據(jù)從Linux路由器的eth2到路由器A,再到202.96.209.133。 2, 到Internet其他地方的數(shù)據(jù)從Linux路由器的eth1到路由器B,再到Internet。實(shí)現(xiàn)方法:
打開Linux的路由功能:
echo 1 >/proc/sys/net/ipv4/ip_forward首先添加一條規(guī)則,指定從172.16.16.2來的數(shù)據(jù)查找路由表5:
ip ru add from 172.16.16.2 lookup 51,實(shí)現(xiàn)第一個(gè)功能
(1),在路由表5中添加一條路由,到202.96.209.133的數(shù)據(jù)經(jīng)過192.168.1.1:
# ip ro add 202.96.209.133 via 192.168.1.1 table 5(2),這樣就完成了路由的設(shè)置,因?yàn)?72.16.16.2是私有地址,所以在Linux路由器的出口eth2處應(yīng)該對(duì)其進(jìn)行NAT的設(shè)置,如下:
# iptables -t nat -A POSTROUTING -s 172.16.16.2 -d 202.96.209.133 -j SNAT --to 192.168.1.3(3),刷新路由緩存:
# ip ro flush cache2, 實(shí)現(xiàn)第二個(gè)功能(在第一個(gè)的基礎(chǔ)上)
(1),在路由表5中添加默認(rèn)路由:
# ip ro add default via 10.10.10.2 table 5(2),在Linux路由器的出口eth1處進(jìn)行NAT設(shè)置:
# iptables -t nat -A POSTROUTING -s 172.16.16.2 -j SNAT --to 10.10.10.1(3),刷新路由緩存:
# ip ro flush cache注意:如果路由緩存不刷新的話,路由命令不能馬上生效!
腳本如下:
#!/bin/sh echo 1 >/proc/sys/net/ipv4/ip_forward ip ru add from 172.16.16.2 lookup 5 ip ro add 202.96.209.133 via 192.168.1.1 table 5 iptables -t nat -A POSTROUTING -s 172.16.16.2 -d 202.96.209.133 -j SNAT --to 192.168.1.3 ip ro add default via 10.10.10.2 table 5 iptables -t nat -A POSTROUTING -s 172.16.16.2 -j SNAT --to 10.10.10.1 ip ro flush cache你也可以將上面腳本中的幾行iptables命令合為一行如下:
#iptables -t nat -A POSTROUTING -s 172.16.16.2 -j MASQUERADE那么腳本如下:
#!/bin/sh echo 1 >/proc/sys/net/ipv4/ip_forward ip ru add from 172.16.16.2 lookup 5 ip ro add 202.96.209.133 via 192.168.1.1 table 5 ip ro add default via 10.10.10.2 table 5 iptables -t nat -A POSTROUTING -s 172.16.16.2 -j MASQUERADE ip ro flush cache可以使用tracert命令進(jìn)行測(cè)試。不同點(diǎn)在于路由的第二跳,到202.96.209.133時(shí),第二跳為:192.168.1.1,到其他地方時(shí)第二跳為:10.10.10.2。
注意:linux路由器是不能上網(wǎng)的,因?yàn)闆]有為他自己指定專門的路由或默認(rèn)路由。為L(zhǎng)inux路由器指定路由的命令如下:
ip ro add default via 192.168.1.1 ip ro flush cache文章2:
實(shí)驗(yàn)名稱:Linux下實(shí)現(xiàn)基于源地址的策略路由 操作系統(tǒng):RedHat 7.2 所使用的內(nèi)核:2.4.18 必須的模塊: iproute2,iptables功能描述:首先你必須明白策略路由和路由策略是兩個(gè)不同的概念,策略路由是根據(jù)IP包中的源地址,端口號(hào)等來實(shí)現(xiàn)的;而路由策略可以理解為路由表中的一系列路由動(dòng)作。
普通的路由是根據(jù)IP包中的目的地址來判斷的,如:如果數(shù)據(jù)包是到http://linux.networksbase.com的,那么發(fā)送到網(wǎng)關(guān)192.168.1.1,如果到其他地方發(fā)送到192.168.2.1。
但很多時(shí)候我們需要對(duì)數(shù)據(jù)包的源地址也要作出判斷,如:網(wǎng)絡(luò)中有幾條出口線路,那么優(yōu)先權(quán)高的人走速率快的鏈路,其他人走速率慢的鏈路,這個(gè)時(shí)候就需要策略路由。
描述:實(shí)驗(yàn)中有兩個(gè)局域網(wǎng):LAN 1和LAN 2,我們要實(shí)現(xiàn)如下功能:
1,LAN 1中的192.168.2.25和192.168.2.128從路由器A上網(wǎng); 2,LAN 1中的其他用戶從路由器B上網(wǎng); 3,LAN 2中的所有用戶從路由器A上網(wǎng)實(shí)現(xiàn):
首先你要打開Linux服務(wù)器的路由功能,命令如下:
echo 1> /proc/sys/net/ipv4/ip_forward然后設(shè)置LAN 1和LAN 2的IP偽裝:
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -s 172.16.3.0/24 -j MASQUERADE1,設(shè)置192.168.2.25和192.168.2.128的路由:
ip rule add from 192.168.2.25 lookup 5 ip rule add from 192.168.2.128 lookup 5這兩句話的意思是將來自192.168.2.25和192.168.2.128的數(shù)據(jù)查找路由表5
ip route add default via 192.168.0.1 table 5定義路由表5的路由策略。
2,設(shè)置LAN 1中其他用戶的路由:
ip rule add from 192.168.2.0/24 lookup 6這句話的意思是讓來自192.168.2.0的數(shù)據(jù)查找路由表6
ip route add default via 192.168.1.1 table 6定義路由表6的路由策略。
3,設(shè)置LAN 2的路由:
ip rule add from 172.16.3.0/24 lookup 6這句話的意思是讓來自LAN 2的數(shù)據(jù)查找路由表6
ip route add default via 192.168.1.1 table 6(這條命令上面已經(jīng)用過了!)4,刷新路由:
ip route flush cache5,腳本如下:
#!/bin/sh echo 1> /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -s 172.16.3.0/24 -j MASQUERADE ip rule add from 192.168.2.25 lookup 5 ip rule add from 192.168.2.128 lookup 5 ip route add default via 192.168.0.1 table 5 ip rule add from 192.168.2.0/24 lookup 6 ip rule add from 172.16.3.0/24 lookup 6 ip route add default via 192.168.1.1 table 6 ip route flush cache6,更明顯一些,我們可以將上面腳本中的iptables命令行替換為下面的行
iptables -t nat -A POSTROUTING -s 192.168.2.25/24 -j SNAT --to 192.168.0.51 iptables -t nat -A POSTROUTING -s 192.168.2.128/24 -j SNAT --to 192.168.0.51 iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to 192.168.1.51 iptables -t nat -A POSTROUTING -s 172.16.3.0/24 -j SNAT --to 192.168.0.51那么新腳本如下:
#!/bin/sh echo 1> /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.2.25/24 -j SNAT --to 192.168.0.51 iptables -t nat -A POSTROUTING -s 192.168.2.128/24 -j SNAT --to 192.168.0.51 iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to 192.168.1.51 iptables -t nat -A POSTROUTING -s 172.16.3.0/24 -j SNAT --to 192.168.0.51 ip rule add from 192.168.2.25 lookup 5 ip rule add from 192.168.2.128 lookup 5 ip route add default via 192.168.0.1 table 5 ip rule add from 192.168.2.0/24 lookup 6 ip rule add from 172.16.3.0/24 lookup 6 ip route add default via 192.168.1.1 table 6 ip route flush cache
?
總結(jié)
以上是生活随笔為你收集整理的ip route / ip rule /iptables 配置策略路由的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大宋提刑官2剧情介绍
- 下一篇: iptables:tproxy做透明代理