IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 操作系统 > LINUX > LINUX路由和QOS限速

LINUX路由和QOS限速

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

  关注和试用LINUX很长时间了,但较少实际用起来,刚好单位需一个路由器,有闲置老机,提升下自己实战能力吧!网上文章好多笔误,因此有些小波折,希望把这次经历总结下,为了忘却的纪念。

  安装好UBUNTU SERVER 8.04后,设置双网卡:eth0为外网网卡,eth1为内网网卡,

  sudo vi /etc/interfaces

  auto eth0

  iface eth0   inet static

  address   外网网卡IP

  netmask   子网掩码

  gateway   网关

  auto eth1

  iface eth1 inet static

  address   内网网卡IP

  netmask   子网掩码

  sudo /etc/init.d/networking restart

  还有设置DNS服务器

  sudo vi   /etc/resolv.conf(实际系统默认的并不存在resolv.conf该文件,属于自己创建)

  nameserver 主DNS

  nameserver 后备DNS

  要想使linux系统达到这种目的,首先得查看LINUX系统的内核中是否打开了IP转发功能,可以通过下列命令来查看:

  sudo   cat /proc/sys/net/ipv4/ip_forward

  如果用此命令返回的结果是0,那么就表明LINUX内核没有启用IP转发功能。就可以通过下示命令来启用:

  sudo echo 1 > /proc/sys/net//ipv4/ip_forward

  通过固定公网IP地址方式连接互联的实现方法如下:

  sudo iptables –t nat –A POSTROUTING –s 192.168.1.0/24 -j SNAT ––to XXX.XXX.XXX.XXX

  XXX是外网网卡IP,我的路由还没做防护,先隐藏了,对IPTABLES还不熟悉,呵呵。

  用后发现还不能上网,一番检查,还不行,暴汗……猛然想起可能是ISP对上网网卡的MAC地址绑定了,我改……

  其实就是在网卡配置文件中加一行pre-up ifconfig eth0 hw ether 88:88:88:88:88:88(MAC地址)

  sudo vi /etc/interfaces

  auto eth0

  iface eth0   inet static

  pre-up ifconfig eth0 hw ether 88:88:88:88:88:88

  address   外网网卡IP

  netmask   子网掩码

  gateway   网关

  auto eth1

  iface eth1 inet static

  address   内网网卡IP

  netmask   子网掩码

  sudo /etc/init.d/networking restart

#p#副标题#e#

  能PING能了,网卡配置能保存,把NAT和QOS做成一脚本,设置主属为ROOT,否则运行无权限,开机时运行。

  #!/bin/sh

  # BY ZWY 090916

  # Coyote local command init script

  echo &1& >/proc/sys/net/ipv4/ip_forward

  #打开内核IP转发功能

  iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -j SNAT --to XXX.XXX.XXX.XXX

  #设置IP转发规则,但没有做任何防护:裸奔!呵呵。

  ODEV=ð0& #外网网卡

  IDEV=ð1& #内网网卡

  UP=&64kbps& #上行总带宽:注意单位其实应该是KB/S,TC写法如此没办法,如下同单位。

  DOWN=&256kbps& #下行总带宽

  UPLOADrate=&4kbps&     #限速范围IP上行保证带宽

  UPLOADceil=&32kbps&     #限速范围IP上行最大带宽

  DOWNLOADrate=&16kbps& #限速范围IP下行保证带宽

  DOWNLOADceil=&128kbps& #限速范围IP下行最大带宽

  INET=&192.168.1.& #限速网段

  IPS=&100&     #限速范围起始IP

  IPE=&110&     #限速范围结束IP

  outdown=&4kbps&    #不在限速范围IP共享(总)下行速度

  outup=&1kbps& #不在限速范围IP共享(总)上行速度

  tc qdisc del dev $ODEV root 2>/dev/null    #清除队列规则(初始化)

  tc qdisc del dev $IDEV root 2>/dev/null

  tc qdisc add dev $ODEV root handle 10: htb default 2254  #设置根队列

  tc qdisc add dev $IDEV root handle 10: htb default 2254

  tc class add dev $ODEV parent 10: classid 10:1 htb rate $UP ceil $UP    #设置总速度

  tc class add dev $IDEV parent 10: classid 10:1 htb rate $DOWN ceil $DOWN

  #开始设置限速范围IP规则

  i=$IPS;

  while [ $i -le $IPE ]

  do

  tc class add dev $ODEV parent 10:1 classid 10:2$i htb rate $UPLOADrate ceil $UPLOADceil prio 1

  tc qdisc add dev $ODEV parent 10:2$i handle 100$i: pfifo

  tc filter add dev $ODEV parent 10: protocol ip prio 100 handle 2$i fw classid 10:2$i

  tc class add dev $IDEV parent 10:1 classid 10:2$i htb rate $DOWNLOADrate ceil $DOWNLOADceil prio 1

  tc qdisc add dev $IDEV parent 10:2$i handle 100$i: pfifo

  tc filter add dev $IDEV parent 10: protocol ip prio 100 handle 2$i fw classid 10:2$i

  iptables -t mangle -A PREROUTING -s $INET$i -j MARK --set-mark 2$i

  iptables -t mangle -A POSTROUTING -d $INET$i -j MARK --set-mark 2$i

  i=`expr $i + 1`

  done

  #不在限速范围IP规则

  tc class add dev $ODEV parent 10:1 classid 10:2254 htb rate $outup ceil $outup prio 1

  tc qdisc add dev $ODEV parent 10:2254 handle 100254: pfifo

  tc filter add dev $ODEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254

  tc class add dev $IDEV parent 10:1 classid 10:2254 htb rate $outdown ceil $outdown prio 1

  tc qdisc add dev $IDEV parent 10:2254 handle 100254: pfifo

  tc filter add dev $IDEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254

  这些都是我亲自做并确保能用的,除非笔误。希望对新手有用。

  另请教下高手:帮我看下QOS脚本,用TC命令时已建立一个计算每个IP连接速度的东东(不知怎样称呼,或叫缓冲区吧),可不可在另一个脚本中调用这些数据,用来显示每IP正在使用的流量?能不能给些提示或者帮写个脚本?

关键词标签:LINUX路由,QOS限速

相关阅读 安装红帽子RedHat Linux9.0操作系统教程 Tomcat9.0如何安装_Tomcat9.0环境变量配置方法 多种操作系统NTP客户端配置 Linux操作系统修改IP Linux实现SCSI硬盘热插拔及在线识别 Linux下用CDMA modem拨号上网

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程 安装红帽子RedHat Linux9.0操作系统教程 Linux服务器:设计高性能网站架构-LLMP Linux服务器:设计高性能网站架构-LLMP 使用Clonezilla迁移到虚拟Linux环境 使用Clonezilla迁移到虚拟Linux环境 Linux上的MRTG流量监控中心 Linux上的MRTG流量监控中心 Linux 双网卡绑定一个IP原理及实现 Linux 双网卡绑定一个IP原理及实现 linux和windows等系统远程控制ubuntu桌面 linux和windows等系统远程控制ubuntu桌面

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址 dmidecode命令查看内存型号 linux tc实现ip流量限制 安装红帽子RedHat Linux9.0操作系统教程 linux下解压rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 关机、重启、注销 命令 查看linux服务器硬盘IO读写负载 linux命令行浏览器的使用方法 Linux NFS服务固定端口及防火墙配置 U盘安装Ubuntu 10.04 Linux清除用户登录记录和命令历史方法