| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> 操作系统 >> linux >> 文章正文>>>>>> 
Linux下配置基于策略的路由
传统路由器在网络和需求变得复杂时将无法满足需要,而一种基于策略的路由给了我们更好的选择。本文给出一个Linux下的配置实例,它在2.4G奔腾4处理器、256M内存的计算机上运行通过,并在160多台电脑的网络环境下运转正常。 
基于策略的路由比传统路由更强大,使用更灵活,它使网络管理者不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址来选择转发路径。在现实的网络应用中,这种选择的自由性还是很需要的。而Linux从2.1版本的内核开始就实现了对策略路由的支持,下面就介绍一个配置实例,以期对读者有所帮助。 
实例背景 
如图所示,两个内部网通过远端路由器1与因特网相联,通过远端路由器2与上级网相联, Linux服务器做策略路由器,内有4块网卡。IP地址的分配情况如表所示。 
在应用需求方面,内网1允许通过远端路由器1(172.22.254.254)连接因特网,但只允许Http协议、Ftp协议经常性通过,其他协议分时间段开放(这样做是为了避免员工在上班时间打网络游戏和聊天),例如在上班时间(7:30~16:30)封闭,在下班时间(16:30~7:30)和周六、日全天开放。而且,内网1无权访问内网2及上级网,但可以访问内网2上的服务器。而允许内网2访问外网,上级网则只能访问内网2上的192.168.1.2服务器。而防火墙主要用来阻止外网主动访问内网,防止网络攻击。 
实现过程 
这里我们选择Red Hat Enterprise Linux WS 3操作系统,其内核版本是2.4.21,对策略路由已经有了很好的支持,下面的配置也以此为基础。 
1.设置IP地址 
首先,执行如下命令: 
ifconfig eth0 10.89.9.1 netmask 255.255.255.0 
ifconfig eth1 192.168.1.1 netmask 255.255.255.0 
ifconfig eth2 172.22.254.14 netmask 255.255.255.0 
ifconfig eth3 10.140.133.14 netmask 255.255.255.0 
为了让计算机启动时自动设置IP地址,还需要分别修改/etc/sysconfig/network-scripts/下的四个文件:ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3,将ONBOOT属性设为yes,即“ONBOOT=yes”,文件格式如下: 
# Intel Corp. 82545EM Gigabit Ethernet Controller (Copper) 
DEVICE=eth0 
BOOTPROTO=none 
HWADDR=00:0c:76:20:54:71 
ONBOOT=yes 
TYPE=Ethernet 
USERCTL=yes 
PEERDNS=no 
NETMASK=255.255.255.0 
IPADDR=10.89.9.1 
如果你不喜欢命令行模式,也可以在图形模式下进行以上操作:主菜单→系统设置→网络,设好IP地址并激活,并且选中“当计算机启动时激活设备”选项。 
2.打开转发功能 
执行命令“echo “1” > /proc/sys/net/ipv4/ip_forward”,或者在/etc/sysconfig/network文件中添加“FORWARD_IPV4=yes”。 
3.创建路由表 
编辑 /etc/iproute2/rt_tables 文件,执行如下命令。在这里新添加了4个路由表,分别为int1 、int2、int3、int4。 
# reserved values 
#255 local 
#254 main 
#253 default 
#0 unspec 
# local 
#1 inr.ruhep 
1 int1 
2 int2 
3 int3 
4 int4 
4.添加路由 
执行如下命令: 
ip route add default via 10.89.9.1 table int1 
ip route add default via 192.168.1.1 table int2 
ip route add default via 172.22.254.254 table int3 
ip route add 192.168.0.0/16 via 10.140.133.254 table int4 
ip route add default via 172.22.254.254 table int4 
这里在int4路由表中添加了两条路由,当进入到该路由表之后,要到192.168.0.0/16的数据包则路由到10.140.133.254,其他数据包则路由到172.22.254.254。 
5.标记(MARK)特殊包 
执行如下两条命令: 
iptables -t mangle -A PREROUTING -p tcp -m multiport --dports 80,8080,20,21 -s 10.89.9.0/24 -j MARK --set-mark 1 
iptables -t mangle -A PREROUTING -p udp --dport 53 -s 10.89.9.0/24 -j MARK --set-mark 2 
这两条命令是将来自10.89.9.0/24的目的端口是80、8080、20或21的数据包和UDP端口是53的数据包分别标记为1或2,然后就可以针对这些标记过的数据包制定相应的规则了。(对外发出的DNS请求用的是UDP 53端口) 
为了实现防火墙的功能,只允许已经建立联机的数据包进入内网,就要把进入两个内网的已经建立联机的数据包进行标记。执行如下命令: 
iptables -t mangle -A PREROUTING -p ALL -d 10.89.9.0/24 -m state --state ESTABLISHED,RELATED -j MARK --set-mark 3 
iptables -t mangle -A PREROUTING -p ALL -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j MARK --set-mark 4 
6.创建路由规则 
执行如下命令: 
ip rule add from 192.168.1.0/24 pref 11 table int4 
ip rule add to 192.168.1.2 pref 21 table int2 
ip rule add fwmark 4 pref 31 table int2 
ip rule add fwmark 1 pref 41 table int3 
ip rule add fwmark 2 pref 42 table int3 
ip rule add fwmark 3 pref 51 table int1 
接着执行命令“ip route flush cache”,刷新路由缓冲,让以上的这些命令立刻生效,否则需要等上一段时间。 
7.实现分时间段控制 
若是按照以上的配置,内网1的用户只能上网浏览网页和下载,为了对其他功能实现分时间段开放,需要做以下工作: 
首先编辑命令脚本文件ropen (开放)和rclose (限制)。执行命令“vi /bin/ropen”,ropen文件内容如下: 
/sbin/ip rule add from 10.89.9.0/24 pref 40 table int3 
/sbin/ip route flush cache 
执行命令“vi /bin/rclose”,rclose文件内容如下: 
/sbin/ip rule del from 10.89.9.0/24 pref 40 
/sbin/ip route flush cache 
如果不习惯命令行方式,也可以在图形界面下生成这两个文件,生成文件之后,需要增加可执行属性方可执行:分别执行命令“chmod +x ropen”和“chmod +x rclose”。 
接着,利用crontab命令实现自动运行。这里需要编辑一个文本文件,格式如下: 
minute hour dayofmonth monthofyear dayofweek “命令” 
其中每部分名称及取值范围是:minute代表分钟,取值范围是00~59;hour代表小时,取值范围是00~23;dayofmonth代表某天,取值范围是01~31;monthofyear代表月份,取值范围是01~12;dayofweek代表星期,取值范围是01~07。若需要忽略其中某一部分就用星号(*)代替。例如,文件名设为mycron,内容可编辑如下: 
30 07 * * 01,02,03,04,05 "/bin/ropen" 
30 16 * * 01,02,03,04,05 "/bin/rclose" 
最后执行crontab命令,将所编辑的文件mycron装载并启动,命令为“crontab mycron”。

上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    全面介绍linux系统下安装配置WEB服务器教程
    Linux系统网络配置详细解析
    Linux下配置多线路ADSL的方法
    Linux服务器优化及安全配置
    Linux服务器数据备份和恢复技巧
    Linux服务器常出现的错误及含义
    提高Linux系统安全性的技巧
    Linux无法添加用户帐号的原因分析
    Red Hat Linux9.0系统常用命令快速入门
    Red Hat Linux9.0登录和退出系统
     
     
     
    最新文章
    普通文章 Linux下配置基于策略的路由最新文章
    普通文章 Photoshop绘制调皮小美女QQ头像最新文章
    普通文章 photoshop的Mask Pro滤镜抠图技巧最新文章
    普通文章 精心设置卡巴斯基加快杀毒速度最新文章
    普通文章 迅雷大文件下载技巧最新文章
    普通文章 实战激活64位Windows Vista系统全最新文章
    普通文章 小区宽带的综合布线解决方案应用最新文章
    普通文章 3dSmax打造投名状海报灯箱效果最新文章
    普通文章 WinRAR的三种安全战术最新文章
    普通文章 抓出Vista中IE7不能上网的凶手最新文章
     
    热门文章
    推荐文章 新手入门-Windows系统下安装ORAC
     
     
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网