QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3230|回复: 0
打印 上一主题 下一主题

[转帖]通过iptables与iproute2协同实现根据应用的策略路由

[复制链接]
字体大小: 正常 放大
matrixer        

11

主题

2

听众

93

积分

升级  92.63%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-1-10 11:01 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
(简洁明了版本 前提 了解多路由表的概念 了解策略路由的概念 熟悉iptables和iproute2工具包) & Q7 k5 ~( p- ^2 t5 W" {  l- V
0 b4 B& s' I5 |9 y( y+ @
假设,网络中有两个外部接口,IP地址分别为eth0 172.16.1.1/24,eth1 10.0.0.1/24,连接内部网络的接口为eth2 192.168.1.1。现在设计这样一个策略,将所有来自内部网络的web服务的数据,走向172.16.1.1这个出口。其他的数据走向10.0.0.1 这个出口。
. _; k9 b; V3 M9 F9 p/ b
" i! m3 Q, }# r5 h- r$ \' }3 b9 ]#接口设置 4 w1 o  [6 Z) K
ifconfig eth0 172.16.1.1 netmask 255.255.255.0 * K* ~7 n( }! [4 J
ifconfig eth1 10.0.0.1 netmask 255.255.255.0 4 D( B9 [. z5 M# I5 y8 {4 w
ifconfig eth2 192.168.1.1 netmask 255.255.255.0
/ N3 I( m* ?3 f" lecho 1 >/proc/sys/net/ipv4/ip_forward " t7 H" |) H7 p7 `) b

9 o5 U; C, b7 r#将web服务类的数据包打上标示100
( k9 ]1 }# a) [( r#这一步,很关键,用于实现策略路由的是iproute2工具包,但是iproute2工具包是无法根据端口来进行匹配的,因此,需要借助iptables来配合 ' y' K, E' P9 G# S" ^" Y6 k6 k4 t
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 100
" x4 ?  b4 Q& J* R5 q
! _, E8 B6 V7 c$ R4 {& V9 X3 p+ d#增加多路由表 假设172.16.1.1 这一出口的网关是172.16.1.254 0 A3 s. T, R8 `5 h2 p* e
ip route add 0/0 via 172.16.1.254 table 100
+ O6 l) ~2 G/ |3 Q) B3 @1 b- E( |% |' W
#设置路由策略 凡是数据包标记位上是100的数据,查询100号路由表
2 ?# t8 {! z% x5 Q( Y% xip rule add fwmark 100 table 100 7 f- [6 q! z0 _" M- ^

8 o0 W# T5 l/ {6 y! O3 _#NAT 如果需要的话,进行NAT 不需要的话,就直接路由   V$ S3 i6 c" Z2 s" c
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
' u: B* ~$ r6 y
/ F  v1 W. B& G7 s  @3 b. Z$ v8 B% O) S  v" ^
这篇帖子主要是说明了把iptables和iproute2协同以后可以做出很多很强的应用。你可以利用iptables强劲的对数据报的识别能力来将不同类型的数据包打上你自己定义的标示,然后利用iproute2的策略路由的功能来对路由进行人为的干预。
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-20 11:49 , Processed in 0.397894 second(s), 52 queries .

回顶部