免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1417 | 回复: 1
打印 上一主题 下一主题

LINUX路由和QOS限速 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-16 14:36 |只看该作者 |倒序浏览
安装好UBUNTU SERVER 8.04后,设置双网卡:eth0为外网网卡,eth1为内网网卡,
sudo vi /etc/network/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/network/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

#!/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="eth0" #外网网卡
IDEV="eth1" #内网网卡
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
原始文章链接:
http://linux.chinaunix.net/bbs/viewthread.php?tid=1137337&extra=page%3D1


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20186/showart_2071773.html

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52
2 [报告]
发表于 2012-10-26 00:09 |只看该作者
很熟悉的脚本
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP