- 論壇徽章:
- 0
|
通過(guò)iptables與iproute2協(xié)同實(shí)現(xiàn)根據(jù)應(yīng)用的策略路由
(簡(jiǎn)潔明了版本 前提 了解多路由表的概念 了解策略路由的概念 熟悉iptables和iproute2工具包)
假設(shè),網(wǎng)絡(luò)中有兩個(gè)外部接口,IP地址分別為eth0 172.16.1.1/24,eth1 10.0.0.1/24,連接內(nèi)部網(wǎng)絡(luò)的接口為eth2 192.168.1.1。現(xiàn)在設(shè)計(jì)這樣一個(gè)策略,將所有來(lái)自內(nèi)部網(wǎng)絡(luò)的web服務(wù)的數(shù)據(jù),走向172.16.1.1這個(gè)出口。其他的數(shù)據(jù)走向10.0.0.1 這個(gè)出口。
#接口設(shè)置
ifconfig eth0 172.16.1.1 netmask 255.255.255.0
ifconfig eth1 10.0.0.1 netmask 255.255.255.0
ifconfig eth2 192.168.1.1 netmask 255.255.255.0
echo 1 >;/proc/sys/net/ipv4/ip_forward
#將web服務(wù)類的數(shù)據(jù)包打上標(biāo)示100
#這一步,很關(guān)鍵,用于實(shí)現(xiàn)策略路由的是iproute2工具包,但是iproute2工具包是無(wú)法根#據(jù)端口來(lái)進(jìn)行匹配的,因此,需要借助iptables來(lái)配合
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 100
#增加多路由表 假設(shè)172.16.1.1 這一出口的網(wǎng)關(guān)是172.16.1.254
ip route add 0/0 via 172.16.1.254 table 100
#設(shè)置路由策略 凡是數(shù)據(jù)包標(biāo)記位上是100的數(shù)據(jù),查詢100號(hào)路由表
ip rule add fwmark 100 table 100
#NAT 如果需要的話,進(jìn)行NAT 不需要的話,就直接路由
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
這篇帖子主要是說(shuō)明了把iptables和iproute2協(xié)同以后可以做出很多很強(qiáng)的應(yīng)用。你可以利用iptables強(qiáng)勁的對(duì)數(shù)據(jù)報(bào)的識(shí)別能力來(lái)將不同類型的數(shù)據(jù)包打上你自己定義的標(biāo)示,然后利用iproute2的策略路由的功能來(lái)進(jìn)行路由的認(rèn)為干預(yù)。 |
|