O nmap Idle Scan é uma criatura muito frágil. A partir das informações de varredura ociosa :
The first step in executing an IP ID idle scan is to find an appropriate zombie. It needs to assign IP ID packets incrementally on a global (rather than per-host it communicates with) basis. It should be idle (hence the scan name), as extraneous traffic will bump up its IP ID sequence, confusing the scan logic. The lower the latency between the attacker and the zombie, and between the zombie and the target, the faster the scan will proceed.
Parece que seu zumbi não é adequado: ele não está ocioso o suficiente, ele usa uma estratégia de "incremento positivo aleatório" para IDs de IP (que também confunde a lógica de varredura) ou atribui IDs de IP com base no host em vez de usar um contador global (assim, seu ID de IP é independente de outro tráfego, o que quebra completamente a lógica de varredura).