首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的流量整形设置

简单的流量整形设置
EN

Server Fault用户
提问于 2014-07-29 14:14:39
回答 2查看 1K关注 0票数 1

我有:

  • 2个linux盒(A,B)
  • 1开关(S)
  • 1网关(G) 我无法控制这件事

++

仅仅为了一些测试目的,我需要在A到达网关G之前对来自A的流量进行整形。我用tcpreplay在mac层注入A中的流量,所以我不能直接在A上进行整形。

我的想法是:

  • 由A至B的所有交通路线
  • 在B (Linux流量控制或虚拟网)上应用流量整形
  • 重新路由至网关G所有从A到达B的通信量

我的解决方案好吗?是否有更简单的不需要B上两个(以太网)网络接口的?

B上的虚拟网络接口会让我的生活更轻松吗?

要部署上述设置(不包括流量整形),我需要哪些典型命令?

EN

回答 2

Server Fault用户

发布于 2014-07-29 14:27:06

一些想法:

  1. 你甚至可以塑造来自A和B的流量,甚至在GW上!
  2. 如果你的开关再聪明一点.它不是有嵌入式linux吗?
  3. 如果您通过B路由,请注意,B上将需要一些网络标志设置来正确处理arp重定向。

你的解决方案的主要问题是,它将使A依赖于B的网络更加不稳定。

虽然您的解决方案从本质上说是一种智能的、基于linux的路由器。如果"gw“和”开关S“是虚拟的,而B是聪明的,你甚至可以考虑扔掉其中的至少一个,让B进入你真正的门户。

票数 1
EN

Server Fault用户

发布于 2014-07-29 16:35:53

您不需要为此做任何路由技巧,也不需要虚拟接口。

你只需塑造你的流量,因为它离开系统A。

准确地勾勒出你想要做的事情,并且为它写一个“tc”规则是很简单的。

例如,假设您希望将所有传出流量的A限制为1 1mbit/s:

代码语言:javascript
复制
# Flush tc
tc qdisc del dev eth0 root &> /dev/null

tc qdisc add dev eth0 root handle 1: htb default 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit

好了。

从A运行一个速度测试,您将看到您的传入流量可能没有受到影响,但您的传出流量限制为每秒1 Mebibit。

为什么我要说“可能没有受到影响”?因为如果您有一个非常高的传入率,您的ACK数据包可能超过1 1Mbit的限制,并被节流。如果你的ACK慢了,你的流量也慢了。

如果您无法在A上使用tc或iptables --例如,如果您的流量对tc/iptables不可见-例如,tcpreplay,则需要在B上执行流量控制。

为此,至少有三种方法可以做到这一点。

  1. 为B购买网卡,并将A/B1放在网络1上,B2/网关放在网络2上,即B成为网关。现在用'tc‘来塑造A的流量。
  2. 多户eth0 on B.,例如,eth0:1 -> 172.16.5.0/24,并在这个网络中给出一个地址。将B配置为在eth0和eth0:1之间转发通信量,标记和塑造流向主网关的流量(tc)。
  3. 使用'brctl‘在eth0上创建一个桥,并为A/B和B/gw创建接口,并再次标记和塑造流向主网关的流量(tc)。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/616309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档