我一直在通过 docker 在本地网络中测试 DDoS 攻击。每个镜像都加载了一个“邪恶”的 DDoS 文件。
我同时测试了几个容器同时发起攻击。下图中可以看到 6 次攻击(峰值)。分别有 1、2、3、4、10 和 15 个容器同时运行(每次攻击代表一个峰值)。
引起我注意的是,攻击的峰值并没有因同时发起攻击的容器数量而发生显著变化。
这是为什么?
我的假设:
I. Dockers 进程不是以并行方式执行,而是以串行方式执行。
II. 或者,第一个容器已经达到网关发送数据包的饱和度。因此运行更多容器没有区别。
你们有什么感想?
答案1
2 个容器后达到最大值并不是扩展到多个进程的良好迹象。没有足够的信息来说明原因,即性能瓶颈可能是应用程序、网络堆栈或硬件。例如,客户端可能会有礼貌地等待应用程序级响应,而不是尽快推送请求。
找出这些数据包每秒可以处理多少个最简单的应用程序。iperf 是此类最大带宽测试的经典工具。PPS 明显较高表明瓶颈更接近应用程序而不是网络堆栈。
关于这次练习的要点,分散式无法通过(假设)一台物理主机轻松模拟拒绝服务。通常目标是进行批量攻击,许多主机发送应用程序请求或原始数据包远远超出了基础设施的处理能力。或者对来自如此多IP地址的源进行阻断是不可行的。
然而,即使来自少数主机的相对较小的攻击在理论上仍然可以使服务陷入停滞。取决于应用程序及其运行的服务器的资源。