Chinaunix首页 | 论坛 | 博客
  • 博客访问: 951314
  • 博文数量: 86
  • 博客积分: 2283
  • 博客等级: 大尉
  • 技术积分: 861
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-04 09:02
个人简介

没什么好说的。

文章分类

全部博文(86)

文章存档

2014年(1)

2013年(5)

2012年(7)

2011年(26)

2010年(20)

2009年(27)

分类: LINUX

2011-06-24 11:33:14

假设,网络中有两个外部接口,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 这个出口。
   
#接口设置
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服务类的数据包打上标示100
#这一步,很关键,用于实现策略路由的是iproute2工具包,但是iproute2工具包是无法根据端口来进行匹配的,因此,需要借助iptables来配合
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 100

#增加多路由表 假设172.16.1.1 这一出口的网关是172.16.1.254
ip route add 0/0 via 172.16.1.254 table 100

#设置路由策略 凡是数据包标记位上是100的数据,查询100号路由表
ip rule add fwmark 100 table 100

#NAT 如果需要的话,进行NAT 不需要的话,就直接路由
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
阅读(816) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~