linux路由丢失,棘手的linux路由问题

博客作者在进行端到端系统吞吐量测试时遇到问题,需要通过两台外部计算机使用iperf3将流量发送到系统。由于路由规则导致数据包直接在A和C之间传输,而没有经过B。作者尝试了路由规则来强制流量通过B,但这导致了循环路由的问题。寻求解决方案以仅使用一台机器实现A-B-C-A的数据包流动。
摘要由CSDN通过智能技术生成

在工作中我们有端到端系统,我们将路由数据包通过另一端弹出,然后返回到它们起源的地方.您可以将其视为普通通信堆栈.

为了测试吞吐量,我们发现自己使用iperf3通过使用两台外部计算机将流量发送到此堆栈.我们发现自己总共使用了三台计算机,因为我们无法解决这个路线问题,但我觉得必须有一些我们没有看到的解决方案,因为我确信之前已经出现过.我想尽可能只使用一台机器.

假设我们的环境如下:rbbDS.png

其中A是iperf3客户端,B由多个程序组成,这些程序将数据包作为以太网数据包传递给彼此(为简单起见,保留为一个黑盒子),C是iperf3服务器.

所以回顾一下,我希望数据包从A,B到C,再到B,再到A.

jiMvR.png

要使用Iperf执行此操作,我在A处有一个客户端向C发送数据包.

iperf3 -c "C"

我还在C处设置服务器

iperf3 -s

但是,此时没有任何路由规则,这些数据包将绕过B并在A和C之间直接进行.为了阻止这种情况发生,我制定了一个路由规则,例如“将所有指向C的流量路由到B”.

route add "C" netmask 255.255.255.255 gw "B"

另外,我们必须在另一侧做同样的事情,以便服务器不会直接发回A.

route add "A" netmask 255.255.255.255 gw "B"

如果你还没有捕获它,这将导致一个矛盾并导致所有流向A和C的流量都为B.这意味着当B完成处理并希望将数据发送到C时,它将发送给自己因为这就是路由表所规定的*.这也将发生在相反的方向.

有没有人知道这方面的方法?我不确定它是否可以通过简单的路由完成,但我不太了解路由开始,所以也许有一个技巧呢?

*我真的不确定它是否会继续向自己发送(我认为它不会,即使它确实不会知道该怎么做第二次)但这是我试图说它会不适用于此配置.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值