科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道在Linux下配置基于策略的路由

在Linux下配置基于策略的路由

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

传统路由器在网络和需求变得复杂时将无法满足需要,而一种基于策略的路由给了我们更好的选择。本文给出一个Linux下的配置实例,它在2.4G奔腾4处理器、256M内存的计算机上运行通过,并在160多台电脑的网络环境下运转正常。

来源:网页教学网 2008年9月17日

关键字: 操作系统 服务器 处理器 路由器 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

  本栏目最新文章

  [an error occurred while processing this directive]

  【简 介】

  传统路由器在网络和需求变得复杂时将无法满足需要,而一种基于策略的路由给了我们更好的选择。本文给出一个Linux下的配置实例,它在2.4G奔腾4处理器、256M内存的计算机上运行通过,并在160多台电脑的网络环境下运转正常。

  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”。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章