日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ip route / ip rule /iptables 配置策略路由

發(fā)布時(shí)間:2023/11/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ip route / ip rule /iptables 配置策略路由 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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 5

1,實(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 cache

2, 實(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 MASQUERADE

1,設(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 cache

5,腳本如下:

#!/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 cache

6,更明顯一些,我們可以將上面腳本中的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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。