Chinaunix首页 | 论坛 | 博客
  • 博客访问: 646215
  • 博文数量: 197
  • 博客积分: 4858
  • 博客等级: 上校
  • 技术积分: 2162
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-06 22:46
文章分类

全部博文(197)

文章存档

2011年(30)

2010年(21)

2009年(25)

2008年(80)

2007年(41)

分类: BSD

2008-11-19 14:39:26

利用PF实现策略路由

1.说明:

此方案适用于可以使用PF做为的操作系统,包括FREEBSD/OPENBSD/NETBSD。所谓的就是在服务器同时连接了两个ISP线路,从那个网卡进来的数据包请求,返回给CLIENT时还从那个网卡出去。

2.试验拓扑:



图中的『3接口路由器』可以用WIN2K或LINUX系统启动IP转发替代。

3.OPENBSD网络设置:

Fxp0:                192.168.0.100
Ne3:                        192.168.1.100
Gateway:        192.168.0.1

4.PF规则:

# vi /etc/pf.conf
=================================================
if_isp1="fxp0"
if_isp2="ne3"
gw_isp1="192.168.0.1"
gw_isp2="192.168.1.10"

block all

pass quick on lo0 all

pass in quick on $if_isp1 reply-to ( $if_isp1 $gw_isp1 ) proto {tcp,udp,icmp} to any keep state
pass in quick on $if_isp2 reply-to ( $if_isp2 $gw_isp2 ) proto {tcp,udp,icmp} to any keep state

pass out keep state
=================================================

为了试验方便,以上PF规则没有对TCP/UDP等协议的端口进行限制。大家根据自己的实际情况修改一下即可。为了方便控制PF的启动和关闭,下面列出我使用的一个SHELL脚步:

# vi /etc/rc.d/pf.sh
=================================================
#!/bin/sh
# made by llzqq
# pf startup scripts
#

case "$1" in

start)
        if [ -f /etc/pf.conf ]; then
                /sbin/pfctl -e -f /etc/pf.conf
        fi
        ;;

stop)
        /sbin/pfctl -F all
        /sbin/pfctl -d
        ;;
*)
        echo "$0 start | stop"
        ;;

esac
exit 0
=================================================

5.试验结果截图:


 

转自:http://blog.chinaunix.net/u/4206/showart_1408537.html

阅读(671) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~