Linux NAT的环境下上行流量控制的方法.docVIP

Linux NAT的环境下上行流量控制的方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux NAT的环境下上行流量控制的方法

Linux NAT的环境下上行流量控制的方法   摘要:本文介绍了在已配置网络地址转换(NAT)协议的Linux平台上,对局域网内不同用户进行上行流量控制的方法。   关键词:上行流量控制;NAT;Traffic;Control(TC)      1引言      对于局域网带宽管理,Linux提供了简便且有力的工具,即Traffic Control(TC)组件[1][2]。但当前越来越多的局域网使用了NAT协议,它一方面缓解了IP地址资源的紧张,另一方面也对使用TC进行流量控制带来了困难。那就是在路由器输出端口处TC不能根据数据包IP地址对不同主机进行流量控制。本文针对以上问题,介绍了在已配置NAT协议的情况下局域网上行带宽管理的方法。      2上行流量控制      TC模块中与流量控制相关的三个重要组件是队列规定(Qdiscs),分类(class)和过滤器(filter)。其关系如图1所示。   它提供的流量控制机制很大地方便了我们对网络流量的控制,特别是它的分类队列规定可以使我们按各种需要灵活地对要控制的网络系统进行分类[3][4][5]。但在配置NAT协议的情况下,情况有所不同。尤其是在应用较多的SNAT协议下,它是将一个私网IP地址网段转换为一个或几个公网IP地址,来实现私网与Internet的互相通讯[3]。对于控制下载流量,仍可以使用TC在路由器私网网络端口处控制,因为此时NAT已完成公网地址到私网地址的转换。但当控制上行流量时,由于TC是在公网输出端口处实现带宽限制,此时数据包已完成私网地址到公网地址的转换,因此不能根据数据包IP地址对不同主机进行上行流量控制。因此需要采取其他方法使TC能够控制上行流量。   以下要介绍的上行带宽管理示例的网络拓扑为使用交换机或者三层交换机连接的星形以太局域网,其中分类队列规定使用CBQ;代理主机使用Linux 内核,并配置SNAT,路由转发功能;公网网络接口为eth1,私网网络接口为eth0;私网内以两台主机示例,IP地址分别为,5。   2.1利用mark标记   传统的方法是使用iptables防火墙工具添加包过滤的匹配规则来对数据包进行标记[1]。   本文对上述方法进行了一些改进,来提高命令配置的效率。首先是在iptables标记命令中引入了新的命令选项--ip-mark [src/dst],表示根据数据包的目的IP地址或源IP地址进行标记。其次我们扩展了新的分类队列规定etbf。它结合TBF队列规定,通过建立多个令牌桶来实现对一个IP地址段内的主机进行流量控制。这样可以提高配置带宽的效率,同时也减少了对系统资源的过多占用。地址段由扩展选项staaddr和endaddr分别给出起始地址和结束地址,加入了选项flattr [dst/src/mark/cb],其中dst,src分别表示流量控制是根据源地址还是目的地址,mark,cb为扩展功能。Mark选项表示根据mark标记进行流量控制和过滤,cb选项将在下一小节介绍。此外对u32过滤器中ip选项后扩展了mark,cb等几种选项,功能与etbf中相应选项类似。   添加包过滤的匹配规则   iptables -t mangle -A PREROUTING -m iprange --src-range-0 -j MARK --ip-mark src   删除私网网络接口eth1已有队列规定   ./tc qdisc del dev eth1 root   建立网络接口eth1新队列规定   ./tc qdisc add dev eth1 root handle 1:0 cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64   建立分类   ./tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 10Mbit rate 10mbit maxburst 20 allot 1514 prio 8 avpkt 1000 cell 8 weight 5Mbit   ./tc class add dev eth1 parent 1:1 classid 1:10 cbq bandwidth 2Mbit rate 2mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weight 5mbit split 1:0   建立子类队列规定:   ./tc qdisc add dev eth1 parent 1:10 handle 10:0 etbf rate 2000kbit latency 50ms burst 2000k st

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档